128 lines
4.4 KiB
JSON
Executable File
128 lines
4.4 KiB
JSON
Executable File
{
|
|
"env": {
|
|
"node": true,
|
|
"browser": true
|
|
},
|
|
"globals": {
|
|
"ArrayBuffer": true,
|
|
"Uint8Array": true,
|
|
"Float32Array": true,
|
|
"Float64Array": true,
|
|
"define": true,
|
|
"global": true,
|
|
"XMLHttpRequest": true,
|
|
"Promise": true
|
|
},
|
|
"parserOptions": {
|
|
"ecmaVersion": 5
|
|
},
|
|
"extends": "eslint:recommended",
|
|
"rules": {
|
|
|
|
// Possible errors
|
|
"no-extra-parens": 1, // turned on as the daily lecture
|
|
"no-prototype-builtins": 1,
|
|
"no-template-curly-in-string": 1,
|
|
"no-unsafe-negation": 1,
|
|
"valid-jsdoc": 1,
|
|
|
|
// Best practices
|
|
"accessor-pairs": 1,
|
|
"array-callback-return": 1,
|
|
"block-scoped-var": 1,
|
|
"class-methods-use-this": 1,
|
|
"complexity": 0, // is sometimes necessary
|
|
"consistent-return": 1,
|
|
"curly": 0, // sometimes more braces than code
|
|
"default-case": 0, // just forces unnecessary code
|
|
"dot-location": 0, // looks nicer for chainables
|
|
"dot-notation": 0, // not compatible with some reserved properties
|
|
"eqeqeq": [1, "allow-null"],
|
|
"guard-for-in": 1,
|
|
"no-alert": 1,
|
|
"no-caller": 1,
|
|
"no-cond-assign": 0,
|
|
"no-div-regex": 1,
|
|
"no-else-return": 1,
|
|
"no-empty-function": 1,
|
|
"no-eval": 1,
|
|
"no-extend-native": 1,
|
|
"no-extra-bind": 1,
|
|
"no-extra-label": 1,
|
|
"no-floating-decimal": 1,
|
|
"no-global-assign": 1,
|
|
"no-implicit-coercion": 1,
|
|
"no-implicit-globals": 1,
|
|
"no-implied-eval": 1,
|
|
"no-invalid-this": 1,
|
|
"no-iterator": 1,
|
|
"no-labels": 1,
|
|
"no-lone-blocks": 1,
|
|
"no-loop-func": 1,
|
|
"no-magic-numbers": 0, // it's actually fun to turn this on here
|
|
"no-new-func": 1,
|
|
"no-new-wrappers": 1,
|
|
"no-new": 1,
|
|
"no-octal-escape": 1,
|
|
"no-param-reassign": 0, // is necessary for varargs functions
|
|
"no-proto": 1,
|
|
"no-restricted-properties": 1,
|
|
"no-sequences": 1,
|
|
"no-script-url": 1,
|
|
"no-self-compare": 1,
|
|
"no-throw-literal": 1,
|
|
"no-unmodified-loop-condition": 1,
|
|
"no-unused-expressions": 1,
|
|
"no-useless-call": 1,
|
|
"no-useless-concat": 1,
|
|
"no-useless-escape": 1,
|
|
"no-useless-return": 1,
|
|
"no-void": 1,
|
|
"no-warning-comments": 1,
|
|
"no-with": 1,
|
|
"radix": 1,
|
|
"vars-on-top": 0, // makes code harder to read, not faster
|
|
"wrap-iife": 0, // used frequently where polyfilling
|
|
"yoda": 1,
|
|
|
|
// Strict mode
|
|
"strict": 1,
|
|
|
|
// Variables
|
|
"init-declarations": 0, // because no-undef-init is on and we actually want undefineds
|
|
"no-catch-shadow": 0, // no IE8 support anyway
|
|
"no-label-var": 1,
|
|
"no-restricted-globals": 1,
|
|
"no-return-assign": 0, // can make sense.
|
|
"no-shadow-restricted-names": 1,
|
|
"no-shadow": 0, // this is javascript. it has forEach and all that stuff.
|
|
"no-undef-init": 1,
|
|
"no-undef": 2,
|
|
"no-undefined": 0, // produces shorter code when testing against this
|
|
"no-use-before-define": 0, // can actually be used for a better overview, i.e. with module.exports
|
|
"no-unused-vars": 1, // a warning is sufficient
|
|
|
|
// Node.js and CommonJS
|
|
"callback-return": 1,
|
|
"global-require": 0, // only way to resolve cyclic references
|
|
"handle-callback-err": 1,
|
|
"no-mixed-requires": 1,
|
|
"no-new-require": 1,
|
|
"no-path-concat": 1,
|
|
"no-process-env": 1,
|
|
"no-process-exit": 1,
|
|
"no-restricted-modules": 1,
|
|
"no-sync": 0, // for loadSync
|
|
|
|
// Stylistic Issues
|
|
"semi": 1, // maybe next time
|
|
"no-extra-semi": 1,
|
|
"quotes": 1, // useful for gzip
|
|
"no-trailing-spaces": 1,
|
|
"no-unneeded-ternary": 1,
|
|
"unicode-bom": [2, "never"]
|
|
|
|
// ECMAScript 6 // maybe next time
|
|
}
|
|
}
|