Skip to content

Instantly share code, notes, and snippets.

@chjj
Created January 1, 2019 17:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chjj/b2329e9c44bc8be4b5e7df8480642059 to your computer and use it in GitHub Desktop.
Save chjj/b2329e9c44bc8be4b5e7df8480642059 to your computer and use it in GitHub Desktop.
commit 00360c5fdc6db71aa2a211af74ca85b3d96f6a48
Author: Christopher Jeffrey <chjjeffrey@gmail.com>
Date: Sat Dec 22 04:29:53 2018 -0800
eslint: get rid of dynamic requires.
diff --git a/node_modules/eslint/lib/cli-engine.js b/node_modules/eslint/lib/cli-engine.js
index ce9fe28..3541a96 100644
--- a/node_modules/eslint/lib/cli-engine.js
+++ b/node_modules/eslint/lib/cli-engine.js
@@ -774,7 +774,9 @@ class CLIEngine {
}
try {
- return require(formatterPath);
+ // No dynamic requires!
+ // return require(formatterPath);
+ return require('./formatters/stylish');
} catch (ex) {
ex.message = `There was a problem loading formatter: ${formatterPath}\nError: ${ex.message}`;
throw ex;
diff --git a/node_modules/eslint/lib/config/config-file.js b/node_modules/eslint/lib/config/config-file.js
index d09b366..f9958e5 100644
--- a/node_modules/eslint/lib/config/config-file.js
+++ b/node_modules/eslint/lib/config/config-file.js
@@ -155,6 +155,13 @@ function loadLegacyConfigFile(filePath) {
*/
function loadJSConfigFile(filePath) {
debug(`Loading JS config file: ${filePath}`);
+
+ if (path.basename(filePath) === 'eslint-recommended.js')
+ return require("../../conf/eslint-recommended.js");
+
+ if (path.basename(filePath) === 'eslint-all.js')
+ return require("../../conf/eslint-all.js");
+
try {
return requireUncached(filePath);
} catch (e) {
diff --git a/node_modules/eslint/lib/rules.js b/node_modules/eslint/lib/rules.js
index 040f9db..4197635 100644
--- a/node_modules/eslint/lib/rules.js
+++ b/node_modules/eslint/lib/rules.js
@@ -10,7 +10,6 @@
//------------------------------------------------------------------------------
const lodash = require("lodash");
-const loadRules = require("./load-rules");
const ruleReplacements = require("../conf/replacements").rules;
//------------------------------------------------------------------------------
@@ -80,11 +79,270 @@ class Rules {
* @returns {void}
*/
load(rulesDir, cwd) {
- const newRules = loadRules(rulesDir, cwd);
-
- Object.keys(newRules).forEach(ruleId => {
- this.define(ruleId, newRules[ruleId]);
- });
+ this.define('accessor-pairs', require('./rules/accessor-pairs.js'));
+ this.define('array-bracket-newline', require('./rules/array-bracket-newline.js'));
+ this.define('array-bracket-spacing', require('./rules/array-bracket-spacing.js'));
+ this.define('array-callback-return', require('./rules/array-callback-return.js'));
+ this.define('array-element-newline', require('./rules/array-element-newline.js'));
+ this.define('arrow-body-style', require('./rules/arrow-body-style.js'));
+ this.define('arrow-parens', require('./rules/arrow-parens.js'));
+ this.define('arrow-spacing', require('./rules/arrow-spacing.js'));
+ this.define('block-scoped-var', require('./rules/block-scoped-var.js'));
+ this.define('block-spacing', require('./rules/block-spacing.js'));
+ this.define('brace-style', require('./rules/brace-style.js'));
+ this.define('callback-return', require('./rules/callback-return.js'));
+ this.define('camelcase', require('./rules/camelcase.js'));
+ this.define('capitalized-comments', require('./rules/capitalized-comments.js'));
+ this.define('class-methods-use-this', require('./rules/class-methods-use-this.js'));
+ this.define('comma-dangle', require('./rules/comma-dangle.js'));
+ this.define('comma-spacing', require('./rules/comma-spacing.js'));
+ this.define('comma-style', require('./rules/comma-style.js'));
+ this.define('complexity', require('./rules/complexity.js'));
+ this.define('computed-property-spacing', require('./rules/computed-property-spacing.js'));
+ this.define('consistent-return', require('./rules/consistent-return.js'));
+ this.define('consistent-this', require('./rules/consistent-this.js'));
+ this.define('constructor-super', require('./rules/constructor-super.js'));
+ this.define('curly', require('./rules/curly.js'));
+ this.define('default-case', require('./rules/default-case.js'));
+ this.define('dot-location', require('./rules/dot-location.js'));
+ this.define('dot-notation', require('./rules/dot-notation.js'));
+ this.define('eol-last', require('./rules/eol-last.js'));
+ this.define('eqeqeq', require('./rules/eqeqeq.js'));
+ this.define('for-direction', require('./rules/for-direction.js'));
+ this.define('func-call-spacing', require('./rules/func-call-spacing.js'));
+ this.define('func-name-matching', require('./rules/func-name-matching.js'));
+ this.define('func-names', require('./rules/func-names.js'));
+ this.define('func-style', require('./rules/func-style.js'));
+ this.define('function-paren-newline', require('./rules/function-paren-newline.js'));
+ this.define('generator-star-spacing', require('./rules/generator-star-spacing.js'));
+ this.define('getter-return', require('./rules/getter-return.js'));
+ this.define('global-require', require('./rules/global-require.js'));
+ this.define('guard-for-in', require('./rules/guard-for-in.js'));
+ this.define('handle-callback-err', require('./rules/handle-callback-err.js'));
+ this.define('id-blacklist', require('./rules/id-blacklist.js'));
+ this.define('id-length', require('./rules/id-length.js'));
+ this.define('id-match', require('./rules/id-match.js'));
+ this.define('implicit-arrow-linebreak', require('./rules/implicit-arrow-linebreak.js'));
+ this.define('indent', require('./rules/indent.js'));
+ this.define('indent-legacy', require('./rules/indent-legacy.js'));
+ this.define('init-declarations', require('./rules/init-declarations.js'));
+ this.define('jsx-quotes', require('./rules/jsx-quotes.js'));
+ this.define('key-spacing', require('./rules/key-spacing.js'));
+ this.define('keyword-spacing', require('./rules/keyword-spacing.js'));
+ this.define('linebreak-style', require('./rules/linebreak-style.js'));
+ this.define('line-comment-position', require('./rules/line-comment-position.js'));
+ this.define('lines-around-comment', require('./rules/lines-around-comment.js'));
+ this.define('lines-around-directive', require('./rules/lines-around-directive.js'));
+ this.define('lines-between-class-members', require('./rules/lines-between-class-members.js'));
+ this.define('max-classes-per-file', require('./rules/max-classes-per-file.js'));
+ this.define('max-depth', require('./rules/max-depth.js'));
+ this.define('max-len', require('./rules/max-len.js'));
+ this.define('max-lines', require('./rules/max-lines.js'));
+ this.define('max-lines-per-function', require('./rules/max-lines-per-function.js'));
+ this.define('max-nested-callbacks', require('./rules/max-nested-callbacks.js'));
+ this.define('max-params', require('./rules/max-params.js'));
+ this.define('max-statements', require('./rules/max-statements.js'));
+ this.define('max-statements-per-line', require('./rules/max-statements-per-line.js'));
+ this.define('multiline-comment-style', require('./rules/multiline-comment-style.js'));
+ this.define('multiline-ternary', require('./rules/multiline-ternary.js'));
+ this.define('new-cap', require('./rules/new-cap.js'));
+ this.define('newline-after-var', require('./rules/newline-after-var.js'));
+ this.define('newline-before-return', require('./rules/newline-before-return.js'));
+ this.define('newline-per-chained-call', require('./rules/newline-per-chained-call.js'));
+ this.define('new-parens', require('./rules/new-parens.js'));
+ this.define('no-alert', require('./rules/no-alert.js'));
+ this.define('no-array-constructor', require('./rules/no-array-constructor.js'));
+ this.define('no-async-promise-executor', require('./rules/no-async-promise-executor.js'));
+ this.define('no-await-in-loop', require('./rules/no-await-in-loop.js'));
+ this.define('no-bitwise', require('./rules/no-bitwise.js'));
+ this.define('no-buffer-constructor', require('./rules/no-buffer-constructor.js'));
+ this.define('no-caller', require('./rules/no-caller.js'));
+ this.define('no-case-declarations', require('./rules/no-case-declarations.js'));
+ this.define('no-catch-shadow', require('./rules/no-catch-shadow.js'));
+ this.define('no-class-assign', require('./rules/no-class-assign.js'));
+ this.define('no-compare-neg-zero', require('./rules/no-compare-neg-zero.js'));
+ this.define('no-cond-assign', require('./rules/no-cond-assign.js'));
+ this.define('no-confusing-arrow', require('./rules/no-confusing-arrow.js'));
+ this.define('no-console', require('./rules/no-console.js'));
+ this.define('no-constant-condition', require('./rules/no-constant-condition.js'));
+ this.define('no-const-assign', require('./rules/no-const-assign.js'));
+ this.define('no-continue', require('./rules/no-continue.js'));
+ this.define('no-control-regex', require('./rules/no-control-regex.js'));
+ this.define('no-debugger', require('./rules/no-debugger.js'));
+ this.define('no-delete-var', require('./rules/no-delete-var.js'));
+ this.define('no-div-regex', require('./rules/no-div-regex.js'));
+ this.define('no-dupe-args', require('./rules/no-dupe-args.js'));
+ this.define('no-dupe-class-members', require('./rules/no-dupe-class-members.js'));
+ this.define('no-dupe-keys', require('./rules/no-dupe-keys.js'));
+ this.define('no-duplicate-case', require('./rules/no-duplicate-case.js'));
+ this.define('no-duplicate-imports', require('./rules/no-duplicate-imports.js'));
+ this.define('no-else-return', require('./rules/no-else-return.js'));
+ this.define('no-empty-character-class', require('./rules/no-empty-character-class.js'));
+ this.define('no-empty-function', require('./rules/no-empty-function.js'));
+ this.define('no-empty', require('./rules/no-empty.js'));
+ this.define('no-empty-pattern', require('./rules/no-empty-pattern.js'));
+ this.define('no-eq-null', require('./rules/no-eq-null.js'));
+ this.define('no-eval', require('./rules/no-eval.js'));
+ this.define('no-ex-assign', require('./rules/no-ex-assign.js'));
+ this.define('no-extend-native', require('./rules/no-extend-native.js'));
+ this.define('no-extra-bind', require('./rules/no-extra-bind.js'));
+ this.define('no-extra-boolean-cast', require('./rules/no-extra-boolean-cast.js'));
+ this.define('no-extra-label', require('./rules/no-extra-label.js'));
+ this.define('no-extra-parens', require('./rules/no-extra-parens.js'));
+ this.define('no-extra-semi', require('./rules/no-extra-semi.js'));
+ this.define('no-fallthrough', require('./rules/no-fallthrough.js'));
+ this.define('no-floating-decimal', require('./rules/no-floating-decimal.js'));
+ this.define('no-func-assign', require('./rules/no-func-assign.js'));
+ this.define('no-global-assign', require('./rules/no-global-assign.js'));
+ this.define('no-implicit-coercion', require('./rules/no-implicit-coercion.js'));
+ this.define('no-implicit-globals', require('./rules/no-implicit-globals.js'));
+ this.define('no-implied-eval', require('./rules/no-implied-eval.js'));
+ this.define('no-inline-comments', require('./rules/no-inline-comments.js'));
+ this.define('no-inner-declarations', require('./rules/no-inner-declarations.js'));
+ this.define('no-invalid-regexp', require('./rules/no-invalid-regexp.js'));
+ this.define('no-invalid-this', require('./rules/no-invalid-this.js'));
+ this.define('no-irregular-whitespace', require('./rules/no-irregular-whitespace.js'));
+ this.define('no-iterator', require('./rules/no-iterator.js'));
+ this.define('no-labels', require('./rules/no-labels.js'));
+ this.define('no-label-var', require('./rules/no-label-var.js'));
+ this.define('no-lone-blocks', require('./rules/no-lone-blocks.js'));
+ this.define('no-lonely-if', require('./rules/no-lonely-if.js'));
+ this.define('no-loop-func', require('./rules/no-loop-func.js'));
+ this.define('no-magic-numbers', require('./rules/no-magic-numbers.js'));
+ this.define('no-misleading-character-class', require('./rules/no-misleading-character-class.js'));
+ this.define('no-mixed-operators', require('./rules/no-mixed-operators.js'));
+ this.define('no-mixed-requires', require('./rules/no-mixed-requires.js'));
+ this.define('no-mixed-spaces-and-tabs', require('./rules/no-mixed-spaces-and-tabs.js'));
+ this.define('no-multi-assign', require('./rules/no-multi-assign.js'));
+ this.define('no-multiple-empty-lines', require('./rules/no-multiple-empty-lines.js'));
+ this.define('no-multi-spaces', require('./rules/no-multi-spaces.js'));
+ this.define('no-multi-str', require('./rules/no-multi-str.js'));
+ this.define('no-native-reassign', require('./rules/no-native-reassign.js'));
+ this.define('nonblock-statement-body-position', require('./rules/nonblock-statement-body-position.js'));
+ this.define('no-negated-condition', require('./rules/no-negated-condition.js'));
+ this.define('no-negated-in-lhs', require('./rules/no-negated-in-lhs.js'));
+ this.define('no-nested-ternary', require('./rules/no-nested-ternary.js'));
+ this.define('no-new-func', require('./rules/no-new-func.js'));
+ this.define('no-new', require('./rules/no-new.js'));
+ this.define('no-new-object', require('./rules/no-new-object.js'));
+ this.define('no-new-require', require('./rules/no-new-require.js'));
+ this.define('no-new-symbol', require('./rules/no-new-symbol.js'));
+ this.define('no-new-wrappers', require('./rules/no-new-wrappers.js'));
+ this.define('no-obj-calls', require('./rules/no-obj-calls.js'));
+ this.define('no-octal-escape', require('./rules/no-octal-escape.js'));
+ this.define('no-octal', require('./rules/no-octal.js'));
+ this.define('no-param-reassign', require('./rules/no-param-reassign.js'));
+ this.define('no-path-concat', require('./rules/no-path-concat.js'));
+ this.define('no-plusplus', require('./rules/no-plusplus.js'));
+ this.define('no-process-env', require('./rules/no-process-env.js'));
+ this.define('no-process-exit', require('./rules/no-process-exit.js'));
+ this.define('no-proto', require('./rules/no-proto.js'));
+ this.define('no-prototype-builtins', require('./rules/no-prototype-builtins.js'));
+ this.define('no-redeclare', require('./rules/no-redeclare.js'));
+ this.define('no-regex-spaces', require('./rules/no-regex-spaces.js'));
+ this.define('no-restricted-globals', require('./rules/no-restricted-globals.js'));
+ this.define('no-restricted-imports', require('./rules/no-restricted-imports.js'));
+ this.define('no-restricted-modules', require('./rules/no-restricted-modules.js'));
+ this.define('no-restricted-properties', require('./rules/no-restricted-properties.js'));
+ this.define('no-restricted-syntax', require('./rules/no-restricted-syntax.js'));
+ this.define('no-return-assign', require('./rules/no-return-assign.js'));
+ this.define('no-return-await', require('./rules/no-return-await.js'));
+ this.define('no-script-url', require('./rules/no-script-url.js'));
+ this.define('no-self-assign', require('./rules/no-self-assign.js'));
+ this.define('no-self-compare', require('./rules/no-self-compare.js'));
+ this.define('no-sequences', require('./rules/no-sequences.js'));
+ this.define('no-shadow', require('./rules/no-shadow.js'));
+ this.define('no-shadow-restricted-names', require('./rules/no-shadow-restricted-names.js'));
+ this.define('no-spaced-func', require('./rules/no-spaced-func.js'));
+ this.define('no-sparse-arrays', require('./rules/no-sparse-arrays.js'));
+ this.define('no-sync', require('./rules/no-sync.js'));
+ this.define('no-tabs', require('./rules/no-tabs.js'));
+ this.define('no-template-curly-in-string', require('./rules/no-template-curly-in-string.js'));
+ this.define('no-ternary', require('./rules/no-ternary.js'));
+ this.define('no-this-before-super', require('./rules/no-this-before-super.js'));
+ this.define('no-throw-literal', require('./rules/no-throw-literal.js'));
+ this.define('no-trailing-spaces', require('./rules/no-trailing-spaces.js'));
+ this.define('no-undefined', require('./rules/no-undefined.js'));
+ this.define('no-undef-init', require('./rules/no-undef-init.js'));
+ this.define('no-undef', require('./rules/no-undef.js'));
+ this.define('no-underscore-dangle', require('./rules/no-underscore-dangle.js'));
+ this.define('no-unexpected-multiline', require('./rules/no-unexpected-multiline.js'));
+ this.define('no-unmodified-loop-condition', require('./rules/no-unmodified-loop-condition.js'));
+ this.define('no-unneeded-ternary', require('./rules/no-unneeded-ternary.js'));
+ this.define('no-unreachable', require('./rules/no-unreachable.js'));
+ this.define('no-unsafe-finally', require('./rules/no-unsafe-finally.js'));
+ this.define('no-unsafe-negation', require('./rules/no-unsafe-negation.js'));
+ this.define('no-unused-expressions', require('./rules/no-unused-expressions.js'));
+ this.define('no-unused-labels', require('./rules/no-unused-labels.js'));
+ this.define('no-unused-vars', require('./rules/no-unused-vars.js'));
+ this.define('no-use-before-define', require('./rules/no-use-before-define.js'));
+ this.define('no-useless-call', require('./rules/no-useless-call.js'));
+ this.define('no-useless-computed-key', require('./rules/no-useless-computed-key.js'));
+ this.define('no-useless-concat', require('./rules/no-useless-concat.js'));
+ this.define('no-useless-constructor', require('./rules/no-useless-constructor.js'));
+ this.define('no-useless-escape', require('./rules/no-useless-escape.js'));
+ this.define('no-useless-rename', require('./rules/no-useless-rename.js'));
+ this.define('no-useless-return', require('./rules/no-useless-return.js'));
+ this.define('no-var', require('./rules/no-var.js'));
+ this.define('no-void', require('./rules/no-void.js'));
+ this.define('no-warning-comments', require('./rules/no-warning-comments.js'));
+ this.define('no-whitespace-before-property', require('./rules/no-whitespace-before-property.js'));
+ this.define('no-with', require('./rules/no-with.js'));
+ this.define('object-curly-newline', require('./rules/object-curly-newline.js'));
+ this.define('object-curly-spacing', require('./rules/object-curly-spacing.js'));
+ this.define('object-property-newline', require('./rules/object-property-newline.js'));
+ this.define('object-shorthand', require('./rules/object-shorthand.js'));
+ this.define('one-var-declaration-per-line', require('./rules/one-var-declaration-per-line.js'));
+ this.define('one-var', require('./rules/one-var.js'));
+ this.define('operator-assignment', require('./rules/operator-assignment.js'));
+ this.define('operator-linebreak', require('./rules/operator-linebreak.js'));
+ this.define('padded-blocks', require('./rules/padded-blocks.js'));
+ this.define('padding-line-between-statements', require('./rules/padding-line-between-statements.js'));
+ this.define('prefer-arrow-callback', require('./rules/prefer-arrow-callback.js'));
+ this.define('prefer-const', require('./rules/prefer-const.js'));
+ this.define('prefer-destructuring', require('./rules/prefer-destructuring.js'));
+ this.define('prefer-numeric-literals', require('./rules/prefer-numeric-literals.js'));
+ this.define('prefer-object-spread', require('./rules/prefer-object-spread.js'));
+ this.define('prefer-promise-reject-errors', require('./rules/prefer-promise-reject-errors.js'));
+ this.define('prefer-reflect', require('./rules/prefer-reflect.js'));
+ this.define('prefer-rest-params', require('./rules/prefer-rest-params.js'));
+ this.define('prefer-spread', require('./rules/prefer-spread.js'));
+ this.define('prefer-template', require('./rules/prefer-template.js'));
+ this.define('quote-props', require('./rules/quote-props.js'));
+ this.define('quotes', require('./rules/quotes.js'));
+ this.define('radix', require('./rules/radix.js'));
+ this.define('require-atomic-updates', require('./rules/require-atomic-updates.js'));
+ this.define('require-await', require('./rules/require-await.js'));
+ this.define('require-jsdoc', require('./rules/require-jsdoc.js'));
+ this.define('require-unicode-regexp', require('./rules/require-unicode-regexp.js'));
+ this.define('require-yield', require('./rules/require-yield.js'));
+ this.define('rest-spread-spacing', require('./rules/rest-spread-spacing.js'));
+ this.define('semi', require('./rules/semi.js'));
+ this.define('semi-spacing', require('./rules/semi-spacing.js'));
+ this.define('semi-style', require('./rules/semi-style.js'));
+ this.define('sort-imports', require('./rules/sort-imports.js'));
+ this.define('sort-keys', require('./rules/sort-keys.js'));
+ this.define('sort-vars', require('./rules/sort-vars.js'));
+ this.define('space-before-blocks', require('./rules/space-before-blocks.js'));
+ this.define('space-before-function-paren', require('./rules/space-before-function-paren.js'));
+ this.define('spaced-comment', require('./rules/spaced-comment.js'));
+ this.define('space-infix-ops', require('./rules/space-infix-ops.js'));
+ this.define('space-in-parens', require('./rules/space-in-parens.js'));
+ this.define('space-unary-ops', require('./rules/space-unary-ops.js'));
+ this.define('strict', require('./rules/strict.js'));
+ this.define('switch-colon-spacing', require('./rules/switch-colon-spacing.js'));
+ this.define('symbol-description', require('./rules/symbol-description.js'));
+ this.define('template-curly-spacing', require('./rules/template-curly-spacing.js'));
+ this.define('template-tag-spacing', require('./rules/template-tag-spacing.js'));
+ this.define('unicode-bom', require('./rules/unicode-bom.js'));
+ this.define('use-isnan', require('./rules/use-isnan.js'));
+ this.define('valid-jsdoc', require('./rules/valid-jsdoc.js'));
+ this.define('valid-typeof', require('./rules/valid-typeof.js'));
+ this.define('vars-on-top', require('./rules/vars-on-top.js'));
+ this.define('wrap-iife', require('./rules/wrap-iife.js'));
+ this.define('wrap-regex', require('./rules/wrap-regex.js'));
+ this.define('yield-star-spacing', require('./rules/yield-star-spacing.js'));
+ this.define('yoda', require('./rules/yoda.js'));
}
/**
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment