Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
27 lines
581 B
JavaScript
Executable file
27 lines
581 B
JavaScript
Executable file
define(function(require, exports) {
|
|
'use strict';
|
|
|
|
var debug = require('common/debug')('provider/factory');
|
|
|
|
var ctors = {
|
|
Caldav: require('./caldav'),
|
|
Local: require('./local')
|
|
};
|
|
|
|
var providers = exports.providers = Object.create(null);
|
|
|
|
exports.get = function(name) {
|
|
if (!providers[name]) {
|
|
try {
|
|
debug(`Initializing provider ${name}`);
|
|
providers[name] = new ctors[name]();
|
|
} catch (e) {
|
|
console.error('Error', e.name, e.message);
|
|
console.error('Failed to initialize provider', name, e.stack);
|
|
}
|
|
}
|
|
|
|
return providers[name];
|
|
};
|
|
|
|
});
|