@touchspot/eslint-config 3.0.4 → 4.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 (115) hide show
  1. package/README.md +94 -0
  2. package/dist/lib/addons/next.d.ts +2 -0
  3. package/dist/lib/addons/next.d.ts.map +1 -0
  4. package/dist/lib/addons/next.js +2 -0
  5. package/dist/lib/addons/next.js.map +1 -0
  6. package/dist/lib/addons/react.d.ts +2 -0
  7. package/dist/lib/addons/react.d.ts.map +1 -0
  8. package/dist/lib/addons/react.js +2 -0
  9. package/dist/lib/addons/react.js.map +1 -0
  10. package/dist/lib/addons/tailwindcss.d.ts +2 -0
  11. package/dist/lib/addons/tailwindcss.d.ts.map +1 -0
  12. package/dist/lib/addons/tailwindcss.js +2 -0
  13. package/dist/lib/addons/tailwindcss.js.map +1 -0
  14. package/dist/lib/lib.d.ts +0 -4
  15. package/dist/lib/lib.d.ts.map +1 -1
  16. package/dist/lib/lib.js.map +1 -1
  17. package/dist/src/addons/next.d.ts +2 -0
  18. package/dist/src/addons/next.d.ts.map +1 -0
  19. package/dist/src/addons/next.js +8 -0
  20. package/dist/src/addons/next.js.map +1 -0
  21. package/dist/src/addons/react.d.ts +2 -0
  22. package/dist/src/addons/react.d.ts.map +1 -0
  23. package/dist/src/addons/react.js +7 -0
  24. package/dist/src/addons/react.js.map +1 -0
  25. package/dist/src/addons/tailwindcss.d.ts +5 -0
  26. package/dist/src/addons/tailwindcss.d.ts.map +1 -0
  27. package/dist/src/addons/tailwindcss.js +4 -0
  28. package/dist/src/addons/tailwindcss.js.map +1 -0
  29. package/dist/src/config.d.ts +5 -6
  30. package/dist/src/config.d.ts.map +1 -1
  31. package/dist/src/config.js +16 -19
  32. package/dist/src/config.js.map +1 -1
  33. package/dist/src/env.d.ts +2 -3
  34. package/dist/src/env.d.ts.map +1 -1
  35. package/dist/src/env.js.map +1 -1
  36. package/dist/src/rulesets/better-tailwindcss.d.ts +20 -0
  37. package/dist/src/rulesets/better-tailwindcss.d.ts.map +1 -0
  38. package/dist/src/{presets/tailwindcss.js → rulesets/better-tailwindcss.js} +10 -6
  39. package/dist/src/rulesets/better-tailwindcss.js.map +1 -0
  40. package/dist/src/rulesets/check-file.d.ts +3 -0
  41. package/dist/src/rulesets/check-file.d.ts.map +1 -0
  42. package/dist/src/rulesets/check-file.js +22 -0
  43. package/dist/src/rulesets/check-file.js.map +1 -0
  44. package/dist/src/rulesets/eslint.d.ts +2 -0
  45. package/dist/src/rulesets/eslint.d.ts.map +1 -0
  46. package/dist/src/rulesets/eslint.js +25 -0
  47. package/dist/src/rulesets/eslint.js.map +1 -0
  48. package/dist/src/rulesets/functional.d.ts +3 -0
  49. package/dist/src/rulesets/functional.d.ts.map +1 -0
  50. package/dist/src/rulesets/functional.js +37 -0
  51. package/dist/src/rulesets/functional.js.map +1 -0
  52. package/dist/src/rulesets/import-x.d.ts +3 -0
  53. package/dist/src/rulesets/import-x.d.ts.map +1 -0
  54. package/dist/src/rulesets/import-x.js +52 -0
  55. package/dist/src/rulesets/import-x.js.map +1 -0
  56. package/dist/src/rulesets/next.d.ts +2 -0
  57. package/dist/src/rulesets/next.d.ts.map +1 -0
  58. package/dist/src/rulesets/next.js +8 -0
  59. package/dist/src/rulesets/next.js.map +1 -0
  60. package/dist/src/rulesets/no-relative-import-paths.d.ts +2 -0
  61. package/dist/src/rulesets/no-relative-import-paths.d.ts.map +1 -0
  62. package/dist/src/rulesets/no-relative-import-paths.js +14 -0
  63. package/dist/src/rulesets/no-relative-import-paths.js.map +1 -0
  64. package/dist/src/rulesets/perfectionist.d.ts +2 -0
  65. package/dist/src/rulesets/perfectionist.d.ts.map +1 -0
  66. package/dist/src/rulesets/perfectionist.js +31 -0
  67. package/dist/src/rulesets/perfectionist.js.map +1 -0
  68. package/dist/src/rulesets/react-hooks.d.ts +2 -0
  69. package/dist/src/rulesets/react-hooks.d.ts.map +1 -0
  70. package/dist/src/rulesets/react-hooks.js +13 -0
  71. package/dist/src/rulesets/react-hooks.js.map +1 -0
  72. package/dist/src/rulesets/react.d.ts +2 -0
  73. package/dist/src/rulesets/react.d.ts.map +1 -0
  74. package/dist/src/rulesets/react.js +29 -0
  75. package/dist/src/rulesets/react.js.map +1 -0
  76. package/dist/src/rulesets/tseslint.d.ts +7 -0
  77. package/dist/src/rulesets/tseslint.d.ts.map +1 -0
  78. package/dist/src/rulesets/tseslint.js +81 -0
  79. package/dist/src/rulesets/tseslint.js.map +1 -0
  80. package/dist/src/rulesets/unicorn.d.ts +2 -0
  81. package/dist/src/rulesets/unicorn.d.ts.map +1 -0
  82. package/dist/src/rulesets/unicorn.js +17 -0
  83. package/dist/src/rulesets/unicorn.js.map +1 -0
  84. package/dist/src/rulesets/unused-imports.d.ts +2 -0
  85. package/dist/src/rulesets/unused-imports.d.ts.map +1 -0
  86. package/dist/src/rulesets/unused-imports.js +18 -0
  87. package/dist/src/rulesets/unused-imports.js.map +1 -0
  88. package/package.json +20 -20
  89. package/dist/lib/presets/next.d.ts +0 -2
  90. package/dist/lib/presets/next.d.ts.map +0 -1
  91. package/dist/lib/presets/next.js +0 -2
  92. package/dist/lib/presets/next.js.map +0 -1
  93. package/dist/lib/presets/react.d.ts +0 -2
  94. package/dist/lib/presets/react.d.ts.map +0 -1
  95. package/dist/lib/presets/react.js +0 -2
  96. package/dist/lib/presets/react.js.map +0 -1
  97. package/dist/lib/presets/tailwindcss.d.ts +0 -2
  98. package/dist/lib/presets/tailwindcss.d.ts.map +0 -1
  99. package/dist/lib/presets/tailwindcss.js +0 -2
  100. package/dist/lib/presets/tailwindcss.js.map +0 -1
  101. package/dist/src/languages.d.ts +0 -4
  102. package/dist/src/languages.d.ts.map +0 -1
  103. package/dist/src/languages.js +0 -239
  104. package/dist/src/languages.js.map +0 -1
  105. package/dist/src/presets/next.d.ts +0 -3
  106. package/dist/src/presets/next.d.ts.map +0 -1
  107. package/dist/src/presets/next.js +0 -35
  108. package/dist/src/presets/next.js.map +0 -1
  109. package/dist/src/presets/react.d.ts +0 -3
  110. package/dist/src/presets/react.d.ts.map +0 -1
  111. package/dist/src/presets/react.js +0 -59
  112. package/dist/src/presets/react.js.map +0 -1
  113. package/dist/src/presets/tailwindcss.d.ts +0 -13
  114. package/dist/src/presets/tailwindcss.d.ts.map +0 -1
  115. package/dist/src/presets/tailwindcss.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,94 @@
