eslint 4.14.0 → 4.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/lib/cli-engine.js +4 -0
  4. package/lib/linter.js +2 -1
  5. package/lib/report-translator.js +34 -13
  6. package/lib/rules/.eslintrc.yml +1 -0
  7. package/lib/rules/accessor-pairs.js +2 -1
  8. package/lib/rules/array-bracket-newline.js +2 -1
  9. package/lib/rules/array-bracket-spacing.js +2 -1
  10. package/lib/rules/array-callback-return.js +2 -1
  11. package/lib/rules/array-element-newline.js +2 -1
  12. package/lib/rules/arrow-body-style.js +2 -1
  13. package/lib/rules/arrow-parens.js +2 -1
  14. package/lib/rules/arrow-spacing.js +2 -1
  15. package/lib/rules/block-scoped-var.js +2 -1
  16. package/lib/rules/block-spacing.js +2 -1
  17. package/lib/rules/brace-style.js +2 -1
  18. package/lib/rules/callback-return.js +2 -1
  19. package/lib/rules/camelcase.js +2 -1
  20. package/lib/rules/capitalized-comments.js +2 -1
  21. package/lib/rules/class-methods-use-this.js +2 -1
  22. package/lib/rules/comma-dangle.js +2 -1
  23. package/lib/rules/comma-spacing.js +2 -1
  24. package/lib/rules/comma-style.js +2 -1
  25. package/lib/rules/complexity.js +2 -1
  26. package/lib/rules/computed-property-spacing.js +2 -1
  27. package/lib/rules/consistent-return.js +2 -1
  28. package/lib/rules/consistent-this.js +2 -1
  29. package/lib/rules/constructor-super.js +2 -1
  30. package/lib/rules/curly.js +2 -1
  31. package/lib/rules/default-case.js +2 -1
  32. package/lib/rules/dot-location.js +2 -1
  33. package/lib/rules/dot-notation.js +2 -1
  34. package/lib/rules/eol-last.js +2 -1
  35. package/lib/rules/eqeqeq.js +2 -1
  36. package/lib/rules/for-direction.js +2 -1
  37. package/lib/rules/func-call-spacing.js +2 -1
  38. package/lib/rules/func-name-matching.js +2 -1
  39. package/lib/rules/func-names.js +2 -1
  40. package/lib/rules/func-style.js +2 -1
  41. package/lib/rules/function-paren-newline.js +2 -1
  42. package/lib/rules/generator-star-spacing.js +2 -1
  43. package/lib/rules/getter-return.js +2 -1
  44. package/lib/rules/global-require.js +2 -1
  45. package/lib/rules/guard-for-in.js +2 -1
  46. package/lib/rules/handle-callback-err.js +2 -1
  47. package/lib/rules/id-blacklist.js +2 -1
  48. package/lib/rules/id-length.js +2 -1
  49. package/lib/rules/id-match.js +2 -1
  50. package/lib/rules/implicit-arrow-linebreak.js +2 -1
  51. package/lib/rules/indent-legacy.js +2 -1
  52. package/lib/rules/indent.js +13 -2
  53. package/lib/rules/init-declarations.js +2 -1
  54. package/lib/rules/jsx-quotes.js +2 -1
  55. package/lib/rules/key-spacing.js +2 -1
  56. package/lib/rules/keyword-spacing.js +2 -1
  57. package/lib/rules/line-comment-position.js +2 -1
  58. package/lib/rules/linebreak-style.js +2 -1
  59. package/lib/rules/lines-around-comment.js +2 -1
  60. package/lib/rules/lines-around-directive.js +2 -1
  61. package/lib/rules/lines-between-class-members.js +2 -1
  62. package/lib/rules/max-depth.js +2 -1
  63. package/lib/rules/max-len.js +2 -1
  64. package/lib/rules/max-lines.js +2 -1
  65. package/lib/rules/max-nested-callbacks.js +2 -1
  66. package/lib/rules/max-params.js +2 -1
  67. package/lib/rules/max-statements-per-line.js +2 -1
  68. package/lib/rules/max-statements.js +2 -1
  69. package/lib/rules/multiline-comment-style.js +2 -1
  70. package/lib/rules/multiline-ternary.js +2 -1
  71. package/lib/rules/new-cap.js +2 -1
  72. package/lib/rules/new-parens.js +2 -1
  73. package/lib/rules/newline-after-var.js +2 -1
  74. package/lib/rules/newline-before-return.js +2 -1
  75. package/lib/rules/newline-per-chained-call.js +2 -1
  76. package/lib/rules/no-alert.js +2 -1
  77. package/lib/rules/no-array-constructor.js +2 -1
  78. package/lib/rules/no-await-in-loop.js +2 -1
  79. package/lib/rules/no-bitwise.js +2 -1
  80. package/lib/rules/no-buffer-constructor.js +2 -1
  81. package/lib/rules/no-caller.js +2 -1
  82. package/lib/rules/no-case-declarations.js +2 -1
  83. package/lib/rules/no-catch-shadow.js +2 -1
  84. package/lib/rules/no-class-assign.js +2 -1
  85. package/lib/rules/no-compare-neg-zero.js +2 -1
  86. package/lib/rules/no-cond-assign.js +2 -1
  87. package/lib/rules/no-confusing-arrow.js +2 -1
  88. package/lib/rules/no-console.js +2 -1
  89. package/lib/rules/no-const-assign.js +2 -1
  90. package/lib/rules/no-constant-condition.js +2 -1
  91. package/lib/rules/no-continue.js +2 -1
  92. package/lib/rules/no-control-regex.js +2 -1
  93. package/lib/rules/no-debugger.js +2 -1
  94. package/lib/rules/no-delete-var.js +2 -1
  95. package/lib/rules/no-div-regex.js +2 -1
  96. package/lib/rules/no-dupe-args.js +2 -1
  97. package/lib/rules/no-dupe-class-members.js +2 -1
  98. package/lib/rules/no-dupe-keys.js +2 -1
  99. package/lib/rules/no-duplicate-case.js +2 -1
  100. package/lib/rules/no-duplicate-imports.js +2 -1
  101. package/lib/rules/no-else-return.js +2 -1
  102. package/lib/rules/no-empty-character-class.js +2 -1
  103. package/lib/rules/no-empty-function.js +2 -1
  104. package/lib/rules/no-empty-pattern.js +2 -1
  105. package/lib/rules/no-empty.js +2 -1
  106. package/lib/rules/no-eq-null.js +2 -1
  107. package/lib/rules/no-eval.js +2 -1
  108. package/lib/rules/no-ex-assign.js +2 -1
  109. package/lib/rules/no-extend-native.js +2 -1
  110. package/lib/rules/no-extra-bind.js +2 -1
  111. package/lib/rules/no-extra-boolean-cast.js +2 -1
  112. package/lib/rules/no-extra-label.js +2 -1
  113. package/lib/rules/no-extra-parens.js +3 -2
  114. package/lib/rules/no-extra-semi.js +2 -1
  115. package/lib/rules/no-fallthrough.js +2 -1
  116. package/lib/rules/no-floating-decimal.js +2 -1
  117. package/lib/rules/no-func-assign.js +2 -1
  118. package/lib/rules/no-global-assign.js +2 -1
  119. package/lib/rules/no-implicit-coercion.js +2 -1
  120. package/lib/rules/no-implicit-globals.js +2 -1
  121. package/lib/rules/no-implied-eval.js +2 -1
  122. package/lib/rules/no-inline-comments.js +2 -1
  123. package/lib/rules/no-inner-declarations.js +2 -1
  124. package/lib/rules/no-invalid-regexp.js +2 -1
  125. package/lib/rules/no-invalid-this.js +2 -1
  126. package/lib/rules/no-irregular-whitespace.js +2 -1
  127. package/lib/rules/no-iterator.js +2 -1
  128. package/lib/rules/no-label-var.js +2 -1
  129. package/lib/rules/no-labels.js +2 -1
  130. package/lib/rules/no-lone-blocks.js +2 -1
  131. package/lib/rules/no-lonely-if.js +2 -1
  132. package/lib/rules/no-loop-func.js +2 -1
  133. package/lib/rules/no-magic-numbers.js +2 -1
  134. package/lib/rules/no-mixed-operators.js +2 -1
  135. package/lib/rules/no-mixed-requires.js +2 -1
  136. package/lib/rules/no-mixed-spaces-and-tabs.js +2 -1
  137. package/lib/rules/no-multi-assign.js +2 -1
  138. package/lib/rules/no-multi-spaces.js +2 -1
  139. package/lib/rules/no-multi-str.js +2 -1
  140. package/lib/rules/no-multiple-empty-lines.js +2 -1
  141. package/lib/rules/no-native-reassign.js +2 -1
  142. package/lib/rules/no-negated-condition.js +2 -1
  143. package/lib/rules/no-negated-in-lhs.js +2 -1
  144. package/lib/rules/no-nested-ternary.js +2 -1
  145. package/lib/rules/no-new-func.js +2 -1
  146. package/lib/rules/no-new-object.js +2 -1
  147. package/lib/rules/no-new-require.js +2 -1
  148. package/lib/rules/no-new-symbol.js +2 -1
  149. package/lib/rules/no-new-wrappers.js +2 -1
  150. package/lib/rules/no-new.js +2 -1
  151. package/lib/rules/no-obj-calls.js +2 -1
  152. package/lib/rules/no-octal-escape.js +2 -1
  153. package/lib/rules/no-octal.js +2 -1
  154. package/lib/rules/no-param-reassign.js +2 -1
  155. package/lib/rules/no-path-concat.js +2 -1
  156. package/lib/rules/no-plusplus.js +2 -1
  157. package/lib/rules/no-process-env.js +2 -1
  158. package/lib/rules/no-process-exit.js +2 -1
  159. package/lib/rules/no-proto.js +2 -1
  160. package/lib/rules/no-prototype-builtins.js +2 -1
  161. package/lib/rules/no-redeclare.js +2 -1
  162. package/lib/rules/no-regex-spaces.js +2 -1
  163. package/lib/rules/no-restricted-globals.js +2 -1
  164. package/lib/rules/no-restricted-imports.js +2 -1
  165. package/lib/rules/no-restricted-modules.js +2 -1
  166. package/lib/rules/no-restricted-properties.js +2 -1
  167. package/lib/rules/no-restricted-syntax.js +2 -1
  168. package/lib/rules/no-return-assign.js +2 -1
  169. package/lib/rules/no-return-await.js +5 -1
  170. package/lib/rules/no-script-url.js +2 -1
  171. package/lib/rules/no-self-assign.js +2 -1
  172. package/lib/rules/no-self-compare.js +2 -1
  173. package/lib/rules/no-sequences.js +2 -1
  174. package/lib/rules/no-shadow-restricted-names.js +2 -1
  175. package/lib/rules/no-shadow.js +2 -1
  176. package/lib/rules/no-spaced-func.js +2 -1
  177. package/lib/rules/no-sparse-arrays.js +2 -1
  178. package/lib/rules/no-sync.js +2 -1
  179. package/lib/rules/no-tabs.js +2 -1
  180. package/lib/rules/no-template-curly-in-string.js +2 -1
  181. package/lib/rules/no-ternary.js +2 -1
  182. package/lib/rules/no-this-before-super.js +2 -1
  183. package/lib/rules/no-throw-literal.js +2 -1
  184. package/lib/rules/no-trailing-spaces.js +2 -1
  185. package/lib/rules/no-undef-init.js +2 -1
  186. package/lib/rules/no-undef.js +2 -1
  187. package/lib/rules/no-undefined.js +2 -1
  188. package/lib/rules/no-underscore-dangle.js +2 -1
  189. package/lib/rules/no-unexpected-multiline.js +2 -1
  190. package/lib/rules/no-unmodified-loop-condition.js +2 -1
  191. package/lib/rules/no-unneeded-ternary.js +2 -1
  192. package/lib/rules/no-unreachable.js +2 -1
  193. package/lib/rules/no-unsafe-finally.js +2 -1
  194. package/lib/rules/no-unsafe-negation.js +2 -1
  195. package/lib/rules/no-unused-expressions.js +2 -1
  196. package/lib/rules/no-unused-labels.js +2 -1
  197. package/lib/rules/no-unused-vars.js +10 -14
  198. package/lib/rules/no-use-before-define.js +2 -1
  199. package/lib/rules/no-useless-call.js +2 -1
  200. package/lib/rules/no-useless-computed-key.js +2 -1
  201. package/lib/rules/no-useless-concat.js +2 -1
  202. package/lib/rules/no-useless-constructor.js +2 -1
  203. package/lib/rules/no-useless-escape.js +2 -1
  204. package/lib/rules/no-useless-rename.js +2 -1
  205. package/lib/rules/no-useless-return.js +2 -1
  206. package/lib/rules/no-var.js +2 -1
  207. package/lib/rules/no-void.js +2 -1
  208. package/lib/rules/no-warning-comments.js +2 -1
  209. package/lib/rules/no-whitespace-before-property.js +2 -1
  210. package/lib/rules/no-with.js +2 -1
  211. package/lib/rules/nonblock-statement-body-position.js +2 -1
  212. package/lib/rules/object-curly-newline.js +2 -1
  213. package/lib/rules/object-curly-spacing.js +2 -1
  214. package/lib/rules/object-property-newline.js +2 -1
  215. package/lib/rules/object-shorthand.js +2 -1
  216. package/lib/rules/one-var-declaration-per-line.js +2 -1
  217. package/lib/rules/one-var.js +2 -1
  218. package/lib/rules/operator-assignment.js +2 -1
  219. package/lib/rules/operator-linebreak.js +2 -1
  220. package/lib/rules/padded-blocks.js +2 -1
  221. package/lib/rules/padding-line-between-statements.js +2 -1
  222. package/lib/rules/prefer-arrow-callback.js +2 -1
  223. package/lib/rules/prefer-const.js +2 -1
  224. package/lib/rules/prefer-destructuring.js +2 -1
  225. package/lib/rules/prefer-numeric-literals.js +2 -1
  226. package/lib/rules/prefer-promise-reject-errors.js +2 -1
  227. package/lib/rules/prefer-reflect.js +2 -1
  228. package/lib/rules/prefer-rest-params.js +2 -1
  229. package/lib/rules/prefer-spread.js +2 -1
  230. package/lib/rules/prefer-template.js +2 -1
  231. package/lib/rules/quote-props.js +2 -1
  232. package/lib/rules/quotes.js +2 -1
  233. package/lib/rules/radix.js +2 -1
  234. package/lib/rules/require-await.js +2 -1
  235. package/lib/rules/require-jsdoc.js +2 -1
  236. package/lib/rules/require-yield.js +2 -1
  237. package/lib/rules/rest-spread-spacing.js +2 -1
  238. package/lib/rules/semi-spacing.js +2 -1
  239. package/lib/rules/semi-style.js +2 -1
  240. package/lib/rules/semi.js +2 -1
  241. package/lib/rules/sort-imports.js +2 -1
  242. package/lib/rules/sort-keys.js +2 -1
  243. package/lib/rules/sort-vars.js +2 -1
  244. package/lib/rules/space-before-blocks.js +2 -1
  245. package/lib/rules/space-before-function-paren.js +2 -1
  246. package/lib/rules/space-in-parens.js +2 -1
  247. package/lib/rules/space-infix-ops.js +2 -1
  248. package/lib/rules/space-unary-ops.js +2 -1
  249. package/lib/rules/spaced-comment.js +2 -1
  250. package/lib/rules/strict.js +2 -1
  251. package/lib/rules/switch-colon-spacing.js +2 -1
  252. package/lib/rules/symbol-description.js +2 -1
  253. package/lib/rules/template-curly-spacing.js +2 -1
  254. package/lib/rules/template-tag-spacing.js +2 -1
  255. package/lib/rules/unicode-bom.js +2 -1
  256. package/lib/rules/use-isnan.js +2 -1
  257. package/lib/rules/valid-jsdoc.js +2 -1
  258. package/lib/rules/valid-typeof.js +2 -1
  259. package/lib/rules/vars-on-top.js +2 -1
  260. package/lib/rules/wrap-iife.js +2 -1
  261. package/lib/rules/wrap-regex.js +2 -1
  262. package/lib/rules/yield-star-spacing.js +2 -1
  263. package/lib/rules/yoda.js +2 -1
  264. package/lib/testers/rule-tester.js +63 -30
  265. package/lib/util/interpolate.js +24 -0
  266. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ v4.15.0 - January 6, 2018
