providers = {}
providers = {}
@param {String} dbType Database system type.
@return {Function} Provider Factory
module.exports = (dbType) ->
Provider = require("./provider/#{dbType}")
@param {String} dbName Database name.
@param {Object} options Provider specific configuration options.
@param {Function} callback Function called when provider connected to database.
@return {Object} Provider if callback is defined
(dbName, options, callback) ->
if (typeof(options) is 'function')
callback = options
options = null
key = "#{dbType}:#{dbName}"
provider = providers[key]
if (!provider)
provider = new Provider(dbType, dbName)
providers[key] = provider
provider.on('connected', callback) if (callback)
provider.connect(options)
if (!callback)
return provider
else
return