mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2026-07-16 00:00:04 +08:00
* fix/add decorators * fix google maps design * chore(): add root tsconfig to resolve imports in IDE * updates * more fixes
69 lines
1.8 KiB
TypeScript
69 lines
1.8 KiB
TypeScript
declare var window: any;
|
|
|
|
/**
|
|
* @private
|
|
*/
|
|
export function get(obj, path) {
|
|
path = path.split('.');
|
|
for (let i = 0; i < path.length; i++) {
|
|
if (!obj) { return null; }
|
|
obj = obj[path[i]];
|
|
}
|
|
return obj;
|
|
}
|
|
|
|
|
|
/**
|
|
* @private
|
|
*/
|
|
export function getPromise(cb) {
|
|
|
|
const tryNativePromise = () => {
|
|
if (window.Promise) {
|
|
return new Promise((resolve, reject) => {
|
|
cb(resolve, reject);
|
|
});
|
|
} else {
|
|
console.error('No Promise support or polyfill found. To enable Ionic Native support, please add the es6-promise polyfill before this script, or run with a library like Angular 2 or on a recent browser.');
|
|
}
|
|
};
|
|
|
|
return tryNativePromise();
|
|
}
|
|
|
|
/**
|
|
* @private
|
|
* @param pluginRef
|
|
* @returns {null|*}
|
|
*/
|
|
export function getPlugin(pluginRef: string): any {
|
|
return get(window, pluginRef);
|
|
};
|
|
|
|
/**
|
|
* @private
|
|
*/
|
|
export const pluginWarn = function(pluginName: string, plugin?: string, method?: string) {
|
|
if (method) {
|
|
console.warn('Native: tried calling ' + pluginName + '.' + method + ', but the ' + pluginName + ' plugin is not installed.');
|
|
} else {
|
|
console.warn('Native: tried accessing the ' + pluginName + ' plugin but it\'s not installed.');
|
|
}
|
|
if (plugin) {
|
|
console.warn('Install the ' + pluginName + ' plugin: \'ionic plugin add ' + plugin + '\'');
|
|
}
|
|
};
|
|
|
|
/**
|
|
* @private
|
|
* @param pluginName
|
|
* @param method
|
|
*/
|
|
export const cordovaWarn = function(pluginName: string, method?: string) {
|
|
if (method) {
|
|
console.warn('Native: tried calling ' + pluginName + '.' + method + ', but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');
|
|
} else {
|
|
console.warn('Native: tried accessing the ' + pluginName + ' plugin but Cordova is not available. Make sure to include cordova.js or run in a device/simulator');
|
|
}
|
|
};
|