From a05462526d3f368752541a76dfed743e971b9a86 Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Tue, 24 Nov 2015 14:51:47 -0600 Subject: [PATCH] Cordova magic --- src/cordova.js | 7 ++++++- src/index.js | 9 ++++----- src/plugins.js | 6 ------ 3 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 src/plugins.js diff --git a/src/cordova.js b/src/cordova.js index 33958ab48..1f9d3f0cd 100644 --- a/src/cordova.js +++ b/src/cordova.js @@ -1,4 +1,4 @@ -const promisifyCordova = (pluginName, methodName) => { +const promisifyCordova = (pluginObj, pluginName, methodName) => { return (...args) => { return new Promise((resolve, reject) => { if(!window.cordova) { @@ -8,6 +8,11 @@ const promisifyCordova = (pluginName, methodName) => { }); return; } + + if(!pluginOjb.installed()) { + console.warn('Cordova: tried calling', '"' + pluginName + '.' + methodName + '"', 'but the ' + pluginObj.plugin + ' plugin is not installed.'); + return; + } cordova.exec(resolve, reject, pluginName, methodName, args); }) } diff --git a/src/index.js b/src/index.js index ba994e26e..acd91cde1 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,3 @@ -import {Plugins} from './plugins'; import {PluginConfig} from './plugin-config' import {promisifyCordova} from './cordova'; @@ -10,10 +9,10 @@ function newPluginClass(config) { let obj = { installed: () => { return config.pluginRef && window.hasOwnProperty(config.pluginRef); - } - } + }, - obj.pluginCheck = config.pluginCheck || function() { return false; }; + plugin: config.plugin + }; return obj; } @@ -28,7 +27,7 @@ for(let plugin of PluginConfig) { promised = plugin.promise || []; for(let method of promised) { - let p = promisifyCordova(plugin.id, method) + let p = promisifyCordova(cls, plugin.id, method) cls[method] = p; } diff --git a/src/plugins.js b/src/plugins.js deleted file mode 100644 index 6d8a93338..000000000 --- a/src/plugins.js +++ /dev/null @@ -1,6 +0,0 @@ - -export var Plugins = { - getPlugin(name) { - return name; - } -}