Skip to content

Commit

Permalink
Merge pull request #7 from allenmoore/feature/separation-of-concerns
Browse files Browse the repository at this point in the history
move rules into separate files based on use case
  • Loading branch information
Allen Moore authored Jan 26, 2017
2 parents 19c71ea + adec376 commit 69b5bb3
Show file tree
Hide file tree
Showing 13 changed files with 545 additions and 204 deletions.
16 changes: 16 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# editorconfig.org
root = true

[*]
indent_style = tab
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[{package.json,.travis.yml,bower.json,.eslintrc}]
indent_style = space
indent_size = 2

[*.md]
trim_trailing_whitespace = false
203 changes: 2 additions & 201 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -1,202 +1,3 @@
{
"env": {
"browser": true,
"jquery": true,
"node": true,
"es6": true
},
"parserOptions": {
"ecmaFeatures": {
"arrowFunctions": true,
"blockBindings": true,
"classes": true,
"destructuring": true,
"forOf": true,
"generators": true,
"modules": true,
"objectLiteralComputedProperties": true,
"objectLiteralShorthandMethods": true,
"objectLiteralShorthandProperties": true,
"templateStrings": true
}
},
"globals": {
"require": true,
"describe": true,
"description": true,
"module": true,
"chai": true,
"it": true
},
"rules": {
"accessor-pairs": [2],
"block-scoped-var": [2],
"brace-style": [2],
"callback-return": [2, ["callback", "cb", "next"]],
"camelcase": [2],
"comma-dangle": [2],
"comma-spacing": [2, {"before": false, "after": true}],
"comma-style": [2, "last"],
"complexity": [2, 20],
"consistent-return": [0],
"consistent-this": [2, "self"],
"constructor-super": [2],
"curly": [2],
"default-case": [2],
"dot-notation": [2],
"dot-location": [2],
"eqeqeq": [2],
"eol-last": [2],
"func-style": [2, "expression"],
"global-require": [2],
"guard-for-in": [0],
"handle-callback-err": [2, "^err(or)?$"],
"id-length": [0],
"id-match": [2, ""],
"indent": [2, "tab", {"SwitchCase": 1}],
"init-declarations": [0],
"keyword-spacing": [2],
"max-depth": [2, 6],
"max-len": [2, 100, 4],
"max-nested-callbacks": [0],
"max-params": [2, 3],
"max-statements": [0],
"new-cap": [0],
"new-parens": [2],
"newline-after-var": [2],
"no-alert": [2],
"no-array-constructor": [2],
"no-bitwise": [0],
"no-caller": [2],
"no-case-declarations": [2],
"no-catch-shadow": [2],
"no-class-assign": [2],
"no-cond-assign": [2],
"no-console": [2],
"no-const-assign": [1],
"no-constant-condition": [0],
"no-continue": [0],
"no-control-regex": [2],
"no-debugger": [2],
"no-delete-var": [2],
"no-div-regex": [0],
"no-dupe-args": [2],
"no-dupe-class-members": [2],
"no-dupe-keys": [2],
"no-duplicate-case": [2],
"no-else-return": [0],
"no-empty-character-class": [2],
"no-empty-pattern": [2],
"no-empty": [2],
"no-eq-null": [2],
"no-eval": [2],
"no-ex-assign": [2],
"no-extend-native": [2],
"no-extra-bind": [2],
"no-extra-boolean-cast": [2],
"no-extra-parens": [2],
"no-extra-semi": [2],
"no-fallthrough": [2],
"no-floating-decimal": [2],
"no-func-assign": [2],
"no-implicit-coercion": [2],
"no-implicit-globals": [0],
"no-implied-eval": [2],
"no-inline-comments": [0],
"no-inner-declarations": [2],
"no-invalid-regexp": [2],
"no-invalid-this": [0],
"no-irregular-whitespace": [2],
"no-iterator": [2],
"no-label-var": [2],
"no-labels": [0],
"no-lone-blocks": [2],
"no-lonely-if": [2],
"no-loop-func": [2],
"no-magic-numbers": [0],
"no-mixed-requires": [0],
"no-multi-spaces": [2],
"no-mixed-spaces-and-tabs": [2],
"no-multi-str": [2],
"no-multiple-empty-lines": [2],
"no-native-reassign": [2],
"no-negated-condition": [0],
"no-negated-in-lhs": [2],
"no-nested-ternary": [2],
"no-new-func": [0],
"no-new-object": [2],
"no-new-require": [0],
"no-new-wrappers": [2],
"no-new": [2],
"no-obj-calls": [2],
"no-octal-escape": [2],
"no-octal": [2],
"no-param-reassign": [0],
"no-path-concat": [2],
"no-plusplus": [0],
"no-process-env": [2],
"no-process-exit": [0],
"no-proto": [2],
"no-redeclare": [2],
"no-regex-spaces": [2],
"no-restricted-imports": [0],
"no-restricted-syntax": [0],
"no-return-assign": [2],
"no-script-url": [2],
"no-self-compare": [2],
"no-sequences": [2],
"no-shadow-restricted-names": [2],
"no-shadow": [2],
"no-spaced-func": [2],
"no-sparse-arrays": [2],
"no-sync": [0],
"no-ternary": [0],
"no-this-before-super": [2],
"no-throw-literal": [2],
"no-trailing-spaces": [2],
"no-undef-init": [2],
"no-undef": [2],
"no-undefined": [0],
"no-unexpected-multiline": [2],
"no-unneeded-ternary": [2],
"no-unreachable": [2],
"no-unused-expressions": [2],
"no-unused-vars": [2],
"no-use-before-define": [0],
"no-useless-call": [2],
"no-useless-concat": [2],
"no-var": [0],
"no-void": [0],
"no-with": [2],
"no-warning-comments": [2],
"object-shorthand": [0],
"one-var": [0],
"operator-assignment": [2, "always"],
"prefer-arrow-callback": [0],
"prefer-const": [0],
"prefer-reflect": [0],
"prefer-rest-params": [0],
"prefer-spread": [0],
"prefer-template": [0],
"quotes": [2, "single"],
"quote-props": [0],
"require-yield": [0],
"semi-spacing": [2],
"semi": [2, "always"],
"sort-imports": [0],
"sort-vars": [0],
"space-before-blocks": [2],
"space-before-function-paren": [2, "never"],
"space-in-parens": [2, "always"],
"space-infix-ops": [2],
"space-unary-ops": [2],
"strict": [2, "safe"],
"use-isnan": [2],
"valid-jsdoc": [2],
"valid-typeof": [2],
"vars-on-top": [0],
"wrap-iife": [2, "any"],
"wrap-regex": [2],
"yoda": [2, "always"]
}
}
"extends": "./index.js"
}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
node_modules/
.DS_Store
npm-debug.log
.idea/
23 changes: 23 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module.exports = {

extends: [
'./rules/best-practices',
'./rules/errors',
'./rules/node',
'./rules/style',
'./rules/variables',
'./rules/es6',
'./rules/imports',
].map(require.resolve),

parserOptions: {
ecmaVersion: 2017,
sourceType: 'module',
ecmaFeatures: {
experimentalObjectRestSpread: true,
},
},
rules: {
strict: 'error',
},
};
15 changes: 12 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "eslint-config-allenmoore",
"version": "1.1.0",
"description": "A shareable ESLint configuration",
"main": ".eslintrc",
"main": "index.js",
"repository": {
"type": "git",
"url": "git+https://github.com/allenmoore/eslint-config.git"
Expand All @@ -16,10 +16,19 @@
"keywords": [
"eslint",
"eslint-config",
"allenmoore"
"allenmoore",
"javascript",
"config",
"styleguide"
],
"devDependencies": {
"eslint": "^2.0.0"
"eslint": "^3.14.0",
"eslint-find-rules": "^1.14.3",
"eslint-plugin-import": "^2.2.0"
},
"peerDependencies": {
"eslint": "^3.14.0",
"eslint-plugin-import": "^2.2.0"
},
"eslintContig": {
"extends": "./.eslintrc"
Expand Down
107 changes: 107 additions & 0 deletions rules/best-practices.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
module.exports = {
rules: {
'accessor-pairs': 'off',
'block-scoped-var': 'error',
'complexity': ['off', 11],
'class-methods-use-this': 'error',
'consistent-return': 'error',
'curly': ['error', 'all'],
'default-case': ['error', { commentPattern: '^no default$' }],
'dot-notation': ['error', { allowKeywords: true }],
'dot-location': ['error', 'property'],
'eqeqeq': ['error', 'always'],
'guard-for-in': 'off',
'no-alert': 'error',
'no-caller': 'error',
'no-case-declarations': 'error',
'no-div-regex': 'error',
'no-else-return': 'error',
'no-empty-function': ['error', {
allow: ['arrowFunctions', 'functions', 'methods']
}],
'no-empty-pattern': 'error',
'no-eq-null': 'error',
'no-eval': 'error',
'no-extend-native': 'error',
'no-extra-bind': 'error',
'no-extra-label': 'error',
'no-fallthrough': 'error',
'no-floating-decimal': 'error',
'no-global-assign': ['error', {exceptions: []}],
'no-implicit-coercion': ['off', {
boolean: true,
number: true,
string: true,
allow: []
}],
'no-implicit-globals': 'off',
'no-implied-eval': 'error',
'no-invalid-this': 'off',
'no-iterator': 'error',
'no-labels': ['error', {
allowLoop: false,
allowSwitch: false
}],
'no-lone-blocks': 'error',
'no-loop-func': 'error',
'no-magic-numbers': ['off', {
ignore: [],
ignoreArrayIndexes: true,
enforceConst: true,
detectObjects: false,
}],
'no-multi-str': 'error',
'no-native-reassign': 'error',
'no-new': 'error',
'no-new-func': 'error',
'no-new-wrappers': 'error',
'no-octal': 'error',
'no-octal-escape': 'error',
'no-param-reassign': ['error', {
props: true
}],
'no-proto': 'error',
'no-redeclare': 'error',
'no-restricted-properties': ['error', {
object: 'arguments',
property: 'callee',
message: 'arguments.callee is deprecated',
}, {
property: '__defineGetter__',
message: 'Please use Object.defineProperty instead.',
}, {
property: '__defineSetter__',
message: 'Please use Object.defineProperty instead.',
}, {
object: 'Math',
property: 'pow',
message: 'Use the exponentiation operator (**) instead.',
}],
'no-return-assign': 'error',
'no-return-await': 'error',
'no-script-url': 'error',
'no-self-assign': 'error',
'no-self-compare': 'error',
'no-sequences': 'error',
'no-throw-literal': 'error',
'no-unmodified-loop-condition': 'error',
'no-unused-expressions': ['error', {
allowShortCircuit: false,
allowTernary: false
}],
'no-unused-labels': 'error',
'no-useless-call': 'error',
'no-useless-concat': 'error',
'no-useless-escape': 'error',
'no-useless-return': 'error',
'no-void': 'error',
'no-with': 'error',
'radix': 'error',
'require-await': 'off',
'vars-on-top': 'error',
'wrap-iife': ['error', 'any', {
functionPrototypeMethods: false
}],
'yoda': ['error', 'always']
}
};
Loading

0 comments on commit 69b5bb3

Please sign in to comment.