42 lines
874 B
JavaScript
Raw Normal View History

2015-11-24 14:04:16 -06:00
import {Plugins} from './plugins';
import {PluginConfig} from './plugin-config'
import {promisifyCordova} from './cordova';
2015-11-24 14:37:34 -06:00
let wrappedPlugins = {}
2015-11-24 14:04:16 -06:00
2015-11-24 14:25:43 -06:00
let promised;
2015-11-24 14:37:34 -06:00
2015-11-24 14:44:30 -06:00
function newPluginClass(config) {
let obj = {
installed: () => {
return config.pluginRef && window.hasOwnProperty(config.pluginRef);
}
}
obj.pluginCheck = config.pluginCheck || function() { return false; };
return obj;
}
2015-11-24 14:37:34 -06:00
// Go through each registered plugin
2015-11-24 14:25:43 -06:00
for(let plugin of PluginConfig) {
2015-11-24 14:37:34 -06:00
console.log('Plugin', plugin.className, plugin);
2015-11-24 14:04:16 -06:00
2015-11-24 14:37:34 -06:00
// Create the wrapped class
let cls = newPluginClass(plugin);
2015-11-24 14:04:16 -06:00
2015-11-24 14:37:34 -06:00
promised = plugin.promise || [];
2015-11-24 14:04:16 -06:00
2015-11-24 14:25:43 -06:00
for(let method of promised) {
let p = promisifyCordova(plugin.id, method)
2015-11-24 14:37:34 -06:00
cls[method] = p;
2015-11-24 14:04:16 -06:00
}
2015-11-24 14:37:34 -06:00
// Save the plugin object
wrappedPlugins[plugin.className] = cls;
}
export {wrappedPlugins};
2015-11-24 14:04:16 -06:00
2015-11-24 14:37:34 -06:00
window.Native = wrappedPlugins;