@alexlit/lint-kit 176.0.1 → 177.0.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 (293) hide show
  1. package/package.json +1 -1
  2. package/packages/config-stylelint/package.json +5 -5
  3. package/packages/config-stylelint/plugins/color-format.js +1 -5
  4. package/packages/config-stylelint/plugins/logical-css.js +1 -4
  5. package/packages/config-eslint/node_modules/@eslint/core/LICENSE +0 -201
  6. package/packages/config-eslint/node_modules/@eslint/core/README.md +0 -29
  7. package/packages/config-eslint/node_modules/@eslint/core/dist/cjs/types.d.cts +0 -1179
  8. package/packages/config-eslint/node_modules/@eslint/core/dist/esm/types.d.ts +0 -1179
  9. package/packages/config-eslint/node_modules/@eslint/core/package.json +0 -49
  10. package/packages/config-eslint/node_modules/@eslint/plugin-kit/LICENSE +0 -201
  11. package/packages/config-eslint/node_modules/@eslint/plugin-kit/README.md +0 -273
  12. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/index.cjs +0 -884
  13. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/index.d.cts +0 -328
  14. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/cjs/types.cts +0 -7
  15. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/index.d.ts +0 -328
  16. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/index.js +0 -879
  17. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/types.d.ts +0 -6
  18. package/packages/config-eslint/node_modules/@eslint/plugin-kit/dist/esm/types.ts +0 -7
  19. package/packages/config-eslint/node_modules/@eslint/plugin-kit/package.json +0 -61
  20. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/configs/flat-config-base.js +0 -9
  21. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/index.d.ts +0 -17
  22. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/index.js +0 -91
  23. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/license +0 -9
  24. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/globals.json +0 -3345
  25. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/index.d.ts +0 -3452
  26. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/index.js +0 -2
  27. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/license +0 -9
  28. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/package.json +0 -117
  29. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/node_modules/globals/readme.md +0 -42
  30. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/package.json +0 -128
  31. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/readme.md +0 -261
  32. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/call-or-new-expression.js +0 -120
  33. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/function-types.js +0 -7
  34. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/index.js +0 -30
  35. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-arrow-function-body.js +0 -3
  36. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-directive.js +0 -4
  37. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-empty-array-expression.js +0 -5
  38. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-empty-node.js +0 -17
  39. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-expression-statement.js +0 -7
  40. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-function.js +0 -5
  41. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-member-expression.js +0 -98
  42. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-method-call.js +0 -62
  43. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-negative-one.js +0 -8
  44. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-reference-identifier.js +0 -159
  45. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-static-require.js +0 -10
  46. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-tagged-template-literal.js +0 -24
  47. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/is-undefined.js +0 -3
  48. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/ast/literal.js +0 -24
  49. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/better-regex.js +0 -146
  50. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/catch-error-name.js +0 -138
  51. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-assert.js +0 -98
  52. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-date-clone.js +0 -54
  53. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-destructuring.js +0 -168
  54. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-empty-array-spread.js +0 -127
  55. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-existence-index-check.js +0 -137
  56. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/consistent-function-scoping.js +0 -265
  57. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/custom-error-definition.js +0 -218
  58. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/empty-brace-spaces.js +0 -62
  59. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/error-message.js +0 -98
  60. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/escape-case.js +0 -86
  61. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/expiring-todo-comments.js +0 -584
  62. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/explicit-length-check.js +0 -236
  63. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/filename-case.js +0 -276
  64. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/add-parenthesizes-to-return-or-throw-expression.js +0 -29
  65. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/append-argument.js +0 -30
  66. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/extend-fix-range.js +0 -11
  67. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/fix-space-around-keywords.js +0 -43
  68. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/index.js +0 -23
  69. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-argument.js +0 -40
  70. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-expression-statement.js +0 -34
  71. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-method-call.js +0 -28
  72. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-object-property.js +0 -21
  73. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-parentheses.js +0 -19
  74. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-spaces-after.js +0 -22
  75. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/remove-specifier.js +0 -59
  76. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/rename-variable.js +0 -8
  77. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-argument.js +0 -17
  78. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-member-expression-property.js +0 -25
  79. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-node-or-token-and-spaces-before.js +0 -31
  80. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-reference-identifier.js +0 -32
  81. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-string-raw.js +0 -12
  82. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/replace-template-element.js +0 -10
  83. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/switch-call-expression-to-new-expression.js +0 -29
  84. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/fix/switch-new-expression-to-call-expression.js +0 -42
  85. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/import-style.js +0 -375
  86. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/index.js +0 -143
  87. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/new-for-builtins.js +0 -112
  88. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-abusive-eslint-disable.js +0 -63
  89. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-accessor-recursion.js +0 -160
  90. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-anonymous-default-export.js +0 -210
  91. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-callback-reference.js +0 -285
  92. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-for-each.js +0 -496
  93. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-method-this-argument.js +0 -223
  94. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-reduce.js +0 -128
  95. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-reverse.js +0 -6
  96. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-array-sort.js +0 -6
  97. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-await-expression-member.js +0 -85
  98. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-await-in-promise-methods.js +0 -69
  99. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-console-spaces.js +0 -89
  100. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-document-cookie.js +0 -27
  101. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-empty-file.js +0 -58
  102. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-for-loop.js +0 -419
  103. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-hex-escape.js +0 -54
  104. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-immediate-mutation.js +0 -778
  105. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-instanceof-builtins.js +0 -216
  106. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-invalid-fetch-options.js +0 -112
  107. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-invalid-remove-event-listener.js +0 -61
  108. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-keyword-prefix.js +0 -202
  109. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-lonely-if.js +0 -155
  110. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-magic-array-flat-depth.js +0 -55
  111. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-named-default.js +0 -101
  112. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-negated-condition.js +0 -145
  113. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-negation-in-equality-check.js +0 -99
  114. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-nested-ternary.js +0 -60
  115. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-new-array.js +0 -106
  116. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-new-buffer.js +0 -100
  117. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-null.js +0 -153
  118. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-object-as-default-parameter.js +0 -52
  119. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-process-exit.js +0 -106
  120. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-single-promise-in-promise-methods.js +0 -179
  121. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-static-only-class.js +0 -226
  122. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-thenable.js +0 -194
  123. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-this-assignment.js +0 -40
  124. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-typeof-undefined.js +0 -146
  125. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-array-flat-depth.js +0 -49
  126. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-array-splice-count.js +0 -23
  127. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-await.js +0 -110
  128. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-polyfills.js +0 -174
  129. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unnecessary-slice-end.js +0 -22
  130. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unreadable-array-destructuring.js +0 -85
  131. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unreadable-iife.js +0 -43
  132. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-unused-properties.js +0 -240
  133. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-collection-argument.js +0 -101
  134. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-error-capture-stack-trace.js +0 -146
  135. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-fallback-in-spread.js +0 -66
  136. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-length-check.js +0 -150
  137. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-promise-resolve-reject.js +0 -210
  138. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-spread.js +0 -389
  139. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-switch-case.js +0 -59
  140. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-useless-undefined.js +0 -275
  141. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/no-zero-fractions.js +0 -81
  142. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/number-literal-case.js +0 -82
  143. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/numeric-separators-style.js +0 -189
  144. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-add-event-listener.js +0 -191
  145. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-find.js +0 -458
  146. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-flat-map.js +0 -86
  147. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-flat.js +0 -279
  148. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-index-of.js +0 -34
  149. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-array-some.js +0 -219
  150. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-at.js +0 -380
  151. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-bigint-literals.js +0 -129
  152. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-blob-reading-methods.js +0 -47
  153. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-class-fields.js +0 -158
  154. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-classlist-toggle.js +0 -255
  155. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-code-point.js +0 -56
  156. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-date-now.js +0 -133
  157. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-default-parameters.js +0 -218
  158. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-append.js +0 -50
  159. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-dataset.js +0 -135
  160. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-remove.js +0 -124
  161. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-dom-node-text-content.js +0 -77
  162. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-event-target.js +0 -119
  163. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-export-from.js +0 -367
  164. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-global-this.js +0 -222
  165. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-import-meta-properties.js +0 -320
  166. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-includes.js +0 -111
  167. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-json-parse-buffer.js +0 -161
  168. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-keyboard-event-key.js +0 -188
  169. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-logical-operator-over-ternary.js +0 -162
  170. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-math-min-max.js +0 -205
  171. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-math-trunc.js +0 -111
  172. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-modern-dom-apis.js +0 -145
  173. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-modern-math-apis.js +0 -210
  174. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-module.js +0 -377
  175. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-native-coercion-functions.js +0 -187
  176. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-negative-index.js +0 -211
  177. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-node-protocol.js +0 -86
  178. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-number-properties.js +0 -142
  179. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-object-from-entries.js +0 -256
  180. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-optional-catch-binding.js +0 -77
  181. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-prototype-methods.js +0 -162
  182. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-query-selector.js +0 -170
  183. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-reflect-apply.js +0 -99
  184. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-regexp-test.js +0 -155
  185. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-response-static-json.js +0 -85
  186. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-set-has.js +0 -181
  187. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-set-size.js +0 -106
  188. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-single-call.js +0 -188
  189. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-spread.js +0 -521
  190. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-raw.js +0 -149
  191. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-replace-all.js +0 -180
  192. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-slice.js +0 -180
  193. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-starts-ends-with.js +0 -201
  194. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-string-trim-start-end.js +0 -46
  195. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-structured-clone.js +0 -149
  196. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-switch.js +0 -357
  197. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-ternary.js +0 -288
  198. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-top-level-await.js +0 -154
  199. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prefer-type-error.js +0 -169
  200. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/prevent-abbreviations.js +0 -655
  201. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/relative-url-style.js +0 -171
  202. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-array-join-separator.js +0 -65
  203. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-module-attributes.js +0 -120
  204. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-module-specifiers.js +0 -158
  205. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-number-to-fixed-digits-argument.js +0 -55
  206. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/require-post-message-target-origin.js +0 -74
  207. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/get-documentation-url.js +0 -9
  208. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/index.js +0 -9
  209. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-create.js +0 -51
  210. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-listener.js +0 -40
  211. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-problem.js +0 -38
  212. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rule-fixer.js +0 -49
  213. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rule.js +0 -38
  214. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/to-eslint-rules.js +0 -13
  215. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/unicorn-context.js +0 -36
  216. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/unicorn-listeners.js +0 -65
  217. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/rule/utilities.js +0 -27
  218. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/abbreviations.js +0 -270
  219. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/builtin-errors.js +0 -14
  220. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/dom-events.js +0 -275
  221. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/event-keys.js +0 -54
  222. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/negative-index.js +0 -52
  223. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/no-array-mutate-rule.js +0 -139
  224. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/no-unnecessary-length-or-infinity-rule.js +0 -80
  225. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/package-json.js +0 -42
  226. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/simple-array-search-rule.js +0 -126
  227. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/shared/typed-array.js +0 -17
  228. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/string-content.js +0 -192
  229. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/switch-case-braces.js +0 -114
  230. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/template-indent.js +0 -219
  231. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/text-encoding-identifier-case.js +0 -130
  232. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/throw-new-error.js +0 -60
  233. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/array-or-object-prototype-property.js +0 -57
  234. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/assert-token.js +0 -29
  235. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/boolean.js +0 -88
  236. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/builtins.js +0 -30
  237. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/cartesian-product-samples.js +0 -22
  238. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/create-deprecated-rules.js +0 -29
  239. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/escape-string.js +0 -24
  240. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/escape-template-element-raw.js +0 -6
  241. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-ancestor.js +0 -15
  242. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-available-variable-name.js +0 -147
  243. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-builtin-rule.js +0 -5
  244. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-call-expression-arguments-text.js +0 -36
  245. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-call-or-new-expression-tokens.js +0 -67
  246. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-class-head-location.js +0 -22
  247. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-documentation-url.js +0 -9
  248. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-indent-string.js +0 -18
  249. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-references.js +0 -5
  250. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-scopes.js +0 -12
  251. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-sibling-node.js +0 -38
  252. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-switch-case-head-location.js +0 -22
  253. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-token-store.js +0 -24
  254. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/get-variable-identifiers.js +0 -7
  255. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/global-reference-tracker.js +0 -68
  256. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/has-optional-chain-element.js +0 -17
  257. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/has-same-range.js +0 -7
  258. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/index.js +0 -59
  259. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-function-self-used-inside.js +0 -39
  260. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-left-hand-side.js +0 -20
  261. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-logical-expression.js +0 -14
  262. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-method-named.js +0 -7
  263. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-new-expression-with-parentheses.js +0 -28
  264. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-matches.js +0 -58
  265. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-value-not-dom-node.js +0 -20
  266. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-node-value-not-function.js +0 -40
  267. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-number.js +0 -224
  268. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-object-method.js +0 -10
  269. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-on-same-line.js +0 -7
  270. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-same-identifier.js +0 -5
  271. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-same-reference.js +0 -170
  272. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-export-local.js +0 -8
  273. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-import-local.js +0 -8
  274. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-property-assignment-pattern-left.js +0 -8
  275. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-shorthand-property-value.js +0 -6
  276. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-unresolved-variable.js +0 -14
  277. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/is-value-not-usable.js +0 -5
  278. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/needs-semicolon.js +0 -118
  279. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/numeric.js +0 -49
  280. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/parentheses.js +0 -71
  281. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/resolve-variable-name.js +0 -18
  282. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/rule.js +0 -27
  283. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-await-expression-argument.js +0 -17
  284. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-call-expression-callee.js +0 -18
  285. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-conditional-expression-child.js +0 -13
  286. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-expression-statement-expression.js +0 -22
  287. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-logical-expression-child.js +0 -43
  288. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-member-expression-object.js +0 -47
  289. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-new-expression-callee.js +0 -28
  290. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/should-add-parentheses-to-unary-expression.js +0 -24
  291. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/singular.js +0 -16
  292. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/string-cases.js +0 -2
  293. package/packages/config-eslint/node_modules/eslint-plugin-unicorn/rules/utils/to-location.js +0 -25
