Implement eslint configuration

This commit is contained in:
Anton Tananaev 2017-08-18 11:46:57 +12:00
parent 3c2a5c249d
commit adacb40ad6
9 changed files with 78 additions and 176 deletions

2
.eslintignore Normal file
View File

@ -0,0 +1,2 @@
web/simple/app.js
web/load.js

2
.gitignore vendored
View File

@ -4,3 +4,5 @@
nbproject/
web/app.min.js
sencha-error-*
node_modules
package-lock.json

4
.travis.yml Normal file
View File

@ -0,0 +1,4 @@
language: node_js
script:
- npm run lint

70
package.json Normal file
View File

@ -0,0 +1,70 @@
{
"name": "traccar-web",
"devDependencies": {
"eslint": "^4.4.1"
},
"scripts": {
"lint": "./node_modules/.bin/eslint web/."
},
"eslintConfig": {
"extends": "eslint:all",
"env": {
"browser": true
},
"globals": {
"Ext": false,
"ol": false,
"Traccar": false,
"Strings": false,
"Locale": false,
"proj4": false,
"Uint8Array": false
},
"rules": {
"strict": "off",
"max-lines": ["error", 1000],
"max-len": ["error", 180],
"max-statements": ["error", 35],
"max-params": ["error", 5],
"indent": ["error", 4, {
"SwitchCase": 1
}],
"quotes": ["error", "single"],
"padded-blocks": ["error", "never"],
"dot-location": ["error", "property"],
"wrap-iife": ["error", "inside"],
"dot-notation": "off",
"array-bracket-newline": "off",
"array-element-newline": "off",
"sort-keys": "off",
"sort-vars": "off",
"no-magic-numbers": "off",
"no-mixed-operators": "off",
"prefer-template": "off",
"newline-per-chained-call": "off",
"object-shorthand": "off",
"func-names": "off",
"init-declarations": "off",
"no-var": "off",
"id-length": "off",
"no-undefined": "off",
"object-curly-newline": "off",
"prefer-destructuring": "off",
"no-plusplus": "off",
"no-param-reassign": "off",
"no-ternary": "off",
"multiline-ternary": "off",
"one-var-declaration-per-line": "off",
"no-shadow": "off",
"no-else-return": "off",
"consistent-this": "off",
"quote-props": "off",
"no-negated-condition": "off",
"prefer-arrow-callback": "off",
"no-prototype-builtins": "off",
"no-multi-assign": "off",
"no-bitwise": "off",
"prefer-rest-params": "off"
}
}
}

View File

@ -1,2 +0,0 @@
simple/app.js
load.js

View File

@ -1,89 +0,0 @@
{
"extends": "crockford",
"env": {
"browser": true,
"node": true
},
// Custom Globals
"globals" : {
"Ext" : false,
"ol" : false,
"Traccar" : false,
"Strings" : false,
"Locale" : false,
"proj4" : false
},
"rules": {
"indent": ["error", 4,
{
"SwitchCase":1
}
],
"comma-spacing": [2,
{
"after": true
}
],
"no-bitwise": 0,
"camelcase": 2,
"curly": 2,
"eqeqeq": 2,
"guard-for-in": 2,
"no-extend-native": 2,
"wrap-iife": [
2,
"any"
],
"no-use-before-define": [
2,
{
"functions": false
}
],
"new-cap": 2,
"no-caller": 2,
"no-empty": 2,
"no-irregular-whitespace": 2,
"no-new": 2,
"no-plusplus": 0,
"quotes": [
2,
"single"
],
"no-undef": 2,
"no-unused-vars": 2,
"strict": 0,
"max-params": 0,
"max-depth": 0,
"max-statements": 0,
"complexity": 0,
"max-len": 0,
"no-var": 0,
"semi": 0,
"no-cond-assign": 0,
"no-debugger": 0,
"no-eq-null": 0,
"no-eval": 0,
"no-unused-expressions": 0,
"block-scoped-var": 0,
"no-iterator": 0,
"linebreak-style": 0,
"comma-style": [
2,
"last"
],
"no-loop-func": 0,
"no-multi-str": 0,
"require-yield": 0,
"valid-typeof": 0,
"no-proto": 0,
"no-script-url": 0,
"no-shadow": 2,
"dot-notation": 0,
"no-new-func": 0,
"no-new-wrappers": 0,
"no-invalid-this": 0
}
}

View File

@ -1,7 +0,0 @@
{
"preset": "crockford",
"maxErrors": 100,
"excludeFiles": ["simple/app.js"],
"requireDotNotation": false,
"requireSpaceAfterComma": true
}

View File

@ -1,2 +0,0 @@
locale.js
simple/app.js

View File

@ -1,76 +0,0 @@
{
// Enforcing
"bitwise" : false, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : true, // true: Identifiers must be in camelCase
"curly" : true, // true: Require {} for every new block or scope
"eqeqeq" : true, // true: Require triple equals (===) for comparison
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
"freeze" : true, // true: prohibits overwriting prototypes of native objects such as Array, Date etc.
"immed" : true, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
"indent" : 4, // {int} Number of spaces to use for indentation
"latedef" : true, // true: Require variables/functions to be defined before being used
"newcap" : true, // true: Require capitalization of all constructor functions e.g. `new F()`
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
"noempty" : true, // true: Prohibit use of empty blocks
"nonbsp" : true, // true: Prohibit "non-breaking whitespace" characters.
"nonew" : true, // true: Prohibit use of constructors for side-effects (without assignment)
"plusplus" : false, // true: Prohibit use of `++` and `--`
"quotmark" : "single", // Quotation mark consistency:
// false : do nothing (default)
// true : ensure whatever is used is consistent
// "single" : require single quotes
// "double" : require double quotes
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
"unused" : "vars", // Unused variables:
// true : all variables, last function parameter
// "vars" : all variables only
// "strict" : all variables, all function parameters
"strict" : false, // true: Requires all functions run in ES5 Strict Mode
"maxparams" : false, // {int} Max number of formal params allowed per function
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
"maxstatements" : false, // {int} Max number statements per function
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
"maxlen" : false, // {int} Max number of characters per line
"varstmt" : false, // true: Disallow any var statements. Only `let` and `const` are allowed.
// Relaxing
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
"boss" : false, // true: Tolerate assignments where comparisons would be expected
"debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
"eqnull" : false, // true: Tolerate use of `== null`
"esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
"funcscope" : false, // true: Tolerate defining variables inside control statements
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
"iterator" : false, // true: Tolerate using the `__iterator__` property
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
"laxcomma" : false, // true: Tolerate comma-first style coding
"loopfunc" : false, // true: Tolerate functions being defined in loops
"multistr" : false, // true: Tolerate multi-line strings
"noyield" : false, // true: Tolerate generator functions with no yield statement in them.
"notypeof" : false, // true: Tolerate invalid typeof operator values
"proto" : false, // true: Tolerate using the `__proto__` property
"scripturl" : false, // true: Tolerate script-targeted URLs
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
"sub" : true, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
"supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
"validthis" : false, // true: Tolerate using this in a non-constructor function
// Environments
"browser" : true, // Web Browser (window, document, etc)
"devel" : true, // Development/debugging (alert, confirm, etc)
"node" : true, // Node.js
// Custom Globals
"globals" : {
"Ext" : false,
"ol" : false,
"Traccar" : false,
"Strings" : false,
"Locale" : false,
"proj4" : false
}
}