Hi guys, working on some browserify issue I found out that some plugins use
`return` statement to prevent logic from being loaded due to some reason (Api
is natively supported, we are under Ripple emulation, etc) - see example below.
This is totally fine since this will be wrapped in function and work correct,
but this causes browserify issue, (CB-10419 for example). The fix is simple but
I want to discuss preferred code style - see below - would love to hear what do
you think. I'm personally prefer Option1
Issue example
https://github.com/apache/cordova-plugin-file/blob/77c63ef181313eba51652e1026cc730fc79ab9f2/www/requestFileSystem.js#L31
...
if (checkBrowser()) {
return; // THIS CAUSES BROWSERIFY FAILURE
}
var argscheck = require('cordova/argscheck'),
FileError = require('./FileError'),
FileSystem = require('./FileSystem'),
exec = require('cordova/exec');
var fileSystems = require('./fileSystems');
...
I see two options to fix this in plugins:
Option1 - wrap module in closure function
(function() {
...
function checkBrowser() {
if (cordova.platformId === "browser" && require('./isChrome')()) {
module.exports = window.requestFileSystem ||
window.webkitRequestFileSystem;
return true;
}
return false;
}
if (checkBrowser()) {
return;
}
...
})()
Option2 - use if/else
...
if (checkBrowser()) {
return;
} else {
var argscheck = require('cordova/argscheck'),
FileError = require('./FileError'),
FileSystem = require('./FileSystem'),
exec = require('cordova/exec');
var fileSystems = require('./fileSystems');
...
}
-Sergey
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]