2
+
3
+ * 6ab04b5 New: Add context.report({ messageId }) (fixes #6740) (#9165) (Jed Fox)
4
+ * fc7f404 Docs: add url to each of the rules (refs #6582) (#9788) (Patrick McElhaney)
5
+ * fc44da9 Docs: fix sort-imports rule block language (#9805) (ferhat elmas)
6
+ * 65f0176 New: CLIEngine#getRules() (refs #6582) (#9782) (Patrick McElhaney)
7
+ * c64195f Update: More detailed assert message for rule-tester (#9769) (Weijia Wang)
8
+ * 9fcfabf Fix: no-extra-parens false positive (fixes: #9755) (#9795) (Erin)
9
+ * 61e5fa0 Docs: Add table of contents to Node.js API docs (#9785) (Patrick McElhaney)
10
+ * 4c87f42 Fix: incorrect error messages of no-unused-vars (fixes #9774) (#9791) (akouryy)
11
+ * bbabf34 Update: add `ignoreComments` option to `indent` rule (fixes #9018) (#9752) (Kevin Partington)
12
+ * db431cb Docs: HTTP -> HTTPS (fixes #9768) (#9768) (Ronald Eddy Jr)
13
+ * cbf0fb9 Docs: describe how to feature-detect scopeManager/visitorKeys support (#9764) (Teddy Katz)
14
+ * f7dcb70 Docs: Add note about "patch release pending" label to maintainer guide (#9763) (Teddy Katz)
15
+
1
16
  v4.14.0 - December 23, 2017
2
17
 
3
18
  * be2f57e Update: support separate requires in one-var. (fixes #6175) (#9441) (薛定谔的猫)
package/README.md CHANGED
@@ -156,7 +156,7 @@ Before filing an issue, please be sure to read the guidelines for what you're re
156
156
 
157
157
  ## Semantic Versioning Policy
158
158
 
159
- ESLint follows [semantic versioning](http://semver.org). However, due to the nature of ESLint as a code quality tool, it's not always clear when a minor or major version bump occurs. To help clarify this for everyone, we've defined the following semantic versioning policy for ESLint:
159
+ ESLint follows [semantic versioning](https://semver.org). However, due to the nature of ESLint as a code quality tool, it's not always clear when a minor or major version bump occurs. To help clarify this for everyone, we've defined the following semantic versioning policy for ESLint:
160
160
 
161
161
  * Patch release (intended to not break your lint build)
162
162
  * A bug fix in a rule that results in ESLint reporting fewer errors.
package/lib/cli-engine.js CHANGED
@@ -420,6 +420,10 @@ class CLIEngine {
420
420
  this.config = new Config(this.options, this.linter);
421
421
  }
422
422
 
423
+ getRules() {
424
+ return this.linter.getRules();
425
+ }
426
+
423
427
  /**
424
428
  * Returns results that only contains errors.
425
429
  * @param {LintResult[]} results The results to filter.
package/lib/linter.js CHANGED
@@ -911,6 +911,7 @@ module.exports = class Linter {
911
911
  }
912
912
 
913
913
  const rule = this.rules.get(ruleId);
914
+ const messageIds = rule && rule.meta && rule.meta.messages;
914
915
  let reportTranslator = null;
915
916
  const ruleContext = Object.freeze(
916
917
  Object.assign(
@@ -931,7 +932,7 @@ module.exports = class Linter {
931
932
  * with Node 8.4.0.
932
933
  */
933
934
  if (reportTranslator === null) {
934
- reportTranslator = createReportTranslator({ ruleId, severity, sourceCode });
935
+ reportTranslator = createReportTranslator({ ruleId, severity, sourceCode, messageIds });
935
936
  }
936
937
  const problem = reportTranslator.apply(null, arguments);
937
938
 
@@ -11,6 +11,7 @@
11
11
 
12
12
  const assert = require("assert");
13
13
  const ruleFixer = require("./util/rule-fixer");
14
+ const interpolate = require("./util/interpolate");
14
15
 
15
16
  //------------------------------------------------------------------------------
16
17
  // Typedefs
@@ -41,7 +42,9 @@ function normalizeMultiArgReportCall() {
41
42
 
42
43
  // If there is one argument, it is considered to be a new-style call already.
43
44
  if (arguments.length === 1) {
44
- return arguments[0];
45
+
46
+ // Shallow clone the object to avoid surprises if reusing the descriptor
47
+ return Object.assign({}, arguments[0]);
45
48
  }
46
49
 
47
50
  // If the second argument is a string, the arguments are interpreted as [node, message, data, fix].
@@ -100,16 +103,7 @@ function normalizeReportLoc(descriptor) {
100
103
  * @returns {string} The interpolated message for the descriptor
101
104
  */
102
105
  function normalizeMessagePlaceholders(descriptor) {
103
- if (!descriptor.data) {
104
- return descriptor.message;
105
- }
106
- return descriptor.message.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (fullMatch, term) => {
107
- if (term in descriptor.data) {
108
- return descriptor.data[term];
109
- }
110
-
111
- return fullMatch;
112
- });
106
+ return interpolate(descriptor.message, descriptor.data);
113
107
  }
114
108
 
115
109
  /**
@@ -216,6 +210,14 @@ function createProblem(options) {
216
210
  source: options.sourceLines[options.loc.start.line - 1] || ""
217
211
  };
218
212
 
213
+ /*
214
+ * If this isn’t in the conditional, some of the tests fail
215
+ * because `messageId` is present in the problem object
216
+ */
217
+ if (options.messageId) {
218
+ problem.messageId = options.messageId;
219
+ }
220
+
219
221
  if (options.loc.end) {
220
222
  problem.endLine = options.loc.end.line;
221
223
  problem.endColumn = options.loc.end.column + 1;
@@ -231,12 +233,13 @@ function createProblem(options) {
231
233
  /**
232
234
  * Returns a function that converts the arguments of a `context.report` call from a rule into a reported
233
235
  * problem for the Node.js API.
234
- * @param {{ruleId: string, severity: number, sourceCode: SourceCode}} metadata Metadata for the reported problem
236
+ * @param {{ruleId: string, severity: number, sourceCode: SourceCode, messageIds: Object}} metadata Metadata for the reported problem
235
237
  * @param {SourceCode} sourceCode The `SourceCode` instance for the text being linted
236
238
  * @returns {function(...args): {
237
239
  * ruleId: string,
238
240
  * severity: (0|1|2),
239
- * message: string,
241
+ * message: (string|undefined),
242
+ * messageId: (string|undefined),
240
243
  * line: number,
241
244
  * column: number,
242
245
  * endLine: (number|undefined),
@@ -261,11 +264,29 @@ module.exports = function createReportTranslator(metadata) {
261
264
 
262
265
  assertValidNodeInfo(descriptor);
263
266
 
267
+ if (descriptor.messageId) {
268
+ if (!metadata.messageIds) {
269
+ throw new TypeError("context.report() called with a messageId, but no messages were present in the rule metadata.");
270
+ }
271
+ const id = descriptor.messageId;
272
+ const messages = metadata.messageIds;
273
+
274
+ if (descriptor.message) {
275
+ throw new TypeError("context.report() called with a message and a messageId. Please only pass one.");
276
+ }
277
+ if (!messages || !Object.prototype.hasOwnProperty.call(messages, id)) {
278
+ throw new TypeError(`context.report() called with a messageId of '${id}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`);
279
+ }
280
+ descriptor.message = messages[id];
281
+ }
282
+
283
+
264
284
  return createProblem({
265
285
  ruleId: metadata.ruleId,
266
286
  severity: metadata.severity,
267
287
  node: descriptor.node,
268
288
  message: normalizeMessagePlaceholders(descriptor),
289
+ messageId: descriptor.messageId,
269
290
  loc: normalizeReportLoc(descriptor),
270
291
  fix: normalizeFixes(descriptor, metadata.sourceCode),
271
292
  sourceLines: metadata.sourceCode.lines
@@ -1,3 +1,4 @@
1
1
  rules:
2
2
  rulesdir/no-invalid-meta: "error"
3
3
  rulesdir/consistent-docs-description: "error"
4
+ rulesdir/consistent-docs-url: "error"
@@ -75,7 +75,8 @@ module.exports = {
75
75
  docs: {
76
76
  description: "enforce getter and setter pairs in objects",
77
77
  category: "Best Practices",
78
- recommended: false
78
+ recommended: false,
79
+ url: "https://eslint.org/docs/rules/accessor-pairs"
79
80
  },
80
81
  schema: [{
81
82
  type: "object",
@@ -16,7 +16,8 @@ module.exports = {
16
16
  docs: {
17
17
  description: "enforce linebreaks after opening and before closing array brackets",
18
18
  category: "Stylistic Issues",
19
- recommended: false
19
+ recommended: false,
20
+ url: "https://eslint.org/docs/rules/array-bracket-newline"
20
21
  },
21
22
  fixable: "whitespace",
22
23
  schema: [
@@ -15,7 +15,8 @@ module.exports = {
15
15
  docs: {
16
16
  description: "enforce consistent spacing inside array brackets",
17
17
  category: "Stylistic Issues",
18
- recommended: false
18
+ recommended: false,
19
+ url: "https://eslint.org/docs/rules/array-bracket-spacing"
19
20
  },
20
21
  fixable: "whitespace",
21
22
  schema: [
@@ -142,7 +142,8 @@ module.exports = {
142
142
  docs: {
143
143
  description: "enforce `return` statements in callbacks of array methods",
144
144
  category: "Best Practices",
145
- recommended: false
145
+ recommended: false,
146
+ url: "https://eslint.org/docs/rules/array-callback-return"
146
147
  },
147
148
 
148
149
  schema: [
@@ -16,7 +16,8 @@ module.exports = {
16
16
  docs: {
17
17
  description: "enforce line breaks after each array element",
18
18
  category: "Stylistic Issues",
19
- recommended: false
19
+ recommended: false,
20
+ url: "https://eslint.org/docs/rules/array-element-newline"
20
21
  },
21
22
  fixable: "whitespace",
22
23
  schema: [
@@ -19,7 +19,8 @@ module.exports = {
19
19
  docs: {
20
20
  description: "require braces around arrow function bodies",
21
21
  category: "ECMAScript 6",
22
- recommended: false
22
+ recommended: false,
23
+ url: "https://eslint.org/docs/rules/arrow-body-style"
23
24
  },
24
25
 
25
26
  schema: {
@@ -19,7 +19,8 @@ module.exports = {
19
19
  docs: {
20
20
  description: "require parentheses around arrow function arguments",
21
21
  category: "ECMAScript 6",
22
- recommended: false
22
+ recommended: false,
23
+ url: "https://eslint.org/docs/rules/arrow-parens"
23
24
  },
24
25
 
25
26
  fixable: "code",
@@ -19,7 +19,8 @@ module.exports = {
19
19
  docs: {
20
20
  description: "enforce consistent spacing before and after the arrow in arrow functions",
21
21
  category: "ECMAScript 6",
22
- recommended: false
22
+ recommended: false,
23
+ url: "https://eslint.org/docs/rules/arrow-spacing"
23
24
  },
24
25
 
25
26
  fixable: "whitespace",
@@ -13,7 +13,8 @@ module.exports = {
13
13
  docs: {
14
14
  description: "enforce the use of variables within the scope they are defined",
15
15
  category: "Best Practices",
16
- recommended: false
16
+ recommended: false,
17
+ url: "https://eslint.org/docs/rules/block-scoped-var"
17
18
  },
18
19
 
19
20
  schema: []
@@ -16,7 +16,8 @@ module.exports = {
16
16
  docs: {
17
17
  description: "disallow or enforce spaces inside of blocks after opening block and before closing block",
18
18
  category: "Stylistic Issues",
19
- recommended: false
19
+ recommended: false,
20
+ url: "https://eslint.org/docs/rules/block-spacing"
20
21
  },
21
22
 
22
23
  fixable: "whitespace",
@@ -16,7 +16,8 @@ module.exports = {
16
16
  docs: {
17
17
  description: "enforce consistent brace style for blocks",
18
18
  category: "Stylistic Issues",
19
- recommended: false
19
+ recommended: false,
20
+ url: "https://eslint.org/docs/rules/brace-style"
20
21
  },
21
22
 
22
23
  schema: [
@@ -13,7 +13,8 @@ module.exports = {
13
13
  docs: {
14
14
  description: "require `return` statements after callbacks",
15
15
  category: "Node.js and CommonJS",
16
- recommended: false
16
+ recommended: false,
17
+ url: "https://eslint.org/docs/rules/callback-return"
17
18
  },
18
19
 
19
20
  schema: [{
@@ -14,7 +14,8 @@ module.exports = {
14
14
  docs: {
15
15
  description: "enforce camelcase naming convention",
16
16
  category: "Stylistic Issues",
17
- recommended: false
17
+ recommended: false,
18
+ url: "https://eslint.org/docs/rules/camelcase"
18
19
  },
19
20
 
20
21
  schema: [
@@ -113,7 +113,8 @@ module.exports = {
113
113
  docs: {
114
114
  description: "enforce or disallow capitalization of the first letter of a comment",
115
115
  category: "Stylistic Issues",
116
- recommended: false
116
+ recommended: false,
117
+ url: "https://eslint.org/docs/rules/capitalized-comments"
117
118
  },
118
119
  fixable: "code",
119
120
  schema: [
@@ -14,7 +14,8 @@ module.exports = {
14
14
  docs: {
15
15
  description: "enforce that class methods utilize `this`",
16
16
  category: "Best Practices",
17
- recommended: false
17
+ recommended: false,
18
+ url: "https://eslint.org/docs/rules/class-methods-use-this"
18
19
  },
19
20
  schema: [{
20
21
  type: "object",
@@ -79,7 +79,8 @@ module.exports = {
79
79
  docs: {
80
80
  description: "require or disallow trailing commas",
81
81
  category: "Stylistic Issues",
82
- recommended: false
82
+ recommended: false,
83
+ url: "https://eslint.org/docs/rules/comma-dangle"
83
84
  },
84
85
  fixable: "code",
85
86
  schema: {
@@ -15,7 +15,8 @@ module.exports = {
15
15
  docs: {
16
16
  description: "enforce consistent spacing before and after commas",
17
17
  category: "Stylistic Issues",
18
- recommended: false
18
+ recommended: false,
19
+ url: "https://eslint.org/docs/rules/comma-spacing"
19
20
  },
20
21
 
21
22
  fixable: "whitespace",
@@ -16,7 +16,8 @@ module.exports = {
16
16
  docs: {
17
17
  description: "enforce consistent comma style",
18
18
  category: "Stylistic Issues",
19
- recommended: false
19
+ recommended: false,
20
+ url: "https://eslint.org/docs/rules/comma-style"
20
21
  },
21
22
  fixable: "code",
22
23
  schema: [
@@ -23,7 +23,8 @@ module.exports = {
23
23
  docs: {
24
24
  description: "enforce a maximum cyclomatic complexity allowed in a program",
25
25
  category: "Best Practices",
26
- recommended: false
26
+ recommended: false,
27
+ url: "https://eslint.org/docs/rules/complexity"
27
28
  },
28
29
 
29
30
  schema: [
@@ -15,7 +15,8 @@ module.exports = {
15
15
  docs: {
16
16
  description: "enforce consistent spacing inside computed property brackets",
17
17
  category: "Stylistic Issues",
18
- recommended: false
18
+ recommended: false,
19
+ url: "https://eslint.org/docs/rules/computed-property-spacing"
19
20
  },
20
21
 
21
22
  fixable: "whitespace",
@@ -56,7 +56,8 @@ module.exports = {
56
56
  docs: {
57
57
  description: "require `return` statements to either always or never specify values",
58
58
  category: "Best Practices",
59
- recommended: false
59
+ recommended: false,
60
+ url: "https://eslint.org/docs/rules/consistent-return"
60
61
  },
61
62
 
62
63
  schema: [{
@@ -13,7 +13,8 @@ module.exports = {
13
13
  docs: {
14
14
  description: "enforce consistent naming when capturing the current execution context",
15
15
  category: "Stylistic Issues",
16
- recommended: false
16
+ recommended: false,
17
+ url: "https://eslint.org/docs/rules/consistent-this"
17
18
  },
18
19
 
19
20
  schema: {
@@ -95,7 +95,8 @@ module.exports = {
95
95
  docs: {
96
96
  description: "require `super()` calls in constructors",
97
97
  category: "ECMAScript 6",
98
- recommended: true
98
+ recommended: true,
99
+ url: "https://eslint.org/docs/rules/constructor-super"
99
100
  },
100
101
 
101
102
  schema: []
@@ -19,7 +19,8 @@ module.exports = {
19
19
  docs: {
20
20
  description: "enforce consistent brace style for all control statements",
21
21
  category: "Best Practices",
22
- recommended: false
22
+ recommended: false,
23
+ url: "https://eslint.org/docs/rules/curly"
23
24
  },
24
25
 
25
26
  schema: {
@@ -15,7 +15,8 @@ module.exports = {
15
15
  docs: {
16
16
  description: "require `default` cases in `switch` statements",
17
17
  category: "Best Practices",
18
- recommended: false
18
+ recommended: false,
19
+ url: "https://eslint.org/docs/rules/default-case"
19
20
  },
20
21
 
21
22
  schema: [{
@@ -16,7 +16,8 @@ module.exports = {
16
16
  docs: {
17
17
  description: "enforce consistent newlines before and after dots",
18
18
  category: "Best Practices",
19
- recommended: false
19
+ recommended: false,
20
+ url: "https://eslint.org/docs/rules/dot-location"
20
21
  },
21
22
 
22
23
  schema: [
@@ -22,7 +22,8 @@ module.exports = {
22
22
  docs: {
23
23
  description: "enforce dot notation whenever possible",
24
24
  category: "Best Practices",
25
- recommended: false
25
+ recommended: false,
26
+ url: "https://eslint.org/docs/rules/dot-notation"
26
27
  },
27
28
 
28
29
  schema: [
@@ -19,7 +19,8 @@ module.exports = {
19
19
  docs: {
20
20
  description: "require or disallow newline at the end of files",
21
21
  category: "Stylistic Issues",
22
- recommended: false
22
+ recommended: false,
23
+ url: "https://eslint.org/docs/rules/eol-last"
23
24
  },
24
25
  fixable: "whitespace",
25
26
  schema: [
@@ -20,7 +20,8 @@ module.exports = {
20
20
  docs: {
21
21
  description: "require the use of `===` and `!==`",
22
22
  category: "Best Practices",
23
- recommended: false
23
+ recommended: false,
24
+ url: "https://eslint.org/docs/rules/eqeqeq"
24
25
  },
25
26
 
26
27
  schema: {
@@ -14,7 +14,8 @@ module.exports = {
14
14
  docs: {
15
15
  description: "enforce \"for\" loop update clause moving the counter in the right direction.",
16
16
  category: "Possible Errors",
17
- recommended: false
17
+ recommended: false,
18
+ url: "https://eslint.org/docs/rules/for-direction"
18
19
  },
19
20
  fixable: null,
20
21
  schema: []
@@ -20,7 +20,8 @@ module.exports = {
20
20
  docs: {
21
21
  description: "require or disallow spacing between function identifiers and their invocations",
22
22
  category: "Stylistic Issues",
23
- recommended: false
23
+ recommended: false,
24
+ url: "https://eslint.org/docs/rules/func-call-spacing"
24
25
  },
25
26
 
26
27
  fixable: "whitespace",
@@ -70,7 +70,8 @@ module.exports = {
70
70
  docs: {
71
71
  description: "require function names to match the name of the variable or property to which they are assigned",
72
72
  category: "Stylistic Issues",
73
- recommended: false
73
+ recommended: false,
74
+ url: "https://eslint.org/docs/rules/func-name-matching"
74
75
  },
75
76
 
76
77
  schema: {
@@ -29,7 +29,8 @@ module.exports = {
29
29
  docs: {
30
30
  description: "require or disallow named `function` expressions",
31
31
  category: "Stylistic Issues",
32
- recommended: false
32
+ recommended: false,
33
+ url: "https://eslint.org/docs/rules/func-names"
33
34
  },
34
35
 
35
36
  schema: [
@@ -13,7 +13,8 @@ module.exports = {
13
13
  docs: {
14
14
  description: "enforce the consistent use of either `function` declarations or expressions",
15
15
  category: "Stylistic Issues",
16
- recommended: false
16
+ recommended: false,
17
+ url: "https://eslint.org/docs/rules/func-style"
17
18
  },
18
19
 
19
20
  schema: [
@@ -19,7 +19,8 @@ module.exports = {
19
19
  docs: {
20
20
  description: "enforce consistent line breaks inside function parentheses",
21
21
  category: "Stylistic Issues",
22
- recommended: false
22
+ recommended: false,
23
+ url: "https://eslint.org/docs/rules/function-paren-newline"
23
24
  },
24
25
  fixable: "whitespace",
25
26
  schema: [
@@ -30,7 +30,8 @@ module.exports = {
30
30
  docs: {
31
31
  description: "enforce consistent spacing around `*` operators in generator functions",
32
32
  category: "ECMAScript 6",
33
- recommended: false
33
+ recommended: false,
34
+ url: "https://eslint.org/docs/rules/generator-star-spacing"
34
35
  },
35
36
 
36
37
  fixable: "whitespace",
@@ -47,7 +47,8 @@ module.exports = {
47
47
  docs: {
48
48
  description: "enforce `return` statements in getters",
49
49
  category: "Possible Errors",
50
- recommended: false
50
+ recommended: false,
51
+ url: "https://eslint.org/docs/rules/getter-return"
51
52
  },
52
53
  fixable: null,
53
54
  schema: [
@@ -51,7 +51,8 @@ module.exports = {
51
51
  docs: {
52
52
  description: "require `require()` calls to be placed at top-level module scope",
53
53
  category: "Node.js and CommonJS",
54
- recommended: false
54
+ recommended: false,
55
+ url: "https://eslint.org/docs/rules/global-require"
55
56
  },
56
57
 
57
58
  schema: []
@@ -14,7 +14,8 @@ module.exports = {
14
14
  docs: {
15
15
  description: "require `for-in` loops to include an `if` statement",
16
16
  category: "Best Practices",
17
- recommended: false
17
+ recommended: false,
18
+ url: "https://eslint.org/docs/rules/guard-for-in"
18
19
  },
19
20
 
20
21
  schema: []
@@ -14,7 +14,8 @@ module.exports = {
14
14
  docs: {
15
15
  description: "require error handling in callbacks",
16
16
  category: "Node.js and CommonJS",
17
- recommended: false
17
+ recommended: false,
18
+ url: "https://eslint.org/docs/rules/handle-callback-err"
18
19
  },
19
20
 
20
21
  schema: [
@@ -15,7 +15,8 @@ module.exports = {
15
15
  docs: {
16
16
  description: "disallow specified identifiers",
17
17
  category: "Stylistic Issues",
18
- recommended: false
18
+ recommended: false,
19
+ url: "https://eslint.org/docs/rules/id-blacklist"
19
20
  },
20
21
 
21
22
  schema: {
@@ -15,7 +15,8 @@ module.exports = {
15
15
  docs: {
16
16
  description: "enforce minimum and maximum identifier lengths",
17
17
  category: "Stylistic Issues",
18
- recommended: false
18
+ recommended: false,
19
+ url: "https://eslint.org/docs/rules/id-length"
19
20
  },
20
21
 
21
22
  schema: [
@@ -14,7 +14,8 @@ module.exports = {
14
14
  docs: {
15
15
  description: "require identifiers to match a specified regular expression",
16
16
  category: "Stylistic Issues",
17
- recommended: false
17
+ recommended: false,
18
+ url: "https://eslint.org/docs/rules/id-match"
18
19
  },
19
20
 
20
21
  schema: [