@@ -1,279 +0,0 @@
1
- import {
2
- getParenthesizedText,
3
- isArrayPrototypeProperty,
4
- isNodeMatches,
5
- isNodeMatchesNameOrPath,
6
- isParenthesized,
7
- isSameIdentifier,
8
- needsSemicolon,
9
- shouldAddParenthesesToMemberExpressionObject,
10
- } from './utils/index.js';
11
- import {fixSpaceAroundKeyword} from './fix/index.js';
12
- import {isMethodCall, isCallExpression, isEmptyArrayExpression} from './ast/index.js';
13
-
14
- const MESSAGE_ID = 'prefer-array-flat';
15
- const messages = {
16
- [MESSAGE_ID]: 'Prefer `Array#flat()` over `{{description}}` to flatten an array.',
17
- };
18
-
19
- // `array.flatMap(x => x)`
20
- const arrayFlatMap = {
21
- testFunction(node) {
22
- if (!isMethodCall(node, {
23
- method: 'flatMap',
24
- argumentsLength: 1,
25
- optionalCall: false,
26
- })) {
27
- return false;
28
- }
29
-
30
- const [firstArgument] = node.arguments;
31
- return (
32
- firstArgument.type === 'ArrowFunctionExpression'
33
- && !firstArgument.async
34
- && firstArgument.params.length === 1
35
- && isSameIdentifier(firstArgument.params[0], firstArgument.body)
36
- );
37
- },
38
- getArrayNode: node => node.callee.object,
39
- isOptionalArray: node => node.callee.optional,
40
- description: 'Array#flatMap()',
41
- };
42
-
43
- // `array.reduce((a, b) => a.concat(b), [])`
44
- // `array?.reduce((a, b) => a.concat(b), [])`
45
- // `array.reduce((a, b) => [...a, ...b], [])`
46
- // `array?.reduce((a, b) => [...a, ...b], [])`
47
- const arrayReduce = {
48
- testFunction(node) {
49
- if (!isMethodCall(node, {
50
- method: 'reduce',
51
- argumentsLength: 2,
52
- optionalCall: false,
53
- })) {
54
- return false;
55
- }
56
-
57
- const [firstArgument, secondArgument] = node.arguments;
58
- if (!(
59
- firstArgument.type === 'ArrowFunctionExpression'
60
- && !firstArgument.async
61
- && firstArgument.params.length === 2
62
- && isEmptyArrayExpression(secondArgument)
63
- )) {
64
- return false;
65
- }
66
-
67
- const firstArgumentBody = firstArgument.body;
68
- const [firstParameter, secondParameter] = firstArgument.params;
69
- return (
70
- // `(a, b) => a.concat(b)`
71
- (
72
- isMethodCall(firstArgumentBody, {
73
- method: 'concat',
74
- argumentsLength: 1,
75
- optionalCall: false,
76
- optionalMember: false,
77
- })
78
- && isSameIdentifier(firstParameter, firstArgumentBody.callee.object)
79
- && isSameIdentifier(secondParameter, firstArgumentBody.arguments[0])
80
- )
81
- // `(a, b) => [...a, ...b]`
82
- || (
83
- firstArgumentBody.type === 'ArrayExpression'
84
- && firstArgumentBody.elements.length === 2
85
- && firstArgumentBody.elements.every((node, index) =>
86
- node?.type === 'SpreadElement'
87
- && node.argument.type === 'Identifier'
88
- && isSameIdentifier(firstArgument.params[index], node.argument),
89
- )
90
- )
91
- );
92
- },
93
- getArrayNode: node => node.callee.object,
94
- isOptionalArray: node => node.callee.optional,
95
- description: 'Array#reduce()',
96
- };
97
-
98
- // `[].concat(maybeArray)`
99
- // `[].concat(...array)`
100
- const emptyArrayConcat = {
101
- testFunction(node) {
102
- return isMethodCall(node, {
103
- method: 'concat',
104
- argumentsLength: 1,
105
- allowSpreadElement: true,
106
- optionalCall: false,
107
- optionalMember: false,
108
- })
109
- && isEmptyArrayExpression(node.callee.object);
110
- },
111
- getArrayNode(node) {
112
- const argumentNode = node.arguments[0];
113
- return argumentNode.type === 'SpreadElement' ? argumentNode.argument : argumentNode;
114
- },
115
- description: '[].concat()',
116
- shouldSwitchToArray: node => node.arguments[0].type !== 'SpreadElement',
117
- };
118
-
119
- // - `[].concat.apply([], array)` and `Array.prototype.concat.apply([], array)`
120
- // - `[].concat.call([], maybeArray)` and `Array.prototype.concat.call([], maybeArray)`
121
- // - `[].concat.call([], ...array)` and `Array.prototype.concat.call([], ...array)`
122
- const arrayPrototypeConcat = {
123
- testFunction(node) {
124
- if (!(
125
- isMethodCall(node, {
126
- methods: ['apply', 'call'],
127
- argumentsLength: 2,
128
- allowSpreadElement: true,
129
- optionalCall: false,
130
- optionalMember: false,
131
- })
132
- && isArrayPrototypeProperty(node.callee.object, {
133
- property: 'concat',
134
- })
135
- )) {
136
- return false;
137
- }
138
-
139
- const [firstArgument, secondArgument] = node.arguments;
140
- return isEmptyArrayExpression(firstArgument)
141
- && (
142
- node.callee.property.name === 'call'
143
- || secondArgument.type !== 'SpreadElement'
144
- );
145
- },
146
- getArrayNode(node) {
147
- const argumentNode = node.arguments[1];
148
- return argumentNode.type === 'SpreadElement' ? argumentNode.argument : argumentNode;
149
- },
150
- description: 'Array.prototype.concat()',
151
- shouldSwitchToArray: node => node.arguments[1].type !== 'SpreadElement' && node.callee.property.name === 'call',
152
- };
153
-
154
- const lodashFlattenFunctions = [
155
- '_.flatten',
156
- 'lodash.flatten',
157
- 'underscore.flatten',
158
- ];
159
-
160
- function fix(node, array, context, shouldSwitchToArray, optional) {
161
- if (typeof shouldSwitchToArray === 'function') {
162
- shouldSwitchToArray = shouldSwitchToArray(node);
163
- }
164
-
165
- return function * (fixer) {
166
- const {sourceCode} = context;
167
- let fixed = getParenthesizedText(array, context);
168
- if (shouldSwitchToArray) {
169
- // `array` is an argument, when it changes to `array[]`, we don't need add extra parentheses
170
- fixed = `[${fixed}]`;
171
- // And we don't need to add parentheses to the new array to call `.flat()`
172
- } else if (
173
- !isParenthesized(array, sourceCode)
174
- && shouldAddParenthesesToMemberExpressionObject(array, context)
175
- ) {
176
- fixed = `(${fixed})`;
177
- }
178
-
179
- fixed = `${fixed}${optional ? '?' : ''}.flat()`;
180
-
181
- const tokenBefore = sourceCode.getTokenBefore(node);
182
- if (needsSemicolon(tokenBefore, context, fixed)) {
183
- fixed = `;${fixed}`;
184
- }
185
-
186
- yield fixer.replaceText(node, fixed);
187
-
188
- yield fixSpaceAroundKeyword(fixer, node, context);
189
- };
190
- }
191
-
192
- function create(context) {
193
- const {functions: configFunctions} = {
194
- functions: [],
195
- ...context.options[0],
196
- };
197
- const functions = [...configFunctions, ...lodashFlattenFunctions];
198
-
199
- const cases = [
200
- arrayFlatMap,
201
- arrayReduce,
202
- emptyArrayConcat,
203
- arrayPrototypeConcat,
204
- {
205
- testFunction: node => isCallExpression(node, {
206
- argumentsLength: 1,
207
- optional: false,
208
- }) && isNodeMatches(node.callee, functions),
209
- getArrayNode: node => node.arguments[0],
210
- description: node => `${functions.find(nameOrPath => isNodeMatchesNameOrPath(node.callee, nameOrPath)).trim()}()`,
211
- },
212
- ];
213
-
214
- return {
215
- * CallExpression(node) {
216
- for (const {testFunction, description, getArrayNode, shouldSwitchToArray, isOptionalArray} of cases) {
217
- if (!testFunction(node)) {
218
- continue;
219
- }
220
-
221
- const array = getArrayNode(node);
222
- const optional = isOptionalArray?.(node);
223
-
224
- const data = {
225
- description: typeof description === 'string' ? description : description(node),
226
- };
227
-
228
- const problem = {
229
- node,
230
- messageId: MESSAGE_ID,
231
- data,
232
- };
233
-
234
- const {sourceCode} = context;
235
-
236
- // Don't fix if it has comments.
237
- if (
238
- sourceCode.getCommentsInside(node).length
239
- === sourceCode.getCommentsInside(array).length
240
- ) {
241
- problem.fix = fix(node, array, context, shouldSwitchToArray, optional);
242
- }
243
-
244
- yield problem;
245
- }
246
- },
247
- };
248
- }
249
-
250
- const schema = [
251
- {
252
- type: 'object',
253
- additionalProperties: false,
254
- properties: {
255
- functions: {
256
- type: 'array',
257
- uniqueItems: true,
258
- },
259
- },
260
- },
261
- ];
262
-
263
- /** @type {import('eslint').Rule.RuleModule} */
264
- const config = {
265
- create,
266
- meta: {
267
- type: 'suggestion',
268
- docs: {
269
- description: 'Prefer `Array#flat()` over legacy techniques to flatten arrays.',
270
- recommended: 'unopinionated',
271
- },
272
- fixable: 'code',
273
- schema,
274
- defaultOptions: [{}],
275
- messages,
276
- },
277
- };
278
-
279
- export default config;
@@ -1,34 +0,0 @@
1
- import simpleArraySearchRule from './shared/simple-array-search-rule.js';
2
-
3
- const indexOfOverFindIndexRule = simpleArraySearchRule({
4
- method: 'findIndex',
5
- replacement: 'indexOf',
6
- });
7
-
8
- const lastIndexOfOverFindLastIndexRule = simpleArraySearchRule({
9
- method: 'findLastIndex',
10
- replacement: 'lastIndexOf',
11
- });
12
-
13
- /** @type {import('eslint').Rule.RuleModule} */
14
- const config = {
15
- create(context) {
16
- indexOfOverFindIndexRule.listen(context);
17
- lastIndexOfOverFindLastIndexRule.listen(context);
18
- },
19
- meta: {
20
- type: 'suggestion',
21
- docs: {
22
- description: 'Prefer `Array#{indexOf,lastIndexOf}()` over `Array#{findIndex,findLastIndex}()` when looking for the index of an item.',
23
- recommended: 'unopinionated',
24
- },
25
- fixable: 'code',
26
- hasSuggestions: true,
27
- messages: {
28
- ...indexOfOverFindIndexRule.messages,
29
- ...lastIndexOfOverFindLastIndexRule.messages,
30
- },
31
- },
32
- };
33
-
34
- export default config;
@@ -1,219 +0,0 @@
1
- import {checkVueTemplate} from './utils/rule.js';
2
- import {isBooleanNode, getParenthesizedRange, isNodeValueNotFunction} from './utils/index.js';
3
- import {removeMemberExpressionProperty} from './fix/index.js';
4
- import {
5
- isLiteral,
6
- isUndefined,
7
- isMethodCall,
8
- isMemberExpression,
9
- } from './ast/index.js';
10
-
11
- const ERROR_ID_ARRAY_SOME = 'some';
12
- const SUGGESTION_ID_ARRAY_SOME = 'some-suggestion';
13
- const ERROR_ID_ARRAY_FILTER = 'filter';
14
- const messages = {
15
- [ERROR_ID_ARRAY_SOME]: 'Prefer `.some(…)` over `.{{method}}(…)`.',
16
- [SUGGESTION_ID_ARRAY_SOME]: 'Replace `.{{method}}(…)` with `.some(…)`.',
17
- [ERROR_ID_ARRAY_FILTER]: 'Prefer `.some(…)` over non-zero length check from `.filter(…)`.',
18
- };
19
-
20
- const isCheckingUndefined = node =>
21
- node.parent.type === 'BinaryExpression'
22
- // Not checking yoda expression `null != foo.find()` and `undefined !== foo.find()
23
- && node.parent.left === node
24
- && (
25
- (
26
- (
27
- node.parent.operator === '!='
28
- || node.parent.operator === '=='
29
- || node.parent.operator === '==='
30
- || node.parent.operator === '!=='
31
- )
32
- && isUndefined(node.parent.right)
33
- )
34
- || (
35
- (
36
- node.parent.operator === '!='
37
- || node.parent.operator === '=='
38
- )
39
- // eslint-disable-next-line unicorn/no-null
40
- && isLiteral(node.parent.right, null)
41
- )
42
- );
43
- const isNegativeOne = node => node.type === 'UnaryExpression' && node.operator === '-' && node.argument && node.argument.type === 'Literal' && node.argument.value === 1;
44
- const isLiteralZero = node => isLiteral(node, 0);
45
-
46
- /** @param {import('eslint').Rule.RuleContext} context */
47
- const create = context => {
48
- // `.find(…)`
49
- // `.findLast(…)`
50
- context.on('CallExpression', callExpression => {
51
- if (!isMethodCall(callExpression, {
52
- methods: ['find', 'findLast'],
53
- minimumArguments: 1,
54
- maximumArguments: 2,
55
- optionalCall: false,
56
- optionalMember: false,
57
- })) {
58
- return;
59
- }
60
-
61
- const isCompare = isCheckingUndefined(callExpression);
62
- if (!isCompare && !isBooleanNode(callExpression)) {
63
- return;
64
- }
65
-
66
- const methodNode = callExpression.callee.property;
67
- return {
68
- node: methodNode,
69
- messageId: ERROR_ID_ARRAY_SOME,
70
- data: {method: methodNode.name},
71
- suggest: [
72
- {
73
- messageId: SUGGESTION_ID_ARRAY_SOME,
74
- * fix(fixer) {
75
- yield fixer.replaceText(methodNode, 'some');
76
-
77
- if (!isCompare) {
78
- return;
79
- }
80
-
81
- const {sourceCode} = context;
82
- const parenthesizedRange = getParenthesizedRange(callExpression, context);
83
- yield fixer.removeRange([parenthesizedRange[1], sourceCode.getRange(callExpression.parent)[1]]);
84
-
85
- if (callExpression.parent.operator === '!=' || callExpression.parent.operator === '!==') {
86
- return;
87
- }
88
-
89
- yield fixer.insertTextBeforeRange(parenthesizedRange, '!');
90
- },
91
- },
92
- ],
93
- };
94
- });
95
-
96
- // These operators also used in `prefer-includes`, try to reuse the code in future
97
- // `.{findIndex,findLastIndex}(…) !== -1`
98
- // `.{findIndex,findLastIndex}(…) != -1`
99
- // `.{findIndex,findLastIndex}(…) > -1`
100
- // `.{findIndex,findLastIndex}(…) === -1`
101
- // `.{findIndex,findLastIndex}(…) == -1`
102
- // `.{findIndex,findLastIndex}(…) >= 0`
103
- // `.{findIndex,findLastIndex}(…) < 0`
104
- context.on('BinaryExpression', binaryExpression => {
105
- const {left, right, operator} = binaryExpression;
106
-
107
- if (!(
108
- isMethodCall(left, {
109
- methods: ['findIndex', 'findLastIndex'],
110
- argumentsLength: 1,
111
- optionalCall: false,
112
- optionalMember: false,
113
- })
114
- && (
115
- (['!==', '!=', '>', '===', '=='].includes(operator) && isNegativeOne(right))
116
- || (['>=', '<'].includes(operator) && isLiteralZero(right))
117
- )
118
- )) {
119
- return;
120
- }
121
-
122
- const methodNode = left.callee.property;
123
- return {
124
- node: methodNode,
125
- messageId: ERROR_ID_ARRAY_SOME,
126
- data: {method: methodNode.name},
127
- * fix(fixer) {
128
- if (['===', '==', '<'].includes(operator)) {
129
- yield fixer.insertTextBefore(binaryExpression, '!');
130
- }
131
-
132
- yield fixer.replaceText(methodNode, 'some');
133
-
134
- const {sourceCode} = context;
135
- const operatorToken = sourceCode.getTokenAfter(
136
- left,
137
- token => token.type === 'Punctuator' && token.value === operator,
138
- );
139
- const [start] = sourceCode.getRange(operatorToken);
140
- const [, end] = sourceCode.getRange(binaryExpression);
141
-
142
- yield fixer.removeRange([start, end]);
143
- },
144
- };
145
- });
146
-
147
- // `.filter(…).length > 0`
148
- // `.filter(…).length !== 0`
149
- context.on('BinaryExpression', binaryExpression => {
150
- if (!(
151
- // We assume the user already follows `unicorn/explicit-length-check`. These are allowed in that rule.
152
- (binaryExpression.operator === '>' || binaryExpression.operator === '!==')
153
- && binaryExpression.right.type === 'Literal'
154
- && binaryExpression.right.raw === '0'
155
- && isMemberExpression(binaryExpression.left, {property: 'length', optional: false})
156
- && isMethodCall(binaryExpression.left.object, {
157
- method: 'filter',
158
- optionalCall: false,
159
- optionalMember: false,
160
- })
161
- )) {
162
- return;
163
- }
164
-
165
- const filterCall = binaryExpression.left.object;
166
- const [firstArgument] = filterCall.arguments;
167
- if (!firstArgument || isNodeValueNotFunction(firstArgument)) {
168
- return;
169
- }
170
-
171
- const filterProperty = filterCall.callee.property;
172
- return {
173
- node: filterProperty,
174
- messageId: ERROR_ID_ARRAY_FILTER,
175
- * fix(fixer) {
176
- // `.filter` to `.some`
177
- yield fixer.replaceText(filterProperty, 'some');
178
-
179
- const {sourceCode} = context;
180
- const lengthNode = binaryExpression.left;
181
- /*
182
- Remove `.length`
183
- `(( (( array.filter() )).length )) > (( 0 ))`
184
- ------------------------^^^^^^^
185
- */
186
- yield removeMemberExpressionProperty(fixer, lengthNode, context);
187
-
188
- /*
189
- Remove `> 0`
190
- `(( (( array.filter() )).length )) > (( 0 ))`
191
- ----------------------------------^^^^^^^^^^
192
- */
193
- yield fixer.removeRange([
194
- getParenthesizedRange(lengthNode, context)[1],
195
- sourceCode.getRange(binaryExpression)[1],
196
- ]);
197
-
198
- // The `BinaryExpression` always ends with a number or `)`, no need check for ASI
199
- },
200
- };
201
- });
202
- };
203
-
204
- /** @type {import('eslint').Rule.RuleModule} */
205
- const config = {
206
- create: checkVueTemplate(create),
207
- meta: {
208
- type: 'suggestion',
209
- docs: {
210
- description: 'Prefer `.some(…)` over `.filter(…).length` check and `.{find,findLast,findIndex,findLastIndex}(…)`.',
211
- recommended: 'unopinionated',
212
- },
213
- fixable: 'code',
214
- messages,
215
- hasSuggestions: true,
216
- },
217
- };
218
-
219
- export default config;