CB-12895 : added eslint and removed eslint

This commit is contained in:
Audrey So 2017-06-12 11:15:35 -07:00
parent f9643daba0
commit 78691e43e1
11 changed files with 174 additions and 183 deletions

10
.eslintrc.yml Normal file
View File

@ -0,0 +1,10 @@
root: true
extends: semistandard
rules:
indent:
- error
- 4
camelcase: off
padded-blocks: off
operator-linebreak: off
no-throw-literal: off

View File

@ -1,17 +0,0 @@
{
"browser": true
, "devel": true
, "bitwise": true
, "undef": true
, "trailing": true
, "quotmark": false
, "indent": 4
, "unused": "vars"
, "latedef": "nofunc"
, "globals": {
"module": false,
"exports": false,
"require": false,
"cordova": true
}
}

View File

@ -46,8 +46,8 @@
"cordova-browser"
],
"scripts": {
"test": "npm run jshint",
"jshint": "jshint www && jshint src && jshint tests"
"test": "npm run eslint",
"eslint": "eslint www && eslint src && eslint tests"
},
"author": "Apache Software Foundation",
"license": "Apache-2.0",
@ -59,6 +59,12 @@
}
},
"devDependencies": {
"jshint": "^2.6.0"
"eslint": "^4.0.0",
"eslint-config-semistandard": "^11.0.0",
"eslint-config-standard": "^10.2.1",
"eslint-plugin-import": "^2.3.0",
"eslint-plugin-node": "^5.0.0",
"eslint-plugin-promise": "^3.5.0",
"eslint-plugin-standard": "^3.0.1"
}
}

View File

