@anolilab/eslint-config 5.0.9 → 6.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 (363) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +226 -73
  3. package/dist/chunk-3XUVOUJE.mjs +5 -0
  4. package/dist/chunk-3XUVOUJE.mjs.map +1 -0
  5. package/dist/chunk-6E2RGUNG.js +7 -0
  6. package/dist/chunk-6E2RGUNG.js.map +1 -0
  7. package/dist/chunk-ARKJLBXP.js +7 -0
  8. package/dist/chunk-ARKJLBXP.js.map +1 -0
  9. package/dist/chunk-B7GQAMYJ.js +9 -0
  10. package/dist/chunk-B7GQAMYJ.js.map +1 -0
  11. package/dist/chunk-DJDHW6UR.mjs +5 -0
  12. package/dist/chunk-DJDHW6UR.mjs.map +1 -0
  13. package/dist/chunk-F6JHPR4L.mjs +7 -0
  14. package/dist/chunk-F6JHPR4L.mjs.map +1 -0
  15. package/dist/chunk-G7JIJH44.mjs +5 -0
  16. package/dist/chunk-G7JIJH44.mjs.map +1 -0
  17. package/dist/chunk-NO36P4BR.js +9 -0
  18. package/dist/chunk-NO36P4BR.js.map +1 -0
  19. package/dist/chunk-PCIKFIV2.js +7 -0
  20. package/dist/chunk-PCIKFIV2.js.map +1 -0
  21. package/dist/chunk-RWRS63WY.mjs +7 -0
  22. package/dist/chunk-RWRS63WY.mjs.map +1 -0
  23. package/dist/chunk-SV64EPVP.js +7 -0
  24. package/dist/chunk-SV64EPVP.js.map +1 -0
  25. package/dist/chunk-UJAIXHCQ.js +13 -0
  26. package/dist/chunk-UJAIXHCQ.js.map +1 -0
  27. package/dist/chunk-WDMF75TJ.mjs +5 -0
  28. package/dist/chunk-WDMF75TJ.mjs.map +1 -0
  29. package/dist/chunk-WSETOOIE.mjs +5 -0
  30. package/dist/chunk-WSETOOIE.mjs.map +1 -0
  31. package/dist/chunk-XND2BWC4.mjs +7 -0
  32. package/dist/chunk-XND2BWC4.mjs.map +1 -0
  33. package/dist/chunk-YMWD4DNM.js +8 -0
  34. package/dist/chunk-YMWD4DNM.js.map +1 -0
  35. package/dist/config/best-practices.d.ts +5 -0
  36. package/dist/config/best-practices.js +9 -0
  37. package/dist/config/best-practices.js.map +1 -0
  38. package/dist/config/best-practices.mjs +3 -0
  39. package/dist/config/best-practices.mjs.map +1 -0
  40. package/dist/config/errors.d.ts +5 -0
  41. package/dist/config/errors.js +9 -0
  42. package/dist/config/errors.js.map +1 -0
  43. package/dist/config/errors.mjs +3 -0
  44. package/dist/config/errors.mjs.map +1 -0
  45. package/dist/config/es6.d.ts +5 -0
  46. package/dist/config/es6.js +9 -0
  47. package/dist/config/es6.js.map +1 -0
  48. package/dist/config/es6.mjs +3 -0
  49. package/dist/config/es6.mjs.map +1 -0
  50. package/dist/config/plugins/antfu.d.ts +5 -0
  51. package/dist/config/plugins/antfu.js +10 -0
  52. package/dist/config/plugins/antfu.js.map +1 -0
  53. package/dist/config/plugins/antfu.mjs +8 -0
  54. package/dist/config/plugins/antfu.mjs.map +1 -0
  55. package/dist/config/plugins/array-func.d.ts +5 -0
  56. package/dist/config/plugins/array-func.js +9 -0
  57. package/dist/config/plugins/array-func.js.map +1 -0
  58. package/dist/config/plugins/array-func.mjs +7 -0
  59. package/dist/config/plugins/array-func.mjs.map +1 -0
  60. package/dist/config/plugins/ava.d.ts +5 -0
  61. package/dist/config/plugins/ava.js +7 -0
  62. package/dist/config/plugins/ava.js.map +1 -0
  63. package/dist/config/plugins/ava.mjs +5 -0
  64. package/dist/config/plugins/ava.mjs.map +1 -0
  65. package/dist/config/plugins/babel.d.ts +5 -0
  66. package/dist/config/plugins/babel.js +12 -0
  67. package/dist/config/plugins/babel.js.map +1 -0
  68. package/dist/config/plugins/babel.mjs +10 -0
  69. package/dist/config/plugins/babel.mjs.map +1 -0
  70. package/dist/config/plugins/compat.d.ts +5 -0
  71. package/dist/config/plugins/compat.js +7 -0
  72. package/dist/config/plugins/compat.js.map +1 -0
  73. package/dist/config/plugins/compat.mjs +5 -0
  74. package/dist/config/plugins/compat.mjs.map +1 -0
  75. package/dist/config/plugins/cypress.d.ts +5 -0
  76. package/dist/config/plugins/cypress.js +7 -0
  77. package/dist/config/plugins/cypress.js.map +1 -0
  78. package/dist/config/plugins/cypress.mjs +5 -0
  79. package/dist/config/plugins/cypress.mjs.map +1 -0
  80. package/dist/config/plugins/es.d.ts +5 -0
  81. package/dist/config/plugins/es.js +7 -0
  82. package/dist/config/plugins/es.js.map +1 -0
  83. package/dist/config/plugins/es.mjs +5 -0
  84. package/dist/config/plugins/es.mjs.map +1 -0
  85. package/dist/config/plugins/eslint-comments.d.ts +5 -0
  86. package/dist/config/plugins/eslint-comments.js +7 -0
  87. package/dist/config/plugins/eslint-comments.js.map +1 -0
  88. package/dist/config/plugins/eslint-comments.mjs +5 -0
  89. package/dist/config/plugins/eslint-comments.mjs.map +1 -0
  90. package/dist/config/plugins/html.d.ts +5 -0
  91. package/dist/config/plugins/html.js +7 -0
  92. package/dist/config/plugins/html.js.map +1 -0
  93. package/dist/config/plugins/html.mjs +5 -0
  94. package/dist/config/plugins/html.mjs.map +1 -0
  95. package/dist/config/plugins/import.d.ts +5 -0
  96. package/dist/config/plugins/import.js +9 -0
  97. package/dist/config/plugins/import.js.map +1 -0
  98. package/dist/config/plugins/import.mjs +3 -0
  99. package/dist/config/plugins/import.mjs.map +1 -0
  100. package/dist/config/plugins/jest-async.d.ts +5 -0
  101. package/dist/config/plugins/jest-async.js +7 -0
  102. package/dist/config/plugins/jest-async.js.map +1 -0
  103. package/dist/config/plugins/jest-async.mjs +5 -0
  104. package/dist/config/plugins/jest-async.mjs.map +1 -0
  105. package/dist/config/plugins/jest-dom.d.ts +5 -0
  106. package/dist/config/plugins/jest-dom.js +7 -0
  107. package/dist/config/plugins/jest-dom.js.map +1 -0
  108. package/dist/config/plugins/jest-dom.mjs +5 -0
  109. package/dist/config/plugins/jest-dom.mjs.map +1 -0
  110. package/dist/config/plugins/jest-formatting.d.ts +5 -0
  111. package/dist/config/plugins/jest-formatting.js +7 -0
  112. package/dist/config/plugins/jest-formatting.js.map +1 -0
  113. package/dist/config/plugins/jest-formatting.mjs +5 -0
  114. package/dist/config/plugins/jest-formatting.mjs.map +1 -0
  115. package/dist/config/plugins/jest.d.ts +5 -0
  116. package/dist/config/plugins/jest.js +7 -0
  117. package/dist/config/plugins/jest.js.map +1 -0
  118. package/dist/config/plugins/jest.mjs +5 -0
  119. package/dist/config/plugins/jest.mjs.map +1 -0
  120. package/dist/config/plugins/jsdoc.d.ts +5 -0
  121. package/dist/config/plugins/jsdoc.js +11 -0
  122. package/dist/config/plugins/jsdoc.js.map +1 -0
  123. package/dist/config/plugins/jsdoc.mjs +9 -0
  124. package/dist/config/plugins/jsdoc.mjs.map +1 -0
  125. package/dist/config/plugins/jsonc.d.ts +5 -0
  126. package/dist/config/plugins/jsonc.js +11 -0
  127. package/dist/config/plugins/jsonc.js.map +1 -0
  128. package/dist/config/plugins/jsonc.mjs +9 -0
  129. package/dist/config/plugins/jsonc.mjs.map +1 -0
  130. package/dist/config/plugins/jsx-a11y.d.ts +5 -0
  131. package/dist/config/plugins/jsx-a11y.js +7 -0
  132. package/dist/config/plugins/jsx-a11y.js.map +1 -0
  133. package/dist/config/plugins/jsx-a11y.mjs +5 -0
  134. package/dist/config/plugins/jsx-a11y.mjs.map +1 -0
  135. package/dist/config/plugins/lodash-fp.d.ts +5 -0
  136. package/dist/config/plugins/lodash-fp.js +7 -0
  137. package/dist/config/plugins/lodash-fp.js.map +1 -0
  138. package/dist/config/plugins/lodash-fp.mjs +5 -0
  139. package/dist/config/plugins/lodash-fp.mjs.map +1 -0
  140. package/dist/config/plugins/lodash.d.ts +5 -0
  141. package/dist/config/plugins/lodash.js +7 -0
  142. package/dist/config/plugins/lodash.js.map +1 -0
  143. package/dist/config/plugins/lodash.mjs +5 -0
  144. package/dist/config/plugins/lodash.mjs.map +1 -0
  145. package/dist/config/plugins/markdown.d.ts +5 -0
  146. package/dist/config/plugins/markdown.js +7 -0
  147. package/dist/config/plugins/markdown.js.map +1 -0
  148. package/dist/config/plugins/markdown.mjs +5 -0
  149. package/dist/config/plugins/markdown.mjs.map +1 -0
  150. package/dist/config/plugins/mdx.d.ts +5 -0
  151. package/dist/config/plugins/mdx.js +7 -0
  152. package/dist/config/plugins/mdx.js.map +1 -0
  153. package/dist/config/plugins/mdx.mjs +5 -0
  154. package/dist/config/plugins/mdx.mjs.map +1 -0
  155. package/dist/config/plugins/no-extend-native.d.ts +5 -0
  156. package/dist/config/plugins/no-extend-native.js +7 -0
  157. package/dist/config/plugins/no-extend-native.js.map +1 -0
  158. package/dist/config/plugins/no-extend-native.mjs +5 -0
  159. package/dist/config/plugins/no-extend-native.mjs.map +1 -0
  160. package/dist/config/plugins/no-loops.d.ts +5 -0
  161. package/dist/config/plugins/no-loops.js +7 -0
  162. package/dist/config/plugins/no-loops.js.map +1 -0
  163. package/dist/config/plugins/no-loops.mjs +5 -0
  164. package/dist/config/plugins/no-loops.mjs.map +1 -0
  165. package/dist/config/plugins/no-secrets.d.ts +5 -0
  166. package/dist/config/plugins/no-secrets.js +7 -0
  167. package/dist/config/plugins/no-secrets.js.map +1 -0
  168. package/dist/config/plugins/no-secrets.mjs +5 -0
  169. package/dist/config/plugins/no-secrets.mjs.map +1 -0
  170. package/dist/config/plugins/no-unsanitized.d.ts +5 -0
  171. package/dist/config/plugins/no-unsanitized.js +7 -0
  172. package/dist/config/plugins/no-unsanitized.js.map +1 -0
  173. package/dist/config/plugins/no-unsanitized.mjs +5 -0
  174. package/dist/config/plugins/no-unsanitized.mjs.map +1 -0
  175. package/dist/config/plugins/node.d.ts +5 -0
  176. package/dist/config/plugins/node.js +9 -0
  177. package/dist/config/plugins/node.js.map +1 -0
  178. package/dist/config/plugins/node.mjs +7 -0
  179. package/dist/config/plugins/node.mjs.map +1 -0
  180. package/dist/config/plugins/optimize-regex.d.ts +5 -0
  181. package/dist/config/plugins/optimize-regex.js +7 -0
  182. package/dist/config/plugins/optimize-regex.js.map +1 -0
  183. package/dist/config/plugins/optimize-regex.mjs +5 -0
  184. package/dist/config/plugins/optimize-regex.mjs.map +1 -0
  185. package/dist/config/plugins/promise.d.ts +5 -0
  186. package/dist/config/plugins/promise.js +7 -0
  187. package/dist/config/plugins/promise.js.map +1 -0
  188. package/dist/config/plugins/promise.mjs +5 -0
  189. package/dist/config/plugins/promise.mjs.map +1 -0
  190. package/dist/config/plugins/react-hooks.d.ts +5 -0
  191. package/dist/config/plugins/react-hooks.js +7 -0
  192. package/dist/config/plugins/react-hooks.js.map +1 -0
  193. package/dist/config/plugins/react-hooks.mjs +5 -0
  194. package/dist/config/plugins/react-hooks.mjs.map +1 -0
  195. package/dist/config/plugins/react-redux.d.ts +5 -0
  196. package/dist/config/plugins/react-redux.js +7 -0
  197. package/dist/config/plugins/react-redux.js.map +1 -0
  198. package/dist/config/plugins/react-redux.mjs +5 -0
  199. package/dist/config/plugins/react-redux.mjs.map +1 -0
  200. package/dist/config/plugins/react.d.ts +5 -0
  201. package/dist/config/plugins/react.js +21 -0
  202. package/dist/config/plugins/react.js.map +1 -0
  203. package/dist/config/plugins/react.mjs +15 -0
  204. package/dist/config/plugins/react.mjs.map +1 -0
  205. package/dist/config/plugins/security.d.ts +5 -0
  206. package/dist/config/plugins/security.js +7 -0
  207. package/dist/config/plugins/security.js.map +1 -0
  208. package/dist/config/plugins/security.mjs +5 -0
  209. package/dist/config/plugins/security.mjs.map +1 -0
  210. package/dist/config/plugins/simple-import-sort.d.ts +5 -0
  211. package/dist/config/plugins/simple-import-sort.js +7 -0
  212. package/dist/config/plugins/simple-import-sort.js.map +1 -0
  213. package/dist/config/plugins/simple-import-sort.mjs +5 -0
  214. package/dist/config/plugins/simple-import-sort.mjs.map +1 -0
  215. package/dist/config/plugins/sonarjs.d.ts +5 -0
  216. package/dist/config/plugins/sonarjs.js +7 -0
  217. package/dist/config/plugins/sonarjs.js.map +1 -0
  218. package/dist/config/plugins/sonarjs.mjs +5 -0
  219. package/dist/config/plugins/sonarjs.mjs.map +1 -0
  220. package/dist/config/plugins/sort-keys-fix.d.ts +5 -0
  221. package/dist/config/plugins/sort-keys-fix.js +7 -0
  222. package/dist/config/plugins/sort-keys-fix.js.map +1 -0
  223. package/dist/config/plugins/sort-keys-fix.mjs +5 -0
  224. package/dist/config/plugins/sort-keys-fix.mjs.map +1 -0
  225. package/dist/config/plugins/tailwindcss.d.ts +5 -0
  226. package/dist/config/plugins/tailwindcss.js +7 -0
  227. package/dist/config/plugins/tailwindcss.js.map +1 -0
  228. package/dist/config/plugins/tailwindcss.mjs +5 -0
  229. package/dist/config/plugins/tailwindcss.mjs.map +1 -0
  230. package/dist/config/plugins/testing-library.d.ts +5 -0
  231. package/dist/config/plugins/testing-library.js +10 -0
  232. package/dist/config/plugins/testing-library.js.map +1 -0
  233. package/dist/config/plugins/testing-library.mjs +8 -0
  234. package/dist/config/plugins/testing-library.mjs.map +1 -0
  235. package/dist/config/plugins/toml.d.ts +5 -0
  236. package/dist/config/plugins/toml.js +7 -0
  237. package/dist/config/plugins/toml.js.map +1 -0
  238. package/dist/config/plugins/toml.mjs +5 -0
  239. package/dist/config/plugins/toml.mjs.map +1 -0
  240. package/dist/config/plugins/tsdoc.d.ts +5 -0
  241. package/dist/config/plugins/tsdoc.js +9 -0
  242. package/dist/config/plugins/tsdoc.js.map +1 -0
  243. package/dist/config/plugins/tsdoc.mjs +7 -0
  244. package/dist/config/plugins/tsdoc.mjs.map +1 -0
  245. package/dist/config/plugins/typescript-sort-keys.d.ts +5 -0
  246. package/dist/config/plugins/typescript-sort-keys.js +7 -0
  247. package/dist/config/plugins/typescript-sort-keys.js.map +1 -0
  248. package/dist/config/plugins/typescript-sort-keys.mjs +5 -0
  249. package/dist/config/plugins/typescript-sort-keys.mjs.map +1 -0
  250. package/dist/config/plugins/typescript.d.ts +5 -0
  251. package/dist/config/plugins/typescript.js +18 -0
  252. package/dist/config/plugins/typescript.js.map +1 -0
  253. package/dist/config/plugins/typescript.mjs +16 -0
  254. package/dist/config/plugins/typescript.mjs.map +1 -0
  255. package/dist/config/plugins/unicorn.d.ts +5 -0
  256. package/dist/config/plugins/unicorn.js +15 -0
  257. package/dist/config/plugins/unicorn.js.map +1 -0
  258. package/dist/config/plugins/unicorn.mjs +9 -0
  259. package/dist/config/plugins/unicorn.mjs.map +1 -0
  260. package/dist/config/plugins/vitest.d.ts +5 -0
  261. package/dist/config/plugins/vitest.js +7 -0
  262. package/dist/config/plugins/vitest.js.map +1 -0
  263. package/dist/config/plugins/vitest.mjs +5 -0
  264. package/dist/config/plugins/vitest.mjs.map +1 -0
  265. package/dist/config/plugins/yml.d.ts +5 -0
  266. package/dist/config/plugins/yml.js +7 -0
  267. package/dist/config/plugins/yml.js.map +1 -0
  268. package/dist/config/plugins/yml.mjs +5 -0
  269. package/dist/config/plugins/yml.mjs.map +1 -0
  270. package/dist/config/plugins/you-dont-need-lodash-underscore.d.ts +5 -0
  271. package/dist/config/plugins/you-dont-need-lodash-underscore.js +7 -0
  272. package/dist/config/plugins/you-dont-need-lodash-underscore.js.map +1 -0
  273. package/dist/config/plugins/you-dont-need-lodash-underscore.mjs +5 -0
  274. package/dist/config/plugins/you-dont-need-lodash-underscore.mjs.map +1 -0
  275. package/dist/config/plugins/you-dont-need-momentjs.d.ts +5 -0
  276. package/dist/config/plugins/you-dont-need-momentjs.js +7 -0
  277. package/dist/config/plugins/you-dont-need-momentjs.js.map +1 -0
  278. package/dist/config/plugins/you-dont-need-momentjs.mjs +5 -0
  279. package/dist/config/plugins/you-dont-need-momentjs.mjs.map +1 -0
  280. package/dist/config/plugins/zod.d.ts +5 -0
  281. package/dist/config/plugins/zod.js +7 -0
  282. package/dist/config/plugins/zod.js.map +1 -0
  283. package/dist/config/plugins/zod.mjs +5 -0
  284. package/dist/config/plugins/zod.mjs.map +1 -0
  285. package/dist/config/style.d.ts +5 -0
  286. package/dist/config/style.js +9 -0
  287. package/dist/config/style.js.map +1 -0
  288. package/dist/config/style.mjs +3 -0
  289. package/dist/config/style.mjs.map +1 -0
  290. package/dist/config/variables.d.ts +5 -0
  291. package/dist/config/variables.js +9 -0
  292. package/dist/config/variables.js.map +1 -0
  293. package/dist/config/variables.mjs +3 -0
  294. package/dist/config/variables.mjs.map +1 -0
  295. package/dist/index.d.ts +5 -0
  296. package/dist/index.js +22 -0
  297. package/dist/index.js.map +1 -0
  298. package/dist/index.mjs +16 -0
  299. package/dist/index.mjs.map +1 -0
  300. package/dist/postinstall.d.ts +2 -0
  301. package/dist/postinstall.js +65 -0
  302. package/dist/postinstall.js.map +1 -0
  303. package/dist/postinstall.mjs +63 -0
  304. package/dist/postinstall.mjs.map +1 -0
  305. package/dist/typescript-type-checking.d.ts +5 -0
  306. package/dist/typescript-type-checking.js +10 -0
  307. package/dist/typescript-type-checking.js.map +1 -0
  308. package/dist/typescript-type-checking.mjs +8 -0
  309. package/dist/typescript-type-checking.mjs.map +1 -0
  310. package/package.json +106 -50
  311. package/config.cjs +0 -88
  312. package/index.cjs +0 -58
  313. package/lib/check-missing.cjs +0 -57
  314. package/lib/is-module-available.cjs +0 -8
  315. package/lib/loggers.cjs +0 -12
  316. package/lib/postinstall.cjs +0 -115
  317. package/lib/show-loaded.cjs +0 -21
  318. package/lib/utils.cjs +0 -90
  319. package/rules/best-practices.cjs +0 -395
  320. package/rules/errors.cjs +0 -177
  321. package/rules/es6.cjs +0 -217
  322. package/rules/plugins/array-func.cjs +0 -13
  323. package/rules/plugins/babel.cjs +0 -36
  324. package/rules/plugins/compat.cjs +0 -3
  325. package/rules/plugins/cypress.cjs +0 -13
  326. package/rules/plugins/eslint-comments.cjs +0 -11
  327. package/rules/plugins/html.cjs +0 -3
  328. package/rules/plugins/import.cjs +0 -265
  329. package/rules/plugins/jest-async.cjs +0 -6
  330. package/rules/plugins/jest-dom.cjs +0 -3
  331. package/rules/plugins/jest-formatting.cjs +0 -3
  332. package/rules/plugins/jest.cjs +0 -43
  333. package/rules/plugins/jsdoc.cjs +0 -4
  334. package/rules/plugins/json.cjs +0 -40
  335. package/rules/plugins/jsonc.cjs +0 -70
  336. package/rules/plugins/jsx-a11y.cjs +0 -261
  337. package/rules/plugins/lodash-fp.cjs +0 -7
  338. package/rules/plugins/lodash.cjs +0 -52
  339. package/rules/plugins/markdown.cjs +0 -32
  340. package/rules/plugins/mdx.cjs +0 -4
  341. package/rules/plugins/no-loops.cjs +0 -7
  342. package/rules/plugins/no-secrets.cjs +0 -20
  343. package/rules/plugins/no-unsanitized.cjs +0 -8
  344. package/rules/plugins/node.cjs +0 -44
  345. package/rules/plugins/optimize-regex.cjs +0 -6
  346. package/rules/plugins/promise.cjs +0 -9
  347. package/rules/plugins/react-hooks.cjs +0 -20
  348. package/rules/plugins/react-redux.cjs +0 -9
  349. package/rules/plugins/react.cjs +0 -659
  350. package/rules/plugins/simple-import-sort.cjs +0 -10
  351. package/rules/plugins/sonarjs.cjs +0 -5
  352. package/rules/plugins/sort-keys-fix.cjs +0 -6
  353. package/rules/plugins/tailwindcss.cjs +0 -4
  354. package/rules/plugins/testing-library.cjs +0 -34
  355. package/rules/plugins/toml.cjs +0 -9
  356. package/rules/plugins/typescript-sort-keys.cjs +0 -19
  357. package/rules/plugins/typescript.cjs +0 -427
  358. package/rules/plugins/unicorn.cjs +0 -20
  359. package/rules/plugins/yml.cjs +0 -12
  360. package/rules/plugins/you-dont-need-lodash-underscore.cjs +0 -3
  361. package/rules/plugins/you-dont-need-momentjs.cjs +0 -3
  362. package/rules/style.cjs +0 -629
  363. package/rules/variables.cjs +0 -54