1
+ # @touchspot/eslint-config
2
+
3
+ ## Installation
4
+
5
+ ```sh
6
+ pnpm add -D @touchspot/eslint-config eslint typescript
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ ```js
12
+ import config from "@touchspot/eslint-config";
13
+
14
+ export default config({
15
+ tsconfigRootDir: import.meta.dirname,
16
+ });
17
+ ```
18
+
19
+ ### Addons
20
+
21
+ #### React
22
+
23
+ ```js
24
+ import config from "@touchspot/eslint-config";
25
+ import react from "@touchspot/eslint-config/addons/react";
26
+
27
+ export default config(
28
+ {
29
+ tsconfigRootDir: import.meta.dirname,
30
+ },
31
+ react(),
32
+ );
33
+ ```
34
+
35
+ #### Next.js
36
+
37
+ ```js
38
+ import config from "@touchspot/eslint-config";
39
+ import next from "@touchspot/eslint-config/addons/next";
40
+
41
+ export default config(
42
+ {
43
+ tsconfigRootDir: import.meta.dirname,
44
+ },
45
+ next(),
46
+ );
47
+ ```
48
+
49
+ #### Tailwind CSS v4
50
+
51
+ ```js
52
+ import config from "@touchspot/eslint-config";
53
+ import tailwindcss from "@touchspot/eslint-config/addons/tailwindcss";
54
+
55
+ export default config(
56
+ {
57
+ tsconfigRootDir: import.meta.dirname,
58
+ },
59
+ tailwindcss({
60
+ entryPoint: "path/to/css",
61
+ }),
62
+ );
63
+ ```
64
+
65
+ #### Tailwind CSS v3
66
+
67
+ ```js
68
+ import config from "@touchspot/eslint-config";
69
+ import tailwindcss from "@touchspot/eslint-config/addons/tailwindcss";
70
+
71
+ export default config(
72
+ {
73
+ tsconfigRootDir: import.meta.dirname,
74
+ },
75
+ tailwindcss({
76
+ version: 3,
77
+ tailwindConfig: "path/to/config", // default: "tailwind.config.js"
78
+ }),
79
+ );
80
+ ```
81
+
82
+ #### Environment helpers
83
+
84
+ ```js
85
+ import config, { env } from "@touchspot/eslint-config";
86
+
87
+ export default config(
88
+ {
89
+ tsconfigRootDir: import.meta.dirname,
90
+ },
91
+ env.node(),
92
+ env.browser(),
93
+ );
94
+ ```
@@ -0,0 +1,2 @@
1
+ export { nextAddon as default } from "../../src/addons/next.js";
2
+ //# sourceMappingURL=next.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../../lib/addons/next.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,iCAA4B"}
@@ -0,0 +1,2 @@
1
+ export { nextAddon as default } from "../../src/addons/next.js"; // eslint-disable-line import-x/no-default-export
2
+ //# sourceMappingURL=next.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../lib/addons/next.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,iCAA4B,CAAC,iDAAiD"}
@@ -0,0 +1,2 @@
1
+ export { reactAddon as default } from "../../src/addons/react.js";
2
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../lib/addons/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,kCAA6B"}
@@ -0,0 +1,2 @@
1
+ export { reactAddon as default } from "../../src/addons/react.js"; // eslint-disable-line import-x/no-default-export
2
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../lib/addons/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,kCAA6B,CAAC,iDAAiD"}
@@ -0,0 +1,2 @@
1
+ export { tailwindcssAddon as default } from "../../src/addons/tailwindcss.js";
2
+ //# sourceMappingURL=tailwindcss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindcss.d.ts","sourceRoot":"","sources":["../../../lib/addons/tailwindcss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,wCAAmC"}
@@ -0,0 +1,2 @@
1
+ export { tailwindcssAddon as default } from "../../src/addons/tailwindcss.js"; // eslint-disable-line import-x/no-default-export
2
+ //# sourceMappingURL=tailwindcss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindcss.js","sourceRoot":"","sources":["../../../lib/addons/tailwindcss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,wCAAmC,CAAC,iDAAiD"}
package/dist/lib/lib.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- import type * as EslintConfig from "eslint/config";
2
- import type * as TsEslint from "typescript-eslint";
3
- export type Config = EslintConfig.Config | TsEslint.FlatConfig.Config;
4
- export type ConfigArray = Config | Config[] | readonly Config[];
5
1
  export { config as default } from "../src/config.js";
6
2
  export * as env from "../src/env.js";
7
3
  //# sourceMappingURL=lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,YAAY,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;AACtE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAAC;AAEhE,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,yBAAuB;AACnD,OAAO,KAAK,GAAG,sBAAoB"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,yBAAuB;AAEnD,OAAO,KAAK,GAAG,sBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,yBAAuB,CAAC,iDAAiD;AACrG,OAAO,KAAK,GAAG,sBAAoB"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,yBAAuB,CAAC,iDAAiD;AAErG,OAAO,KAAK,GAAG,sBAAoB"}
@@ -0,0 +1,2 @@
1
+ export declare const nextAddon: () => import("eslint/config").Config[];
2
+ //# sourceMappingURL=next.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../../src/addons/next.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS,wCAC6F,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { defineConfig } from "eslint/config";
2
+ import { reactAddon } from "./react.js";
3
+ import * as env from "../env.js";
4
+ import { checkFileRulesetNext } from "../rulesets/check-file.js";
5
+ import { importXRulesetNext } from "../rulesets/import-x.js";
6
+ import { nextRuleset } from "../rulesets/next.js";
7
+ export const nextAddon = () => defineConfig(env.browser(), env.node(), reactAddon(), nextRuleset(), checkFileRulesetNext(), importXRulesetNext());
8
+ //# sourceMappingURL=next.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../../../src/addons/next.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,mBAA6B;AAClD,OAAO,KAAK,GAAG,kBAAoB;AACnC,OAAO,EAAE,oBAAoB,EAAE,kCAAoC;AACnE,OAAO,EAAE,kBAAkB,EAAE,gCAAkC;AAC/D,OAAO,EAAE,WAAW,EAAE,4BAA8B;AAEpD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE,CAC7B,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,oBAAoB,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const reactAddon: () => import("eslint/config").Config[];
2
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/addons/react.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,wCACoE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from "eslint/config";
2
+ import * as env from "../env.js";
3
+ import { functionalRulesetReact } from "../rulesets/functional.js";
4
+ import { reactHooksRuleset } from "../rulesets/react-hooks.js";
5
+ import { reactRuleset } from "../rulesets/react.js";
6
+ export const reactAddon = () => defineConfig(env.browser(), reactRuleset(), reactHooksRuleset(), functionalRulesetReact());
7
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/addons/react.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,GAAG,kBAAoB;AACnC,OAAO,EAAE,sBAAsB,EAAE,kCAAoC;AACrE,OAAO,EAAE,iBAAiB,EAAE,mCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,6BAA+B;AAEtD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE,CAC9B,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,EAAE,sBAAsB,EAAE,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { betterTailwindCSSRulesets } from "../rulesets/better-tailwindcss.js";
2
+ type Options = betterTailwindCSSRulesets.Options;
3
+ export declare const tailwindcssAddon: (options: Options) => import("eslint/config").Config[];
4
+ export {};
5
+ //# sourceMappingURL=tailwindcss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindcss.d.ts","sourceRoot":"","sources":["../../../src/addons/tailwindcss.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,0CAA4C;AAEhF,KAAK,OAAO,GAAG,yBAAyB,CAAC,OAAO,CAAC;AAEjD,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,qCAAqD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { defineConfig } from "eslint/config";
2
+ import { betterTailwindCSSRulesets } from "../rulesets/better-tailwindcss.js";
3
+ export const tailwindcssAddon = (options) => defineConfig(betterTailwindCSSRulesets(options));
4
+ //# sourceMappingURL=tailwindcss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwindcss.js","sourceRoot":"","sources":["../../../src/addons/tailwindcss.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,yBAAyB,EAAE,0CAA4C;AAIhF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
- import type { Config } from "eslint/config";
2
- export declare const config: ({ tsconfigRootDir, allowDefaultProject, ignores, }: {
3
- readonly tsconfigRootDir: string;
4
- readonly allowDefaultProject?: "js" | readonly string[];
5
- readonly ignores?: readonly string[];
6
- }) => readonly Config[];
1
+ import { defineConfig } from "eslint/config";
2
+ import { tseslintRuleset } from "./rulesets/tseslint.js";
3
+ type Options = tseslintRuleset.Options;
4
+ export declare const config: (options: Options, ...addons: Parameters<typeof defineConfig>) => import("eslint/config").Config[];
5
+ export {};
7
6
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,eAAO,MAAM,MAAM,GAAI,oDAIpB;IACF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,IAAI,GAAG,SAAS,MAAM,EAAE,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,KAAG,SAAS,MAAM,EA2CjB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAiB,MAAM,eAAe,CAAC;AAQ5D,OAAO,EAAE,eAAe,EAAE,+BAAkC;AAI5D,KAAK,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;AAEvC,eAAO,MAAM,MAAM,GAAI,SAAS,OAAO,EAAE,GAAG,QAAQ,UAAU,CAAC,OAAO,YAAY,CAAC,qCAyCjF,CAAC"}
@@ -1,39 +1,36 @@
1
1
  import Prettier from "eslint-config-prettier";
2
- import { defineConfig } from "eslint/config";
3
- import * as TSESLint from "typescript-eslint";
4
- import * as languages from "./languages.js";
5
- export const config = ({ tsconfigRootDir, allowDefaultProject = "js", ignores = [".cache", ".turbo", "coverage", "dist"], }) => defineConfig({
6
- name: "@touchspot/eslint-config/config/ignore",
7
- ignores: ignores.map((ignore) => `${ignore}/**`),
8
- }, {
9
- name: "@touchspot/eslint-config/config/linter",
2
+ import { defineConfig, globalIgnores } from "eslint/config";
3
+ import { checkFileRuleset } from "./rulesets/check-file.js";
4
+ import { eslintRuleset } from "./rulesets/eslint.js";
5
+ import { functionalRuleset } from "./rulesets/functional.js";
6
+ import { importXRuleset } from "./rulesets/import-x.js";
7
+ import { noRelativeImportPathsRuleset } from "./rulesets/no-relative-import-paths.js";
8
+ import { perfectionistRuleset } from "./rulesets/perfectionist.js";
9
+ import { tseslintRuleset } from "./rulesets/tseslint.js";
10
+ import { unicornRuleset } from "./rulesets/unicorn.js";
11
+ import { unusedImportsRuleset } from "./rulesets/unused-imports.js";
12
+ export const config = (options, ...addons) => defineConfig(globalIgnores([".cache/", ".turbo/", "coverage/", "dist/"]), {
13
+ name: "@touchspot/eslint-config/linter",
10
14
  linterOptions: {
11
15
  reportUnusedDisableDirectives: "error",
12
16
  },
13
17
  }, {
14
- name: "@touchspot/eslint-config/config/parser",
18
+ name: "@touchspot/eslint-config/language",
15
19
  files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
16
20
  languageOptions: {
17
21
  ecmaVersion: "latest",
18
- parser: TSESLint.parser,
19
- parserOptions: {
20
- projectService: {
21
- allowDefaultProject: allowDefaultProject === "js" ? ["*.{js,jsx,mjs,cjs}"] : allowDefaultProject,
22
- },
23
- tsconfigRootDir,
24
- },
25
22
  },
26
23
  }, {
27
- name: "@touchspot/eslint-config/config/esm",
24
+ name: "@touchspot/eslint-config/language/esm",
28
25
  files: ["**/*.{js,jsx,mjs,ts,tsx,mts}"],
