Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
225 changes: 14 additions & 211 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,220 +6,23 @@ module.exports = {
'node': true,
},

'ecmaFeatures': {
'modules': true
'extends': 'google',
'rules': {
'require-jsdoc': [OFF, {
'require': {
'FunctionDeclaration': true,
'MethodDefinition': true,
'ClassDeclaration': false
}
}],
'max-len': [WARN, 132],
'no-invalid-this': OFF,
'no-multi-str': OFF,
'semi': [ERROR, 'never'],
},

'parserOptions': {
'sourceType': 'module',
'ecmaVersion': 6,
'ecmaFeatures': {
'jsx': true,
'experimentalObjectRestSpread': true
},

'extends': 'eslint:recommended',

'rules': {
// Possible Errors (overrides from recommended set)
'no-extra-parens': ERROR,
'no-unexpected-multiline': ERROR,
// All JSDoc comments must be valid
'valid-jsdoc': [ERROR, {
'requireReturn': false,
'requireReturnDescription': false,
'requireParamDescription': true,
'prefer': {
'return': 'returns'
}
}],

// Best Practices

// Allowed a getter without setter, but all setters require getters
'accessor-pairs': [ERROR, {
'getWithoutSet': false,
'setWithoutGet': true
}],
'block-scoped-var': WARN,
'consistent-return': ERROR,
'curly': ERROR,
'default-case': WARN,
// the dot goes with the property when doing multiline
'dot-location': [WARN, 'property'],
'dot-notation': WARN,
'eqeqeq': [ERROR, 'smart'],
'guard-for-in': WARN,
'no-alert': ERROR,
'no-caller': ERROR,
'no-case-declarations': WARN,
'no-div-regex': WARN,
'no-else-return': WARN,
'no-labels': WARN,
'no-empty-pattern': WARN,
'no-eq-null': WARN,
'no-eval': ERROR,
'no-extend-native': ERROR,
'no-extra-bind': WARN,
'no-floating-decimal': WARN,
'no-implicit-coercion': [WARN, {
'boolean': true,
'number': true,
'string': true
}],
'no-implied-eval': ERROR,
'no-invalid-this': ERROR,
'no-iterator': ERROR,
'no-lone-blocks': WARN,
'no-loop-func': ERROR,
'no-magic-numbers': WARN,
'no-multi-spaces': ERROR,
'no-multi-str': WARN,
'no-native-reassign': ERROR,
'no-new-func': ERROR,
'no-new-wrappers': ERROR,
'no-new': ERROR,
'no-octal-escape': ERROR,
'no-param-reassign': ERROR,
'no-process-env': OFF,
'no-proto': ERROR,
'no-redeclare': ERROR,
'no-return-assign': ERROR,
'no-script-url': ERROR,
'no-self-compare': ERROR,
'no-throw-literal': ERROR,
'no-unused-expressions': ERROR,
'no-useless-call': ERROR,
'no-useless-concat': ERROR,
'no-void': WARN,
// Produce warnings when something is commented as TODO or FIXME
'no-warning-comments': [WARN, {
'terms': ['TODO', 'FIXME'],
'location': 'start'
}],
'no-with': WARN,
'radix': WARN,
'vars-on-top': ERROR,
// Enforces the style of wrapped functions
'wrap-iife': [ERROR, 'outside'],
'yoda': ERROR,

// Strict Mode - for ES6, never use strict.
'strict': [WARN, 'never'],

// Variables
'init-declarations': [ERROR, 'always'],
'no-catch-shadow': WARN,
'no-delete-var': ERROR,
'no-label-var': ERROR,
'no-shadow-restricted-names': ERROR,
'no-shadow': WARN,
// We require all vars to be initialized (see init-declarations)
// If we NEED a var to be initialized to undefined, it needs to be explicit
'no-undef-init': OFF,
'no-undef': ERROR,
'no-undefined': OFF,
'no-unused-vars': WARN,
// Disallow hoisting - let & const don't allow hoisting anyhow
'no-use-before-define': ERROR,

// Node.js and CommonJS
'callback-return': [WARN, ['callback', 'next']],
'global-require': OFF,
'handle-callback-err': WARN,
'no-mixed-requires': WARN,
'no-new-require': ERROR,
// Use path.concat instead
'no-path-concat': ERROR,
'no-process-exit': ERROR,
'no-restricted-modules': OFF,
'no-sync': WARN,

// ECMAScript 6 support
'arrow-body-style': [ERROR, 'always'],
'arrow-parens': [ERROR, 'always'],
'arrow-spacing': [ERROR, {'before': true, 'after': true}],
'constructor-super': ERROR,
'generator-star-spacing': [ERROR, 'before'],
'no-confusing-arrow': ERROR,
'no-class-assign': ERROR,
'no-const-assign': ERROR,
'no-dupe-class-members': ERROR,
'no-this-before-super': ERROR,
'no-var': WARN,
'object-shorthand': [WARN, 'never'],
'prefer-arrow-callback': WARN,
'prefer-spread': WARN,
'prefer-template': WARN,
'require-yield': ERROR,

// Stylistic - everything here is a warning because of style.
'array-bracket-spacing': [WARN, 'always'],
'block-spacing': [WARN, 'always'],
'brace-style': [WARN, '1tbs', {'allowSingleLine': false}],
'camelcase': WARN,
'comma-spacing': [WARN, {'before': false, 'after': true}],
'comma-style': [WARN, 'last'],
'computed-property-spacing': [WARN, 'never'],
'consistent-this': [WARN, 'self'],
'eol-last': WARN,
'func-names': WARN,
'func-style': [WARN, 'declaration'],
'id-length': [WARN, {'min': 1, 'max': 32}],
'indent': [WARN, 2],
'jsx-quotes': [WARN, 'prefer-double'],
'linebreak-style': [WARN, 'unix'],
'lines-around-comment': [WARN, {'beforeBlockComment': true}],
'max-depth': [WARN, 8],
'max-len': [WARN, 132],
'max-nested-callbacks': [WARN, 8],
'max-params': [WARN, 8],
'new-cap': WARN,
'new-parens': WARN,
'no-array-constructor': WARN,
'no-bitwise': OFF,
'no-continue': OFF,
'no-inline-comments': OFF,
'no-lonely-if': WARN,
'no-mixed-spaces-and-tabs': ERROR,
'no-multiple-empty-lines': WARN,
'no-negated-condition': OFF,
'no-nested-ternary': WARN,
'no-new-object': WARN,
'no-plusplus': OFF,
'no-spaced-func': WARN,
'no-ternary': OFF,
'no-trailing-spaces': WARN,
'no-underscore-dangle': WARN,
'no-unneeded-ternary': WARN,
'object-curly-spacing': [WARN, 'always'],
'one-var': OFF,
'operator-assignment': [WARN, 'never'],
'operator-linebreak': [WARN, 'after'],
'padded-blocks': [WARN, 'never'],
'quote-props': [WARN, 'consistent-as-needed'],
'quotes': [WARN, 'single'],
'require-jsdoc': [OFF, {
'require': {
'FunctionDeclaration': true,
'MethodDefinition': true,
'ClassDeclaration': false
}
}],
'semi-spacing': [WARN, {'before': false, 'after': true}],
'semi': [ERROR, 'never'],
'sort-vars': OFF,
'keyword-spacing': [WARN, {
'before': true,
'after': true,
}],
'space-before-blocks': [WARN, 'always'],
'space-before-function-paren': [WARN, 'never'],
'space-in-parens': [WARN, 'never'],
'space-infix-ops': [WARN, {'int32Hint': true}],
'space-unary-ops': ERROR,
'spaced-comment': [WARN, 'always'],
'wrap-regex': WARN
}
'ecmaVersion': 2017,
}
}
21 changes: 15 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,25 @@
"url": "https://github.com/ioFog/Controller"
},
"scripts": {
"prestart": "npm run lint",
"start": "node scripts/scripts-api.js start",
"prestart-dev": "npm run lint",
"start-dev": "node scripts/scripts-api.js start-dev",
"prebuild": "npm run lint",
"build": "node scripts/scripts-api.js init",
"preuninstall": "node scripts/scripts-api.js preuninstall",
"postinstall": "node scripts/scripts-api.js postinstall",
"lint": "./node_modules/.bin/eslint \"**/*.js\"",
"automatic-release": "automatic-release",
"pretest": "npm run lint",
"test": "node scripts/scripts-api.js test",
"prepostman_test": "npm run lint",
"postman_test": "node scripts/scripts-api.js postmantest",
"precli-tests": "npm run lint",
"cli-tests": "node scripts/scripts-api.js cli-tests",
"coverage": "node scripts/scripts-api.js coverage"
"precoverage": "npm run lint",
"coverage": "node scripts/scripts-api.js coverage",
"prepare": "npm run lint"
},
"preferGlobal": true,
"bin": {
Expand All @@ -66,7 +74,7 @@
"ftp": "0.3.10",
"helmet": "3.15.0",
"jsonschema": "1.2.4",
"moment": "^2.24.0",
"moment": "2.24.0",
"morgan": "1.9.1",
"nconf": "0.10.0",
"newman": "4.3.1",
Expand All @@ -93,11 +101,12 @@
"chai": "4.2.0",
"chai-as-promised": "7.1.1",
"chai-http": "4.2.1",
"eslint": "5.12.1",
"eslint": "^5.14.1",
"eslint-config-google": "^0.12.0",
"mocha": "5.2.0",
"nyc": "13.1.0",
"newman": "4.3.1",
"nyc": "13.3.0",
"sinon": "7.2.3",
"sinon-chai": "3.3.0",
"newman": "4.3.1"
"sinon-chai": "3.3.0"
}
}
Loading