package/config.cjs DELETED
@@ -1,88 +0,0 @@
1
- const { hasAnyDep, hasTypescript } = require("./lib/utils.cjs");
2
- const isModuleAvailable = require("./lib/is-module-available.cjs");
3
-
4
- // Base rules
5
- const rules = ["best-practices", "errors", "style", "es6", "variables"];
6
-
7
- // Base plugin rules
8
- const pRules = [
9
- "compat",
10
- "eslint-comments",
11
- "import",
12
- "json",
13
- "jsonc",
14
- "jsonc",
15
- "markdown",
16
- "optimize-regex",
17
- "promise",
18
- "simple-import-sort",
19
- "toml",
20
- "unicorn",
21
- "yml",
22
- "you-dont-need-lodash-underscore",
23
- "you-dont-need-momentjs",
24
-
25
- // Security Rules
26
- "no-secrets",
27
- "sonarjs",
28
- ];
29
-
30
- // Optionals rules based on project dependencies
31
- const depRules = [
32
- "array-func",
33
- "html",
34
- "jsdoc",
35
- "lodash",
36
- "mdx",
37
- "no-unsanitized",
38
- "react",
39
- "react-redux",
40
- ["lodash", "lodash-fp"],
41
- ["react", "jsx-a11y"],
42
- ["react", "react-hooks"],
43
- "tailwindcss",
44
- ];
45
-
46
- const testRules = [
47
- "cypress",
48
- "jest",
49
- "jest-dom",
50
- ["@testing-library/dom", "testing-library"],
51
- ["@testing-library/jest-dom", "jest-dom"],
52
- ["jest", "jest-async", "jest-dom"],
53
- ["jest-formatting", "jest"],
54
- ];
55
-
56
- // Extra required optional packages
57
- const extraInstalled = [];
58
-
59
- depRules.forEach((depRule) => {
60
- const rule = typeof depRule === "string" ? [depRule, depRule] : depRule;
61
-
62
- if (hasAnyDep(rule[0])) {
63
- pRules.push(rule[1]);
64
- }
65
- });
66
-
67
- testRules.forEach((depRule) => {
68
- const rule = typeof depRule === "string" ? [depRule, depRule] : depRule;
69
-
70
- if (isModuleAvailable(rule[0])) {
71
- pRules.push(rule[1]);
72
- }
73
- });
74
-
75
- if (hasTypescript) {
76
- pRules.push("typescript");
77
- extraInstalled.push(["typescript", "@typescript-eslint/parser"], ["typescript", "@typescript-eslint/eslint-plugin"]);
78
-
79
- if (hasAnyDep("eslint-plugin-typescript-sort-keys")) {
80
- pRules.push("typescript-sort-keys");
81
- }
82
- }
83
-
84
- module.exports = {
85
- rules,
86
- pluginRules: pRules,
87
- extraInstallPackage: extraInstalled,
88
- };
package/index.cjs DELETED
@@ -1,58 +0,0 @@
1
- const path = require("node:path");
2
- const checkMissing = require("./lib/check-missing.cjs");
3
- const showLoaded = require("./lib/show-loaded.cjs");
4
- const { rules, pluginRules, extraInstallPackage } = require("./config.cjs");
5
-
6
- // Workaround VS Code trying to run this file twice!
7
- if (!global.hasAnolilabEsLintConfigLoaded) {
8
- checkMissing(pluginRules, extraInstallPackage);
9
- showLoaded(pluginRules, extraInstallPackage);
10
-
11
- global.hasAnolilabEsLintConfigLoaded = true;
12
- }
13
-
14
- module.exports = {
15
- extends: [
16
- ...rules
17
- // eslint-disable-next-line no-undef
18
- .map((plugin) => path.join(__dirname, `./rules/${plugin.split("@")[0]}.cjs`)),
19
- // eslint-disable-next-line no-undef
20
- ...pluginRules.map((plugin) => path.join(__dirname, `./rules/plugins/${plugin.split("@")[0]}.cjs`)),
21
- ],
22
- // @see https://www.npmjs.com/package/@rushstack/eslint-plugin-security
23
- plugins: ["@rushstack/eslint-plugin-security"],
24
- rules: {
25
- // This is disabled for tools because, for example, it is a common and safe practice for a tool
26
- // to read a RegExp from a config file and use it to filter files paths.
27
- // eslint-disable-next-line no-undef
28
- "@rushstack/security/no-unsafe-regexp": process.env.TRUSTED_TOOL ? "off" : "warn",
29
- },
30
- parserOptions: {
31
- ecmaVersion: 12,
32
- sourceType: "module",
33
- },
34
- env: {
35
- es2021: true,
36
- },
37
- ignorePatterns: [
38
- "!.*",
39
-
40
- ".git/",
41
- "node_modules/",
42
- "bower_components/",
43
- "jspm_packages/",
44
- ".npm/",
45
- "vendor/",
46
-
47
- "lib-cov/",
48
- "coverage/",
49
- ".nyc_output/",
50
- ".cache/",
51
-
52
- "build/",
53
- "dist/",
54
- "tmp/",
55
-
56
- "**/*.min.*",
57
- ],
58
- };
@@ -1,57 +0,0 @@
1
- const isModuleAvailable = require("./is-module-available.cjs");
2
- const { consoleLog } = require("./loggers.cjs");
3
-
4
- const moduleNotAvailable = (package_) => !isModuleAvailable(package_);
5
-
6
- const atLatest = (package_) => {
7
- if (!package_.split("@").includes("@")) {
8
- return `${package_}@latest`;
9
- }
10
-
11
- return package_;
12
- };
13
-
14
- module.exports = function checkMissing(rules, extraInstallPackage) {
15
- const notInstalled = rules
16
- .map((plugin) => {
17
- if (plugin === "typescript") {
18
- return plugin;
19
- }
20
-
21
- return `eslint-plugin-${plugin}`;
22
- })
23
- .filter((package_) => moduleNotAvailable(package_));
24
-
25
- extraInstallPackage.forEach(([rule, package_]) => {
26
- if (rules.includes(rule) && moduleNotAvailable(package_)) {
27
- notInstalled.push(package_);
28
- }
29
- });
30
-
31
- if (notInstalled.length === 0) {
32
- return;
33
- }
34
-
35
- const s = notInstalled.length === 1 ? "" : "s";
36
-
37
- consoleLog(`\nOops! Something went wrong! :(
38
-
39
- @anolilab/eslint-config could not find the following package${s}
40
-
41
- ${notInstalled.join("\n ")}
42
-
43
- To install the missing package${s}, please run the following command:
44
-
45
- npm install ${notInstalled.map((element) => atLatest(element)).join(" ")} --save-dev
46
-
47
- or
48
-
49
- yarn add ${notInstalled.map((element) => atLatest(element)).join(" ")} --dev
50
-
51
- or
52
-
53
- pnpm add ${notInstalled.map((element) => atLatest(element)).join(" ")} -D
54
- `);
55
-
56
- // process.exit(1); // eslint-disable-line unicorn/no-process-exit
57
- };
@@ -1,8 +0,0 @@
1
- module.exports = function isModuleAvailable(name) {
2
- try {
3
- require.resolve(name);
4
- return true;
5
- } catch {
6
- return false;
7
- }
8
- };
package/lib/loggers.cjs DELETED
@@ -1,12 +0,0 @@
1
- // eslint-disable-next-line unicorn/no-useless-undefined
2
- const noop = () => undefined;
3
-
4
- const consolePrefix = (prefix) =>
5
- // eslint-disable-next-line no-console,implicit-arrow-linebreak,no-undef
6
- ((process.env.NO_LOGS && process.env.NO_LOGS === "true") ? noop : (file) => console.log(`${prefix}${file}`));
7
-
8
- module.exports = {
9
- consolePlugin: consolePrefix(" eslint-plugin-"),
10
- consoleConfig: consolePrefix(" eslint-config-"),
11
- consoleLog: consolePrefix(""),
12
- };
@@ -1,115 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // eslint-disable-next-line no-undef
4
- if (process.env.CI) {
5
- // eslint-disable-next-line no-undef
6
- process.exit(0);
7
- }
8
-
9
- const { writeFile, existsSync } = require("node:fs");
10
- // eslint-disable-next-line unicorn/import-style
11
- const { resolve, join } = require("node:path");
12
- const { promisify } = require("node:util");
13
-
14
- const writeFileAsync = promisify(writeFile);
15
-
16
- // get the path to the host project.
17
- // eslint-disable-next-line no-undef
18
- const projectPath = resolve(process.cwd(), "..", "..", "..");
19
-
20
- console.log("Configuring @anolilab/eslint-config", projectPath, "\n");
21
-
22
- /**
23
- * Writes .eslintrc.cjs if it doesn't exist. Warns if it exists.
24
- */
25
- const writeEslintRc = () => {
26
- const eslintPath = join(projectPath, ".eslintrc.cjs");
27
- const content = `
28
- /** @ts-check */
29
- /** @type {import('eslint').Linter.Config} */
30
- module.exports = {
31
- root: true,
32
- extends: ["@anolilab/eslint-config"],
33
- ignorePatterns: ["!**/*"],
34
- env: {
35
- // Your environments (which contains several predefined global variables)
36
- // browser: true,
37
- // node: true,
38
- // mocha: true,
39
- // jest: true,
40
- // jquery: true
41
- },
42
- globals: {
43
- // Your global variables (setting to false means it's not allowed to be reassigned)
44
- // myGlobal: false
45
- },
46
- rules: {
47
- // Customize your rules
48
- },
49
- overrides: [
50
- {
51
- files: ["*.ts", "*.tsx", "*.js", "*.jsx"],
52
- // Set parserOptions.project for the project to allow TypeScript to create the type-checker behind the scenes when we run linting
53
- "parserOptions": {
54
- },
55
- rules: {},
56
- },
57
- {
58
- files: ["*.ts", "*.tsx"],
59
- // Set parserOptions.project for the project to allow TypeScript to create the type-checker behind the scenes when we run linting
60
- "parserOptions": {
61
- },
62
- rules: {},
63
- },
64
- {
65
- files: ["*.js", "*.jsx"],
66
- rules: {},
67
- },
68
- ],
69
- };
70
- `;
71
-
72
- if (existsSync(eslintPath)) {
73
- console.warn(`⚠️ .eslintrc.cjs already exists;
74
- Make sure that it includes the following for @anolilab/eslint-config'
75
- to work as it should: { extends: ["@anolilab/eslint-config"] }.`);
76
-
77
- return Promise.resolve();
78
- }
79
-
80
- return writeFileAsync(eslintPath, content, "utf-8");
81
- };
82
-
83
- /**
84
- * Writes .eslintignore if it doesn't exist. Warns if it exists.
85
- */
86
- const writeEslintIgnore = () => {
87
- const eslintIgnorePath = join(projectPath, ".eslintignore");
88
-
89
- if (existsSync(eslintIgnorePath)) {
90
- console.warn("⚠️ .eslintignore already exists");
91
-
92
- return Promise.resolve();
93
- }
94
-
95
- return writeFileAsync(eslintIgnorePath, "", "utf-8");
96
- };
97
-
98
- // eslint-disable-next-line unicorn/prefer-top-level-await
99
- (async () => {
100
- try {
101
- // eslint-disable-next-line compat/compat
102
- await Promise.all([writeEslintRc(), writeEslintIgnore()]);
103
-
104
- console.log("😎 Everything went well, have fun!");
105
-
106
- // eslint-disable-next-line no-undef
107
- process.exit(0);
108
- } catch (error) {
109
- console.log("😬 something went wrong:");
110
- console.error(error.message);
111
-
112
- // eslint-disable-next-line no-undef
113
- process.exit(1);
114
- }
115
- })();
@@ -1,21 +0,0 @@
1
- const { consoleLog, consolePlugin } = require("./loggers.cjs");
2
-
3
- module.exports = function showLoaded(rules, extraInstallPackage) {
4
- const all = [...rules];
5
-
6
- extraInstallPackage.forEach(([rule, package_]) => {
7
- if (all.includes(rule)) {
8
- all.push(package_);
9
- }
10
- });
11
-
12
- consoleLog("\n@anolilab/eslint-config loaded the following packages:\n");
13
-
14
- all.forEach((element) => {
15
- if (element[0] === "@" || element === "typescript") {
16
- consoleLog(` ${element}`);
17
- } else {
18
- consolePlugin(element);
19
- }
20
- });
21
- };
package/lib/utils.cjs DELETED
@@ -1,90 +0,0 @@
1
- // From kcd-scripts
2
- const { existsSync, realpathSync } = require("node:fs");
3
- // eslint-disable-next-line unicorn/import-style
4
- const { dirname, join } = require("node:path");
5
- // eslint-disable-next-line lodash/import-scope
6
- const has = require("lodash.has");
7
- const readPkgUp = require("read-pkg-up");
8
-
9
- function arrify(value) {
10
- if (value === null || value === undefined) {
11
- return [];
12
- }
13
-
14
- if (Array.isArray(value)) {
15
- return value;
16
- }
17
-
18
- if (typeof value === "string") {
19
- return [value];
20
- }
21
-
22
- if (typeof value[Symbol.iterator] === "function") {
23
- return [...value];
24
- }
25
-
26
- return [value];
27
- }
28
-
29
- // eslint-disable-next-line @typescript-eslint/naming-convention
30
- const { packageJson: package_, path: packagePath } = readPkgUp.sync({
31
- // eslint-disable-next-line no-undef
32
- cwd: realpathSync(process.cwd()),
33
- });
34
- // eslint-disable-next-line max-len
35
- const hasPackageProperty = (properties) => arrify(properties).some((property) => has(package_, property)); // eslint-disable-line lodash-fp/no-extraneous-function-wrapping
36
-
37
- const hasPackageSubProperty = (packageProperty) => (properties) => hasPackageProperty(arrify(properties).map((p) => `${packageProperty}.${p}`));
38
-
39
- function environmentIsSet(name) {
40
- return (
41
- // eslint-disable-next-line no-undef
42
- process.env.hasOwnProperty(name) // eslint-disable-line no-prototype-builtins
43
- // eslint-disable-next-line no-undef
44
- && process.env[name]
45
- // eslint-disable-next-line no-undef
46
- && process.env[name] !== "undefined"
47
- );
48
- }
49
-
50
- // eslint-disable-next-line unicorn/prevent-abbreviations
51
- function parseEnvironment(name, def) {
52
- if (environmentIsSet(name)) {
53
- try {
54
- // eslint-disable-next-line no-undef
55
- return JSON.parse(process.env[name]);
56
- } catch {
57
- // eslint-disable-next-line no-undef
58
- return process.env[name];
59
- }
60
- }
61
- return def;
62
- }
63
-
64
- const appDirectory = dirname(packagePath);
65
- const fromRoot = (...p) => join(appDirectory, ...p);
66
- const hasFile = (...p) => existsSync(fromRoot(...p));
67
- const hasScript = hasPackageSubProperty("scripts");
68
- const hasPeerDep = hasPackageSubProperty("peerDependencies");
69
- const hasDep = hasPackageSubProperty("dependencies");
70
- const hasDevelopmentDep = hasPackageSubProperty("devDependencies");
71
- const hasAnyDep = (arguments_) => [hasDep, hasDevelopmentDep, hasPeerDep].some((function_) => function_(arguments_));
72
- const hasTypescript = hasAnyDep("typescript") && hasFile("tsconfig.json");
73
-
74
- module.exports = {
75
- uniq: function uniq(array) {
76
- return [...new Set(array)];
77
- },
78
- hasPkgProp: hasPackageProperty,
79
- parseEnv: parseEnvironment,
80
- pkg: package_,
81
- appDirectory,
82
- fromRoot,
83
- hasFile,
84
- hasScript,
85
- hasPeerDep,
86
- hasDep,
87
- hasDevelopmentDep,
88
- hasAnyDep,
89
- hasTypescript,
90
- };