29
26
  languageOptions: {
30
27
  sourceType: "module",
31
28
  },
32
29
  }, {
33
- name: "@touchspot/eslint-config/config/cjs",
30
+ name: "@touchspot/eslint-config/language/cjs",
34
31
  files: ["**/*.{cjs,cts}"],
35
32
  languageOptions: {
36
33
  sourceType: "commonjs",
37
34
  },
38
- }, ...languages.javascript(), ...languages.typescript(), Prettier);
35
+ }, eslintRuleset(), tseslintRuleset(options), unicornRuleset(), importXRuleset(), unusedImportsRuleset(), noRelativeImportPathsRuleset(), functionalRuleset(), perfectionistRuleset(), checkFileRuleset(), addons, Prettier);
39
36
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAE9C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAE5C,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACtB,eAAe,EACf,mBAAmB,GAAG,IAAI,EAC1B,OAAO,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,GAKlD,EAAqB,EAAE,CACvB,YAAY,CACX;IACC,IAAI,EAAE,wCAAwC;IAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,MAAM,KAAK,CAAC;CAChD,EACD;IACC,IAAI,EAAE,wCAAwC;IAC9C,aAAa,EAAE;QACd,6BAA6B,EAAE,OAAO;KACtC;CACD,EACD;IACC,IAAI,EAAE,wCAAwC;IAC9C,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,eAAe,EAAE;QAChB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,aAAa,EAAE;YACd,cAAc,EAAE;gBACf,mBAAmB,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,mBAAmB;aAChG;YACD,eAAe;SACf;KACD;CACD,EACD;IACC,IAAI,EAAE,qCAAqC;IAC3C,KAAK,EAAE,CAAC,8BAA8B,CAAC;IACvC,eAAe,EAAE;QAChB,UAAU,EAAE,QAAQ;KACpB;CACD,EACD;IACC,IAAI,EAAE,qCAAqC;IAC3C,KAAK,EAAE,CAAC,gBAAgB,CAAC;IACzB,eAAe,EAAE;QAChB,UAAU,EAAE,UAAU;KACtB;CACD,EACD,GAAG,SAAS,CAAC,UAAU,EAAE,EACzB,GAAG,SAAS,CAAC,UAAU,EAAE,EACzB,QAAQ,CACR,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,iCAAoC;AAC/D,OAAO,EAAE,aAAa,EAAE,6BAAgC;AACxD,OAAO,EAAE,iBAAiB,EAAE,iCAAoC;AAChE,OAAO,EAAE,cAAc,EAAE,+BAAkC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,+CAAkD;AACzF,OAAO,EAAE,oBAAoB,EAAE,oCAAuC;AACtE,OAAO,EAAE,eAAe,EAAE,+BAAkC;AAC5D,OAAO,EAAE,cAAc,EAAE,8BAAiC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,qCAAwC;AAIvE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,GAAG,MAAuC,EAAE,EAAE,CACtF,YAAY,CACX,aAAa,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,EAC3D;IACC,IAAI,EAAE,iCAAiC;IACvC,aAAa,EAAE;QACd,6BAA6B,EAAE,OAAO;KACtC;CACD,EACD;IACC,IAAI,EAAE,mCAAmC;IACzC,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,eAAe,EAAE;QAChB,WAAW,EAAE,QAAQ;KACrB;CACD,EACD;IACC,IAAI,EAAE,uCAAuC;IAC7C,KAAK,EAAE,CAAC,8BAA8B,CAAC;IACvC,eAAe,EAAE;QAChB,UAAU,EAAE,QAAQ;KACpB;CACD,EACD;IACC,IAAI,EAAE,uCAAuC;IAC7C,KAAK,EAAE,CAAC,gBAAgB,CAAC;IACzB,eAAe,EAAE;QAChB,UAAU,EAAE,UAAU;KACtB;CACD,EACD,aAAa,EAAE,EACf,eAAe,CAAC,OAAO,CAAC,EACxB,cAAc,EAAE,EAChB,cAAc,EAAE,EAChB,oBAAoB,EAAE,EACtB,4BAA4B,EAAE,EAC9B,iBAAiB,EAAE,EACnB,oBAAoB,EAAE,EACtB,gBAAgB,EAAE,EAClB,MAAM,EACN,QAAQ,CACR,CAAC"}
package/dist/src/env.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- import type { Config } from "eslint/config";
2
1
  export declare const browser: ({ files, }?: {
3
2
  readonly files?: readonly string[];
4
- }) => readonly Config[];
3
+ }) => import("eslint/config").Config[];
5
4
  export declare const node: ({ files, }?: {
6
5
  readonly files?: readonly string[];
7
- }) => readonly Config[];
6
+ }) => import("eslint/config").Config[];
8
7
  //# sourceMappingURL=env.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,eAAO,MAAM,OAAO,GAAI,aAErB;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,KAAG,SAAS,MAAM,EASrB,CAAC;AAEJ,eAAO,MAAM,IAAI,GAAI,aAElB;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,KAAG,SAAS,MAAM,EASrB,CAAC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,GAAI,aAErB;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,qCASH,CAAC;AAEJ,eAAO,MAAM,IAAI,GAAI,aAElB;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,qCASH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACvB,KAAK,GAAG,CAAC,sCAAsC,CAAC,MAG7C,EAAE,EAAqB,EAAE,CAC5B,YAAY,CAAC;IACZ,IAAI,EAAE,sCAAsC;IAC5C,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjB,eAAe,EAAE;QAChB,OAAO,EAAE;YACR,GAAG,OAAO,CAAC,OAAO;SAClB;KACD;CACD,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EACpB,KAAK,GAAG,CAAC,sCAAsC,CAAC,MAG7C,EAAE,EAAqB,EAAE,CAC5B,YAAY,CAAC;IACZ,IAAI,EAAE,mCAAmC;IACzC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjB,eAAe,EAAE;QAChB,OAAO,EAAE;YACR,GAAG,OAAO,CAAC,IAAI;SACf;KACD;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EACvB,KAAK,GAAG,CAAC,sCAAsC,CAAC,MAG7C,EAAE,EAAE,EAAE,CACT,YAAY,CAAC;IACZ,IAAI,EAAE,sCAAsC;IAC5C,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjB,eAAe,EAAE;QAChB,OAAO,EAAE;YACR,GAAG,OAAO,CAAC,OAAO;SAClB;KACD;CACD,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EACpB,KAAK,GAAG,CAAC,sCAAsC,CAAC,MAG7C,EAAE,EAAE,EAAE,CACT,YAAY,CAAC;IACZ,IAAI,EAAE,mCAAmC;IACzC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;IACjB,eAAe,EAAE;QAChB,OAAO,EAAE;YACR,GAAG,OAAO,CAAC,IAAI;SACf;KACD;CACD,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Matcher } from "eslint-plugin-better-tailwindcss/api/types";