@ -21,9 +21,9 @@
/* global PluginResult */
//map from BB10 to cordova connection types:
//https://github.com/apache/cordova-js/blob/master/lib/common/plugin/Connection.js
function mapConnectionType(con) {
// map from BB10 to cordova connection types:
// https://github.com/apache/cordova-js/blob/master/lib/common/plugin/Connection.js
function mapConnectionType (con) {
switch (con.type) {
case 'wired':
return 'ethernet';
@ -43,17 +43,16 @@ function mapConnectionType(con) {
case 'lte':
return '4g';
}
return "cellular";
return 'cellular';
}
return 'unknown';
}
function currentConnectionType() {
function currentConnectionType () {
try {
//possible for webplatform to throw pps exception
return mapConnectionType(window.qnx.webplatform.device.activeConnection || { type : 'none' });
}
catch (e) {
// possible for webplatform to throw pps exception
return mapConnectionType(window.qnx.webplatform.device.activeConnection || { type: 'none' });
} catch (e) {
return 'unknown';
}
}

View File

@ -18,31 +18,29 @@
*
*/
var cordova = require('cordova'),
proxy = require("cordova/exec/proxy"),
Connection = require('./Connection');
var cordova = require('cordova');
var proxy = require('cordova/exec/proxy');
var Connection = require('./Connection');
var type = navigator.onLine ? Connection.UNKNOWN : Connection.NONE;
// Subscribe to 'native' online/offline events
function onStatusChange(evt) {
function onStatusChange (evt) {
type = navigator.onLine ? Connection.UNKNOWN : Connection.NONE;
// force async
setTimeout(function(){
setTimeout(function () {
cordova.fireDocumentEvent(evt.type);
},0);
}, 0);
}
window.addEventListener('online', onStatusChange);
window.addEventListener('offline', onStatusChange);
proxy.add("NetworkStatus", {
getConnectionInfo:function(cbSuccess) {
proxy.add('NetworkStatus', {
getConnectionInfo: function (cbSuccess) {
// force async
setTimeout(function(){
setTimeout(function () {
cbSuccess(type);
},0);
}, 0);
}
});

View File

@ -24,73 +24,73 @@
and http://w3c.github.io/netinfo/
*/
var Connection = require('./Connection'),
modulemapper = require('cordova/modulemapper');
var Connection = require('./Connection');
var modulemapper = require('cordova/modulemapper');
var origConnection = modulemapper.getOriginalSymbol(window, 'navigator.connection');
module.exports = {
getConnectionInfo: function(successCallback, errorCallback) {
var connection = origConnection || navigator.mozConnection,
connectionType = Connection.UNKNOWN;
getConnectionInfo: function (successCallback, errorCallback) {
var connection = origConnection || navigator.mozConnection;
var connectionType = Connection.UNKNOWN;
if (!connection) {
setTimeout(function() {
if (!connection) {
setTimeout(function () {
successCallback(connectionType);
}, 0);
return;
}
var bandwidth = connection.bandwidth;
var metered = connection.metered;
var type = connection.type;
if (type !== undefined) {
// For more information see:
// https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API
switch (type) {
case 'cellular':
connectionType = Connection.CELL;
break;
case 'ethernet':
connectionType = Connection.ETHERNET;
break;
case 'wifi':
connectionType = Connection.WIFI;
break;
case 'none':
connectionType = Connection.NONE;
break;
}
} else if (bandwidth !== undefined && metered !== undefined) {
/*
bandwidth of type double, readonly
The user agent must set the value of the bandwidth attribute to:
0 if the user is currently offline;
Infinity if the bandwidth is unknown;
an estimation of the current bandwidth in MB/s (Megabytes per seconds)
available for communication with the browsing context active document's
domain.
For more information see:
https://developer.mozilla.org/en-US/docs/Web/API/Connection
*/
if (bandwidth === 0) {
connectionType = Connection.NONE;
} else if (metered && isFinite(bandwidth)) {
connectionType = Connection.CELL;
} else if (!metered && isFinite(bandwidth)) {
connectionType = Connection.WIFI;
}
}
setTimeout(function () {
successCallback(connectionType);
}, 0);
return;
}
var bandwidth = connection.bandwidth,
metered = connection.metered,
type = connection.type;
if (type !== undefined) {
// For more information see:
// https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API
switch(type) {
case "cellular":
connectionType = Connection.CELL;
break;
case "ethernet":
connectionType = Connection.ETHERNET;
break;
case "wifi":
connectionType = Connection.WIFI;
break;
case "none":
connectionType = Connection.NONE;
break;
}
} else if (bandwidth !== undefined && metered !== undefined) {
/*
bandwidth of type double, readonly
The user agent must set the value of the bandwidth attribute to:
0 if the user is currently offline;
Infinity if the bandwidth is unknown;
an estimation of the current bandwidth in MB/s (Megabytes per seconds)
available for communication with the browsing context active document's
domain.
For more information see:
https://developer.mozilla.org/en-US/docs/Web/API/Connection
*/
if (bandwidth === 0) {
connectionType = Connection.NONE;
} else if (metered && isFinite(bandwidth)) {
connectionType = Connection.CELL;
} else if (!metered && isFinite(bandwidth)) {
connectionType = Connection.WIFI;
}
}
setTimeout(function() {
successCallback(connectionType);
}, 0);
}
};
require("cordova/exec/proxy").add("NetworkStatus", module.exports);
require('cordova/exec/proxy').add('NetworkStatus', module.exports);

View File

@ -24,15 +24,14 @@
var Connection = require('./Connection');
module.exports = {
getConnectionInfo: function(successCallback, errorCallback) {
getConnectionInfo: function (successCallback, errorCallback) {
var cncType = Connection.NONE;
var infoCount = 0;
var deviceCapabilities = null;
var timerId = 0;
var timeout = 300;
function connectionCB() {
function connectionCB () {
if (timerId !== null) {
clearTimeout(timerId);
timerId = null;
@ -47,47 +46,44 @@ module.exports = {
}
}
function errorCB(error) {
console.log("Error: " + error.code + "," + error.name + "," + error.message);
function errorCB (error) {
console.log('Error: ' + error.code + ',' + error.name + ',' + error.message);
if (errorCallback) {
errorCallback();
}
}
function wifiSuccessCB(wifi) {
if ((wifi.status === "ON") && (wifi.ipAddress.length !== 0)) {
function wifiSuccessCB (wifi) {
if ((wifi.status === 'ON') && (wifi.ipAddress.length !== 0)) {
cncType = Connection.WIFI;
}
connectionCB();
}
function cellularSuccessCB(cell) {
if ((cncType === Connection.NONE) && (cell.status === "ON") && (cell.ipAddress.length !== 0)) {
function cellularSuccessCB (cell) {
if ((cncType === Connection.NONE) && (cell.status === 'ON') && (cell.ipAddress.length !== 0)) {
cncType = Connection.CELL_2G;
}
connectionCB();
}
deviceCapabilities = tizen.systeminfo.getCapabilities();
timerId = setTimeout(function() {
timerId = setTimeout(function () {
timerId = null;
infoCount = 1;
connectionCB();
}, timeout);
if (deviceCapabilities.wifi) {
tizen.systeminfo.getPropertyValue("WIFI_NETWORK", wifiSuccessCB, errorCB);
tizen.systeminfo.getPropertyValue('WIFI_NETWORK', wifiSuccessCB, errorCB);
}
if (deviceCapabilities.telephony) {
tizen.systeminfo.getPropertyValue("CELLULAR_NETWORK", cellularSuccessCB, errorCB);
tizen.systeminfo.getPropertyValue('CELLULAR_NETWORK', cellularSuccessCB, errorCB);
}
}
};
require("cordova/tizen/commandProxy").add("NetworkStatus", module.exports);
require('cordova/tizen/commandProxy').add('NetworkStatus', module.exports);

View File

@ -19,14 +19,14 @@
*
*/
/*global Windows:true */
/* global Windows:true */
var Connection = require('./Connection');
var winNetConn = Windows.Networking.Connectivity;
var networkInfo = winNetConn.NetworkInformation;
function getCurrrentConnectionType() {
function getCurrrentConnectionType () {
var profile = networkInfo.getInternetConnectionProfile();
@ -40,26 +40,26 @@ function getCurrrentConnectionType() {
// since we use this to detect whether we are online or offline we do check agains InternetAccess
// localAccess (airplane mode as an example) or constrainedInternetAccess mean there is no access to the internet available
// https://msdn.microsoft.com/library/windows/apps/windows.networking.connectivity.networkconnectivitylevel.aspx
if (conLevel != Windows.Networking.Connectivity.NetworkConnectivityLevel.internetAccess) {
if (conLevel !== Windows.Networking.Connectivity.NetworkConnectivityLevel.internetAccess) {
return Connection.NONE;
}
var connectionType;
switch (interfaceType) {
case 71:
connectionType = Connection.WIFI;
break;
case 6:
connectionType = Connection.ETHERNET;
break;
case 243: // (3GPP WWAN) // Fallthrough is intentional
case 244: // (3GPP2 WWAN)
connectionType = Connection.CELL_3G;
break;
default:
connectionType = Connection.UNKNOWN;
break;
case 71:
connectionType = Connection.WIFI;
break;
case 6:
connectionType = Connection.ETHERNET;
break;
case 243: // (3GPP WWAN) // Fallthrough is intentional
case 244: // (3GPP2 WWAN)
connectionType = Connection.CELL_3G;
break;
default:
connectionType = Connection.UNKNOWN;
break;
}
return connectionType;
@ -67,8 +67,7 @@ function getCurrrentConnectionType() {
module.exports = {
getConnectionInfo:function(win,fail,args)
{
getConnectionInfo: function (win, fail, args) {
var reportConnectionInfoOnce = function () {
win(getCurrrentConnectionType(), { keepCallback: true });
};
@ -76,8 +75,8 @@ module.exports = {
// report current connection type
setTimeout(reportConnectionInfoOnce, 0);
// start traking future changes
networkInfo.addEventListener("networkstatuschanged", reportConnectionInfoOnce);
networkInfo.addEventListener('networkstatuschanged', reportConnectionInfoOnce);
}
};
require("cordova/exec/proxy").add("NetworkStatus",module.exports);
require('cordova/exec/proxy').add('NetworkStatus', module.exports);

View File

@ -19,17 +19,17 @@
*
*/
/* jshint jasmine: true */
/* eslint-env jasmine */
/* global Connection */
exports.defineAutoTests = function () {
describe('Network (navigator.connection)', function () {
it("network.spec.1 should exist", function () {
it('network.spec.1 should exist', function () {
expect(navigator.network && navigator.network.connection).toBeDefined();
expect(navigator.connection).toBeDefined();
});
it("network.spec.2 should be set to a valid value", function () {
it('network.spec.2 should be set to a valid value', function () {
var validValues = {
'unknown': 1,
'ethernet': 1,
@ -43,19 +43,19 @@ exports.defineAutoTests = function () {
expect(validValues[navigator.connection.type]).toBe(1);
});
it("network.spec.3 should have the same value in deprecated and non-deprecated apis", function () {
it('network.spec.3 should have the same value in deprecated and non-deprecated apis', function () {
expect(navigator.network.connection.type).toBe(navigator.connection.type);
});
it("network.spec.4 should define constants for connection status", function () {
expect(Connection.UNKNOWN).toBe("unknown");
expect(Connection.ETHERNET).toBe("ethernet");
expect(Connection.WIFI).toBe("wifi");
expect(Connection.CELL_2G).toBe("2g");
expect(Connection.CELL_3G).toBe("3g");
expect(Connection.CELL_4G).toBe("4g");
expect(Connection.NONE).toBe("none");
expect(Connection.CELL).toBe("cellular");
it('network.spec.4 should define constants for connection status', function () {
expect(Connection.UNKNOWN).toBe('unknown');
expect(Connection.ETHERNET).toBe('ethernet');
expect(Connection.WIFI).toBe('wifi');
expect(Connection.CELL_2G).toBe('2g');
expect(Connection.CELL_3G).toBe('3g');
expect(Connection.CELL_4G).toBe('4g');
expect(Connection.NONE).toBe('none');
expect(Connection.CELL).toBe('cellular');
});
});
};
@ -65,17 +65,17 @@ exports.defineAutoTests = function () {
/******************************************************************************/
exports.defineManualTests = function (contentEl, createActionButton) {
function eventOutput(s) {
var el = document.getElementById("results");
el.innerHTML = el.innerHTML + s + "<br>";
function eventOutput (s) {
var el = document.getElementById('results');
el.innerHTML = el.innerHTML + s + '<br>';
}
function printNetwork() {
eventOutput("navigator.connection.type=" + navigator.connection.type);
eventOutput("navigator.network.connection.type=" + navigator.network.connection.type);
function printNetwork () {
eventOutput('navigator.connection.type=' + navigator.connection.type);
eventOutput('navigator.network.connection.type=' + navigator.network.connection.type);
}
function onEvent(e) {
function onEvent (e) {
eventOutput('Event of type: ' + e.type);
printNetwork();
}
@ -90,8 +90,8 @@ exports.defineManualTests = function (contentEl, createActionButton) {
' The result will be unknown, ethernet, wifi, 2g, 3g, 4g, none, or cellular. Make sure it matches what the device is connected to.' +
'</p> <div id="actions"></div>';
document.addEventListener("online", onEvent, false);
document.addEventListener("offline", onEvent, false);
document.addEventListener('online', onEvent, false);
document.addEventListener('offline', onEvent, false);
contentEl.innerHTML = html;
createActionButton('Show Network Connection', function () {

View File

@ -23,12 +23,12 @@
* Network status
*/
module.exports = {
UNKNOWN: "unknown",
ETHERNET: "ethernet",
WIFI: "wifi",
CELL_2G: "2g",
CELL_3G: "3g",
CELL_4G: "4g",
CELL:"cellular",
NONE: "none"
UNKNOWN: 'unknown',
ETHERNET: 'ethernet',
WIFI: 'wifi',
CELL_2G: '2g',
CELL_3G: '3g',
CELL_4G: '4g',
CELL: 'cellular',
NONE: 'none'
};

View File

@ -18,23 +18,23 @@
*
*/
var exec = require('cordova/exec'),
cordova = require('cordova'),
channel = require('cordova/channel'),
utils = require('cordova/utils');
var exec = require('cordova/exec');
var cordova = require('cordova');
var channel = require('cordova/channel');
var utils = require('cordova/utils');
// Link the onLine property with the Cordova-supplied network info.
// This works because we clobber the navigator object with our own
// object in bootstrap.js.
// Browser platform do not need to define this property, because
// it is already supported by modern browsers
if (cordova.platformId !== 'browser' && typeof navigator != 'undefined') {
utils.defineGetter(navigator, 'onLine', function() {
return this.connection.type != 'none';
if (cordova.platformId !== 'browser' && typeof navigator !== 'undefined') {
utils.defineGetter(navigator, 'onLine', function () {
return this.connection.type !== 'none';
});
}
function NetworkConnection() {
function NetworkConnection () {
this.type = 'unknown';
}
@ -44,8 +44,8 @@ function NetworkConnection() {
* @param {Function} successCallback The function to call when the Connection data is available
* @param {Function} errorCallback The function to call when there is an error getting the Connection data. (OPTIONAL)
*/
NetworkConnection.prototype.getInfo = function(successCallback, errorCallback) {
exec(successCallback, errorCallback, "NetworkStatus", "getConnectionInfo", []);
NetworkConnection.prototype.getInfo = function (successCallback, errorCallback) {
exec(successCallback, errorCallback, 'NetworkStatus', 'getConnectionInfo', []);
};
var me = new NetworkConnection();
@ -55,13 +55,13 @@ var timeout = 500;
channel.createSticky('onCordovaConnectionReady');
channel.waitForInitialization('onCordovaConnectionReady');
channel.onCordovaReady.subscribe(function() {
me.getInfo(function(info) {
channel.onCordovaReady.subscribe(function () {
me.getInfo(function (info) {
me.type = info;
if (info === "none") {
if (info === 'none') {
// set a timer if still offline at the end of timer send the offline event
timerId = setTimeout(function(){
cordova.fireDocumentEvent("offline");
timerId = setTimeout(function () {
cordova.fireDocumentEvent('offline');
timerId = null;
}, timeout);
} else {
@ -70,7 +70,7 @@ channel.onCordovaReady.subscribe(function() {
clearTimeout(timerId);
timerId = null;
}
cordova.fireDocumentEvent("online");
cordova.fireDocumentEvent('online');
}
// should only fire this once
@ -84,7 +84,7 @@ channel.onCordovaReady.subscribe(function() {
if (channel.onCordovaConnectionReady.state !== 2) {
channel.onCordovaConnectionReady.fire();
}
console.log("Error initializing Network Connection: " + e);
console.log('Error initializing Network Connection: ' + e);
});
});