27 lines
620 B
Lua
27 lines
620 B
Lua
local M = {}
|
|
|
|
local config = require('chai.config')
|
|
|
|
local provider_instances = {}
|
|
|
|
-- lazy loads providers of course
|
|
function M.get_provider(name)
|
|
if provider_instances[name] ~= nil then
|
|
return provider_instances[name]
|
|
end
|
|
|
|
if config.options.providers[name] == nil then
|
|
error('unknown provider')
|
|
end
|
|
|
|
local provider_config = config.options.providers[name]
|
|
|
|
local provider = require('chai.providers.' .. provider_config.type)
|
|
|
|
local provider_instance = provider.init(provider_config)
|
|
provider_instances[name] = provider_instance
|
|
return provider_instance
|
|
end
|
|
|
|
return M
|