2
+ export declare namespace betterTailwindCSSRulesets {
3
+ type CommonOptions = {
4
+ readonly attributes?: readonly Matcher[] | undefined;
5
+ readonly callees?: readonly Matcher[] | undefined;
6
+ readonly variables?: readonly Matcher[] | undefined;
7
+ readonly tags?: readonly Matcher[] | undefined;
8
+ };
9
+ type V4Options = {
10
+ readonly version?: 4;
11
+ readonly entryPoint: string;
12
+ };
13
+ type V3Options = {
14
+ readonly version: 3;
15
+ readonly tailwindConfig?: string;
16
+ };
17
+ type Options = CommonOptions & (V3Options | V4Options);
18
+ }
19
+ export declare const betterTailwindCSSRulesets: ({ attributes, callees, variables, tags, ...options }: betterTailwindCSSRulesets.Options) => import("eslint/config").Config[];
20
+ //# sourceMappingURL=better-tailwindcss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-tailwindcss.d.ts","sourceRoot":"","sources":["../../../src/rulesets/better-tailwindcss.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4CAA4C,CAAC;AAG1E,MAAM,CAAC,OAAO,WAAW,yBAAyB,CAAC;IAClD,KAAK,aAAa,GAAG;QACpB,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;QACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;QAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;QACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;KAC/C,CAAC;IAEF,KAAK,SAAS,GAAG;QAChB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF,KAAK,SAAS,GAAG;QAChB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IAEF,KAAK,OAAO,GAAG,aAAa,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,yBAAyB,GAAI,sDAMvC,yBAAyB,CAAC,OAAO,qCA+BjC,CAAC"}
@@ -1,15 +1,16 @@
1
1
  import BetterTailwindCSS from "eslint-plugin-better-tailwindcss";
2
2
  import { defineConfig } from "eslint/config";
3
- export const tailwindcss = ({ entryPoint, tailwindConfig, attributes, callees, variables, tags, } = {}) => defineConfig({
4
- name: "@touchspot/eslint-config/presets/tailwindcss/tailwindcss",
3
+ export const betterTailwindCSSRulesets = ({ attributes, callees, variables, tags, ...options }) => defineConfig({
4
+ name: "@touchspot/eslint-config/rulesets/better-tailwindcss",
5
5
  files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
6
6
  plugins: {
7
7
  "better-tailwindcss": BetterTailwindCSS,
8
8
  },
9
9
  settings: {
10
10
  "better-tailwindcss": {
11
- ...(entryPoint == null ? null : { entryPoint }),
12
- ...(tailwindConfig == null ? null : { tailwindConfig }),
11
+ ...(options.version === 3
12
+ ? { tailwindConfig: options.tailwindConfig ?? "tailwind.config.js" }
13
+ : { entryPoint: options.entryPoint }),
13
14
  ...(attributes == null ? null : { attributes }),
14
15
  ...(callees == null ? null : { callees }),
15
16
  ...(variables == null ? null : { variables }),
@@ -17,14 +18,17 @@ export const tailwindcss = ({ entryPoint, tailwindConfig, attributes, callees, v
17
18
  },
18
19
  },
19
20
  rules: {
20
- ...BetterTailwindCSS.configs["recommended-error"]?.rules,
21
21
  "better-tailwindcss/enforce-consistent-class-order": "off",
22
22
  "better-tailwindcss/enforce-consistent-important-position": "error",
23
23
  "better-tailwindcss/enforce-consistent-line-wrapping": "off",
24
24
  "better-tailwindcss/enforce-consistent-variable-syntax": "error",
25
25
  "better-tailwindcss/enforce-shorthand-classes": "error",
26
+ "better-tailwindcss/no-conflicting-classes": "error",
26
27
  "better-tailwindcss/no-deprecated-classes": "error",
28
+ "better-tailwindcss/no-duplicate-classes": "error",
29
+ "better-tailwindcss/no-restricted-classes": "off",
27
30
  "better-tailwindcss/no-unnecessary-whitespace": ["error", { allowMultiline: false }],
31
+ "better-tailwindcss/no-unregistered-classes": "error",
28
32
  },
29
33
  });
30
- //# sourceMappingURL=tailwindcss.js.map
34
+ //# sourceMappingURL=better-tailwindcss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"better-tailwindcss.js","sourceRoot":"","sources":["../../../src/rulesets/better-tailwindcss.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAuB7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACzC,UAAU,EACV,OAAO,EACP,SAAS,EACT,IAAI,EACJ,GAAG,OAAO,EACyB,EAAE,EAAE,CACvC,YAAY,CAAC;IACZ,IAAI,EAAE,sDAAsD;IAC5D,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,OAAO,EAAE;QACR,oBAAoB,EAAE,iBAAiB;KACvC;IACD,QAAQ,EAAE;QACT,oBAAoB,EAAE;YACrB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC;gBACxB,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,oBAAoB,EAAE;gBACpE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACtC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;YACzC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;SACnC;KACD;IACD,KAAK,EAAE;QACN,mDAAmD,EAAE,KAAK;QAC1D,0DAA0D,EAAE,OAAO;QACnE,qDAAqD,EAAE,KAAK;QAC5D,uDAAuD,EAAE,OAAO;QAChE,8CAA8C,EAAE,OAAO;QACvD,2CAA2C,EAAE,OAAO;QACpD,0CAA0C,EAAE,OAAO;QACnD,yCAAyC,EAAE,OAAO;QAClD,0CAA0C,EAAE,KAAK;QACjD,8CAA8C,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QACpF,4CAA4C,EAAE,OAAO;KACrD;CACD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const checkFileRuleset: () => import("eslint/config").Config[];
2
+ export declare const checkFileRulesetNext: () => import("eslint/config").Config[];
3
+ //# sourceMappingURL=check-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-file.d.ts","sourceRoot":"","sources":["../../../src/rulesets/check-file.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,wCAY1B,CAAC;AAEJ,eAAO,MAAM,oBAAoB,wCAO9B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import CheckFile from "eslint-plugin-check-file";
2
+ import { defineConfig } from "eslint/config";
3
+ export const checkFileRuleset = () => defineConfig({
4
+ name: "@touchspot/eslint-config/rulesets/check-file",
5
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
6
+ ignores: ["**/*.d.*"],
7
+ plugins: {
8
+ "check-file": CheckFile,
9
+ },
10
+ rules: {
11
+ "check-file/folder-naming-convention": ["error", { "**": "KEBAB_CASE" }],
12
+ "check-file/filename-naming-convention": ["error", { "**": "KEBAB_CASE" }, { ignoreMiddleExtensions: true }],
13
+ },
14
+ });
15
+ export const checkFileRulesetNext = () => defineConfig({
16
+ name: "@touchspot/eslint-config/rulesets/check-file/next",
17
+ files: ["{src/,}app/**/*.{ts,tsx}"],
18
+ rules: {
19
+ "check-file/folder-naming-convention": ["error", { "**": "NEXT_JS_APP_ROUTER_CASE" }],
20
+ },
21
+ });
22
+ //# sourceMappingURL=check-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-file.js","sourceRoot":"","sources":["../../../src/rulesets/check-file.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACpC,YAAY,CAAC;IACZ,IAAI,EAAE,8CAA8C;IACpD,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,OAAO,EAAE;QACR,YAAY,EAAE,SAAS;KACvB;IACD,KAAK,EAAE;QACN,qCAAqC,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QACxE,uCAAuC,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;KAC5G;CACD,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CACxC,YAAY,CAAC;IACZ,IAAI,EAAE,mDAAmD;IACzD,KAAK,EAAE,CAAC,0BAA0B,CAAC;IACnC,KAAK,EAAE;QACN,qCAAqC,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;KACrF;CACD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const eslintRuleset: () => import("eslint/config").Config[];
2
+ //# sourceMappingURL=eslint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["../../../src/rulesets/eslint.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,wCAsBvB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import ESLint from "@eslint/js";
2
+ import { defineConfig } from "eslint/config";
3
+ export const eslintRuleset = () => defineConfig({
4
+ name: "@touchspot/eslint-config/rulesets/eslint",
5
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
6
+ extends: [ESLint.configs.recommended],
7
+ rules: {
8
+ "arrow-body-style": ["error"],
9
+ eqeqeq: ["error", "always", { null: "never" }],
10
+ "max-params": "error",
11
+ "no-console": ["warn", { allow: ["warn", "error"] }],
12
+ "no-lone-blocks": "error",
13
+ "no-lonely-if": "error",
14
+ "no-loop-func": "error",
15
+ "no-param-reassign": "error",
16
+ "no-restricted-imports": [
17
+ "error",
18
+ { patterns: [{ group: ["**/_*", "!./_*"], message: "Do not import directory-private module." }] },
19
+ ],
20
+ "no-useless-rename": "error",
21
+ "object-shorthand": "error",
22
+ "prefer-destructuring": "error",
23
+ },
24
+ });
25
+ //# sourceMappingURL=eslint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../src/rulesets/eslint.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CACjC,YAAY,CAAC;IACZ,IAAI,EAAE,0CAA0C;IAChD,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;IACrC,KAAK,EAAE;QACN,kBAAkB,EAAE,CAAC,OAAO,CAAC;QAC7B,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC9C,YAAY,EAAE,OAAO;QACrB,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACpD,gBAAgB,EAAE,OAAO;QACzB,cAAc,EAAE,OAAO;QACvB,cAAc,EAAE,OAAO;QACvB,mBAAmB,EAAE,OAAO;QAC5B,uBAAuB,EAAE;YACxB,OAAO;YACP,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC,EAAE;SACjG;QACD,mBAAmB,EAAE,OAAO;QAC5B,kBAAkB,EAAE,OAAO;QAC3B,sBAAsB,EAAE,OAAO;KAC/B;CACD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const functionalRuleset: () => import("eslint/config").Config[];
2
+ export declare const functionalRulesetReact: () => import("eslint/config").Config[];
3
+ //# sourceMappingURL=functional.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional.d.ts","sourceRoot":"","sources":["../../../src/rulesets/functional.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,wCAmB3B,CAAC;AAEJ,eAAO,MAAM,sBAAsB,wCAehC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import Functional from "eslint-plugin-functional";
2
+ import { defineConfig } from "eslint/config";
3
+ export const functionalRuleset = () => defineConfig({
4
+ name: "@touchspot/eslint-config/rulesets/functional",
5
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
6
+ ignores: ["**/*.d.*"],
7
+ plugins: {
8
+ functional: Functional,
9
+ },
10
+ rules: {
11
+ "functional/immutable-data": [
12
+ "error",
13
+ {
14
+ ignoreImmediateMutation: true,
15
+ ignoreNonConstDeclarations: { treatParametersAsConst: true },
16
+ },
17
+ ],
18
+ "functional/prefer-property-signatures": "error",
19
+ "functional/prefer-readonly-type": "error",
20
+ },
21
+ });
22
+ export const functionalRulesetReact = () => defineConfig({
23
+ name: "@touchspot/eslint-config/rulesets/functional/react",
24
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
25
+ ignores: ["**/*.d.*"],
26
+ rules: {
27
+ "functional/immutable-data": [
28
+ "error",
29
+ {
30
+ ignoreImmediateMutation: true,
31
+ ignoreNonConstDeclarations: { treatParametersAsConst: true },
32
+ ignoreAccessorPattern: ["ref.current", "*Ref.current", "*Atom.*"],
33
+ },
34
+ ],
35
+ },
36
+ });
37
+ //# sourceMappingURL=functional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functional.js","sourceRoot":"","sources":["../../../src/rulesets/functional.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CACrC,YAAY,CAAC;IACZ,IAAI,EAAE,8CAA8C;IACpD,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,OAAO,EAAE;QACR,UAAU,EAAE,UAAoB;KAChC;IACD,KAAK,EAAE;QACN,2BAA2B,EAAE;YAC5B,OAAO;YACP;gBACC,uBAAuB,EAAE,IAAI;gBAC7B,0BAA0B,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE;aAC5D;SACD;QACD,uCAAuC,EAAE,OAAO;QAChD,iCAAiC,EAAE,OAAO;KAC1C;CACD,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAC1C,YAAY,CAAC;IACZ,IAAI,EAAE,oDAAoD;IAC1D,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,KAAK,EAAE;QACN,2BAA2B,EAAE;YAC5B,OAAO;YACP;gBACC,uBAAuB,EAAE,IAAI;gBAC7B,0BAA0B,EAAE,EAAE,sBAAsB,EAAE,IAAI,EAAE;gBAC5D,qBAAqB,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC;aACjE;SACD;KACD;CACD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const importXRuleset: () => import("eslint/config").Config[];
2
+ export declare const importXRulesetNext: () => import("eslint/config").Config[];
3
+ //# sourceMappingURL=import-x.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-x.d.ts","sourceRoot":"","sources":["../../../src/rulesets/import-x.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc,wCA8CzB,CAAC;AAEH,eAAO,MAAM,kBAAkB,wCAO5B,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
2
+ import ImportX from "eslint-plugin-import-x";
3
+ import { defineConfig } from "eslint/config";
4
+ export const importXRuleset = () => defineConfig({
5
+ name: "@touchspot/eslint-config/rulesets/import-x",
6
+ files: ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"],
7
+ extends: [ImportX.flatConfigs.recommended],
8
+ settings: {
9
+ "import-x/internal-regex": "^#.+",
10
+ "import-x/resolver-next": [createTypeScriptImportResolver()],
11
+ },
12
+ rules: {
13
+ "import-x/export": "off",
14
+ "import-x/first": "error",
15
+ "import-x/namespace": "off",
16
+ "import-x/newline-after-import": "error",
17
+ "import-x/no-anonymous-default-export": ["error", { allowArray: true, allowObject: true }],
18
+ "import-x/no-duplicates": "error",
19
+ "import-x/no-named-as-default": "off",
20
+ "import-x/no-named-as-default-member": "off",
21
+ "import-x/no-unresolved": "off",
22
+ "import-x/no-useless-path-segments": "error",
23
+ },
24
+ }, {
25
+ name: "@touchspot/eslint-config/rulesets/import-x/typescript",
26
+ files: ["**/*.{ts,tsx,mts,cts}"],
27
+ extends: [ImportX.flatConfigs.typescript],
28
+ rules: {
29
+ "import-x/consistent-type-specifier-style": "error",
30
+ "import-x/no-default-export": "error",
31
+ },
32
+ }, {
33
+ name: "@touchspot/eslint-config/rulesets/import-x/typescript/allow-default-export",
34
+ files: ["*.config.ts", "*.config.*.ts", "**/*.d.*"],
35
+ rules: {
36
+ "import-x/no-default-export": "off",
37
+ },
38
+ }, {
39
+ name: "@touchspot/eslint-config/rulesets/import-x/cjs",
40
+ files: ["**/*.{cjs,cts}"],
41
+ rules: {
42
+ "import-x/no-import-module-exports": "error",
43
+ },
44
+ });
45
+ export const importXRulesetNext = () => defineConfig({
46
+ name: "@touchspot/eslint-config/rulesets/import-x/next",
47
+ files: ["{src/,}app/**/*.{ts,tsx}"],
48
+ rules: {
49
+ "import-x/no-default-export": "off",
50
+ },
51
+ });
52
+ //# sourceMappingURL=import-x.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-x.js","sourceRoot":"","sources":["../../../src/rulesets/import-x.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAClC,YAAY,CACX;IACC,IAAI,EAAE,4CAA4C;IAClD,KAAK,EAAE,CAAC,sCAAsC,CAAC;IAC/C,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,WAA2B,CAAC;IAC1D,QAAQ,EAAE;QACT,yBAAyB,EAAE,MAAM;QACjC,wBAAwB,EAAE,CAAC,8BAA8B,EAAE,CAAC;KAC5D;IACD,KAAK,EAAE;QACN,iBAAiB,EAAE,KAAK;QACxB,gBAAgB,EAAE,OAAO;QACzB,oBAAoB,EAAE,KAAK;QAC3B,+BAA+B,EAAE,OAAO;QACxC,sCAAsC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC1F,wBAAwB,EAAE,OAAO;QACjC,8BAA8B,EAAE,KAAK;QACrC,qCAAqC,EAAE,KAAK;QAC5C,wBAAwB,EAAE,KAAK;QAC/B,mCAAmC,EAAE,OAAO;KAC5C;CACD,EACD;IACC,IAAI,EAAE,uDAAuD;IAC7D,KAAK,EAAE,CAAC,uBAAuB,CAAC;IAChC,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,UAA0B,CAAC;IACzD,KAAK,EAAE;QACN,0CAA0C,EAAE,OAAO;QACnD,4BAA4B,EAAE,OAAO;KACrC;CACD,EACD;IACC,IAAI,EAAE,4EAA4E;IAClF,KAAK,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,UAAU,CAAC;IACnD,KAAK,EAAE;QACN,4BAA4B,EAAE,KAAK;KACnC;CACD,EACD;IACC,IAAI,EAAE,gDAAgD;IACtD,KAAK,EAAE,CAAC,gBAAgB,CAAC;IACzB,KAAK,EAAE;QACN,mCAAmC,EAAE,OAAO;KAC5C;CACD,CACD,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE,CACtC,YAAY,CAAC;IACZ,IAAI,EAAE,iDAAiD;IACvD,KAAK,EAAE,CAAC,0BAA0B,CAAC;IACnC,KAAK,EAAE;QACN,4BAA4B,EAAE,KAAK;KACnC;CACD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const nextRuleset: () => import("eslint/config").Config[];
2
+ //# sourceMappingURL=next.d.ts.map