js-style-kit 0.2.11 → 0.3.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.
- package/README.md +74 -11
- package/dist/bin/index.js +12 -16
- package/dist/bin/index.js.map +1 -1
- package/dist/index.d.ts +130 -9
- package/dist/index.js +301 -83
- package/dist/index.js.map +1 -1
- package/package.json +19 -14
- package/dist/eslint/base/config.d.ts +0 -17
- package/dist/eslint/base/config.js +0 -457
- package/dist/eslint/base/config.js.map +0 -1
- package/dist/eslint/base/rules.d.ts +0 -18
- package/dist/eslint/base/rules.js +0 -425
- package/dist/eslint/base/rules.js.map +0 -1
- package/dist/eslint/base/types.d.ts +0 -21
- package/dist/eslint/base/types.js +0 -1
- package/dist/eslint/base/types.js.map +0 -1
- package/dist/eslint/constants.d.ts +0 -28
- package/dist/eslint/constants.js +0 -25
- package/dist/eslint/constants.js.map +0 -1
- package/dist/eslint/ignores.d.ts +0 -19
- package/dist/eslint/ignores.js +0 -42
- package/dist/eslint/ignores.js.map +0 -1
- package/dist/eslint/index.d.ts +0 -55
- package/dist/eslint/index.js +0 -1410
- package/dist/eslint/index.js.map +0 -1
- package/dist/eslint/jsdoc/config.d.ts +0 -14
- package/dist/eslint/jsdoc/config.js +0 -109
- package/dist/eslint/jsdoc/config.js.map +0 -1
- package/dist/eslint/jsdoc/rules.d.ts +0 -15
- package/dist/eslint/jsdoc/rules.js +0 -73
- package/dist/eslint/jsdoc/rules.js.map +0 -1
- package/dist/eslint/jsdoc/types.d.ts +0 -52
- package/dist/eslint/jsdoc/types.js +0 -1
- package/dist/eslint/jsdoc/types.js.map +0 -1
- package/dist/eslint/nextjs/config.d.ts +0 -12
- package/dist/eslint/nextjs/config.js +0 -62
- package/dist/eslint/nextjs/config.js.map +0 -1
- package/dist/eslint/nextjs/rules.d.ts +0 -8
- package/dist/eslint/nextjs/rules.js +0 -28
- package/dist/eslint/nextjs/rules.js.map +0 -1
- package/dist/eslint/nextjs/types.d.ts +0 -29
- package/dist/eslint/nextjs/types.js +0 -1
- package/dist/eslint/nextjs/types.js.map +0 -1
- package/dist/eslint/perfectionist/config.d.ts +0 -7
- package/dist/eslint/perfectionist/config.js +0 -65
- package/dist/eslint/perfectionist/config.js.map +0 -1
- package/dist/eslint/perfectionist/rules.d.ts +0 -12
- package/dist/eslint/perfectionist/rules.js +0 -31
- package/dist/eslint/perfectionist/rules.js.map +0 -1
- package/dist/eslint/prefer-arrow-function/config.d.ts +0 -12
- package/dist/eslint/prefer-arrow-function/config.js +0 -45
- package/dist/eslint/prefer-arrow-function/config.js.map +0 -1
- package/dist/eslint/prefer-arrow-function/types.d.ts +0 -17
- package/dist/eslint/prefer-arrow-function/types.js +0 -1
- package/dist/eslint/prefer-arrow-function/types.js.map +0 -1
- package/dist/eslint/react/config.d.ts +0 -18
- package/dist/eslint/react/config.js +0 -186
- package/dist/eslint/react/config.js.map +0 -1
- package/dist/eslint/react/rules.d.ts +0 -26
- package/dist/eslint/react/rules.js +0 -132
- package/dist/eslint/react/rules.js.map +0 -1
- package/dist/eslint/react-compiler/config.d.ts +0 -12
- package/dist/eslint/react-compiler/config.js +0 -39
- package/dist/eslint/react-compiler/config.js.map +0 -1
- package/dist/eslint/react-refresh/config.d.ts +0 -16
- package/dist/eslint/react-refresh/config.js +0 -55
- package/dist/eslint/react-refresh/config.js.map +0 -1
- package/dist/eslint/react-refresh/rules.d.ts +0 -38
- package/dist/eslint/react-refresh/rules.js +0 -19
- package/dist/eslint/react-refresh/rules.js.map +0 -1
- package/dist/eslint/storybook/config.d.ts +0 -13
- package/dist/eslint/storybook/config.js +0 -67
- package/dist/eslint/storybook/config.js.map +0 -1
- package/dist/eslint/testing/config.d.ts +0 -25
- package/dist/eslint/testing/config.js +0 -169
- package/dist/eslint/testing/config.js.map +0 -1
- package/dist/eslint/testing/jest-rules.d.ts +0 -14
- package/dist/eslint/testing/jest-rules.js +0 -44
- package/dist/eslint/testing/jest-rules.js.map +0 -1
- package/dist/eslint/testing/vitest-rules.d.ts +0 -14
- package/dist/eslint/testing/vitest-rules.js +0 -50
- package/dist/eslint/testing/vitest-rules.js.map +0 -1
- package/dist/eslint/turbo/config.d.ts +0 -12
- package/dist/eslint/turbo/config.js +0 -39
- package/dist/eslint/turbo/config.js.map +0 -1
- package/dist/eslint/turbo/types.d.ts +0 -11
- package/dist/eslint/turbo/types.js +0 -1
- package/dist/eslint/turbo/types.js.map +0 -1
- package/dist/eslint/types.d.ts +0 -11
- package/dist/eslint/types.js +0 -1
- package/dist/eslint/types.js.map +0 -1
- package/dist/eslint/typescript/config.d.ts +0 -11
- package/dist/eslint/typescript/config.js +0 -186
- package/dist/eslint/typescript/config.js.map +0 -1
- package/dist/eslint/typescript/rules.d.ts +0 -8
- package/dist/eslint/typescript/rules.js +0 -135
- package/dist/eslint/typescript/rules.js.map +0 -1
- package/dist/eslint/typescript/types.d.ts +0 -7
- package/dist/eslint/typescript/types.js +0 -1
- package/dist/eslint/typescript/types.js.map +0 -1
- package/dist/eslint/unicorn/config.d.ts +0 -11
- package/dist/eslint/unicorn/config.js +0 -113
- package/dist/eslint/unicorn/config.js.map +0 -1
- package/dist/eslint/unicorn/rules.d.ts +0 -8
- package/dist/eslint/unicorn/rules.js +0 -79
- package/dist/eslint/unicorn/rules.js.map +0 -1
- package/dist/modules.d.d.ts +0 -3
- package/dist/modules.d.js +0 -1
- package/dist/modules.d.js.map +0 -1
- package/dist/prettier/index.d.ts +0 -34
- package/dist/prettier/index.js +0 -132
- package/dist/prettier/index.js.map +0 -1
- package/dist/prettier/patch-tailwind-plugin.d.ts +0 -9
- package/dist/prettier/patch-tailwind-plugin.js +0 -72
- package/dist/prettier/patch-tailwind-plugin.js.map +0 -1
- package/dist/utils/is-type.d.ts +0 -44
- package/dist/utils/is-type.js +0 -28
- package/dist/utils/is-type.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/eslint/testing/config.ts","../../../src/eslint/constants.ts","../../../src/eslint/testing/jest-rules.ts","../../../src/eslint/testing/vitest-rules.ts"],"sourcesContent":["import jest from \"eslint-plugin-jest\";\nimport vitest from \"eslint-plugin-vitest\";\n\nimport type { EslintConfigObject } from \"../types.js\";\n\nimport { configNames } from \"../constants.js\";\nimport { jestRules } from \"./jest-rules.js\";\nimport { vitestRules } from \"./vitest-rules.js\";\n\nexport interface TestingConfig {\n filenamePattern?: \"spec\" | \"test\";\n files?: string[];\n formattingRules?: boolean;\n framework?: \"bun\" | \"jest\" | \"node\" | \"vitest\";\n itOrTest?: \"it\" | \"test\";\n}\n\n/**\n * Creates an ESLint configuration object for testing.\n *\n * @param options - Configuration options\n * @param options.files - Files to include in the configuration\n * @param options.filenamePattern - \".test\" or \".spec\" filename pattern\n * @param options.itOrTest - \"it\" or \"test\"\n * @param options.framework - \"jest\" or \"vitest\"\n * @param options.formattingRules - Whether to include formatting rules like padding around blocks\n * @returns ESLint configuration object\n */\nexport const testingConfig = (\n {\n filenamePattern,\n files,\n formattingRules,\n framework,\n itOrTest,\n }: TestingConfig = {\n filenamePattern: \"test\",\n formattingRules: true,\n framework: \"vitest\",\n itOrTest: \"test\",\n },\n): EslintConfigObject => ({\n files: files ?? [\"**/*.{test,spec}.{ts,tsx,js,jsx}\"],\n languageOptions: {\n globals:\n framework === \"vitest\" ?\n { ...vitest.environments.env.globals }\n : jest.environments.globals.globals,\n },\n name: configNames.testing,\n plugins: {\n jest,\n vitest,\n },\n rules: {\n // jest doesn't have a file name rule, so we'll use this one for both\n \"@typescript-eslint/unbound-method\": \"off\",\n \"vitest/consistent-test-filename\": [\n \"warn\",\n {\n allTestPattern: \".*\\\\.(test|spec)\\\\.[tj]sx?$\",\n pattern: `.*\\\\.${filenamePattern}\\\\.[tj]sx?$`,\n },\n ],\n ...(framework === \"vitest\" ? vitestRules(itOrTest) : jestRules(itOrTest)),\n ...(formattingRules ?\n {\n \"jest/padding-around-after-all-blocks\": \"warn\",\n \"jest/padding-around-after-each-blocks\": \"warn\",\n \"jest/padding-around-before-all-blocks\": \"warn\",\n \"jest/padding-around-before-each-blocks\": \"warn\",\n \"jest/padding-around-describe-blocks\": \"warn\",\n \"jest/padding-around-expect-groups\": \"warn\",\n \"jest/padding-around-test-blocks\": \"warn\",\n }\n : {}),\n },\n ...(framework !== \"jest\" && framework !== \"vitest\" ?\n {\n settings: {\n jest: {\n globalPackage: framework === \"node\" ? \"node:test\" : \"bun:test\",\n },\n },\n }\n : {}),\n});\n","/**\n * Debug names for ESLint configuration objects.\n * These names help identify different configuration sections in ESLint's debug output\n * and error messages, making it easier to track which rules come from which config.\n */\nexport const configNames = {\n base: \"base\",\n disableTypeChecked: \"typescript-eslint/disable-type-checked\",\n ignores: \"ignores\",\n jsdoc: \"jsdoc\",\n markdown: \"markdown\",\n nextjs: \"nextjs\",\n perfectionist: \"perfectionist\",\n preferArrowFunction: \"prefer-arrow-function\",\n react: \"react\",\n reactCompiler: \"react-compiler\",\n reactRefresh: \"react-refresh\",\n storybook: \"storybook:stories\",\n storybookConfig: \"storybook:config\",\n testing: \"testing\",\n turbo: \"turbo\",\n typescript: \"tseslint\",\n typescriptTesting: \"tseslint-testing\",\n unicorn: \"unicorn\",\n} as const;\n\nexport type ConfigName = (typeof configNames)[keyof typeof configNames];\n","import type { EslintRuleConfig } from \"../types.js\";\n\ntype JestRules = Record<`jest/${string}`, EslintRuleConfig>;\n\n/**\n * Creates an object containing the ESLint rules for jest.\n *\n * @param itOrTest - \"it\" or \"test\"\n * @returns An object containing the ESLint rules for jest.\n */\nexport const jestRules = (itOrTest: \"it\" | \"test\" = \"test\"): JestRules => ({\n \"jest/consistent-test-it\": [\n \"warn\",\n { fn: itOrTest, withinDescribe: itOrTest },\n ],\n \"jest/expect-expect\": \"warn\",\n \"jest/no-commented-out-tests\": \"warn\",\n \"jest/no-conditional-expect\": \"warn\",\n \"jest/no-conditional-in-test\": \"warn\",\n \"jest/no-disabled-tests\": \"warn\",\n \"jest/no-duplicate-hooks\": \"warn\",\n \"jest/no-focused-tests\": \"warn\",\n \"jest/no-identical-title\": \"warn\",\n \"jest/no-interpolation-in-snapshots\": \"warn\",\n \"jest/no-large-snapshots\": [\"warn\", { inlineMaxSize: 50, maxSize: 100 }],\n \"jest/no-mocks-import\": \"warn\", // Discourage manually importing from __mocks__\n \"jest/no-standalone-expect\": \"warn\",\n \"jest/no-test-prefixes\": \"warn\", // Prefer .only and .skip over f and x\n \"jest/no-test-return-statement\": \"warn\",\n \"jest/prefer-comparison-matcher\": \"warn\",\n \"jest/prefer-equality-matcher\": \"warn\",\n \"jest/prefer-expect-resolves\": \"warn\",\n \"jest/prefer-hooks-in-order\": \"warn\",\n \"jest/prefer-hooks-on-top\": \"warn\",\n \"jest/prefer-lowercase-title\": [\"warn\", { ignoreTopLevelDescribe: true }],\n \"jest/prefer-snapshot-hint\": \"warn\",\n \"jest/prefer-spy-on\": \"warn\",\n \"jest/prefer-strict-equal\": \"warn\",\n \"jest/prefer-to-be\": \"warn\",\n \"jest/prefer-to-contain\": \"warn\",\n \"jest/prefer-to-have-length\": \"warn\",\n \"jest/require-top-level-describe\": \"warn\",\n \"jest/valid-describe-callback\": \"warn\",\n \"jest/valid-expect\": \"warn\",\n \"jest/valid-expect-in-promise\": \"warn\",\n \"jest/valid-title\": \"warn\",\n});\n","import type { EslintRuleConfig } from \"../types.js\";\n\ntype VitestRules = Record<`vitest/${string}`, EslintRuleConfig>;\n\n/**\n * Creates an object containing the ESLint rules for vitest.\n *\n * @param itOrTest - \"it\" or \"test\"\n * @returns An object containing the ESLint rules for vitest.\n */\nexport const vitestRules = (itOrTest: \"it\" | \"test\" = \"test\"): VitestRules => ({\n \"vitest/consistent-test-it\": [\n \"warn\",\n { fn: itOrTest, withinDescribe: itOrTest },\n ],\n \"vitest/expect-expect\": \"warn\",\n \"vitest/no-commented-out-tests\": \"warn\",\n \"vitest/no-conditional-in-test\": \"warn\",\n \"vitest/no-disabled-tests\": \"warn\",\n \"vitest/no-duplicate-hooks\": \"warn\",\n \"vitest/no-focused-tests\": \"warn\",\n \"vitest/no-identical-title\": \"warn\",\n \"vitest/no-import-node-test\": \"warn\",\n \"vitest/no-interpolation-in-snapshots\": \"warn\", // Avoid dynamic snapshots\n \"vitest/no-large-snapshots\": [\"warn\", { inlineMaxSize: 50, maxSize: 100 }], // Keep snapshots manageable\n \"vitest/no-standalone-expect\": \"warn\",\n \"vitest/no-test-return-statement\": \"warn\", // Tests shouldn't return values\n \"vitest/prefer-comparison-matcher\": \"warn\", // Use comparison matchers\n \"vitest/prefer-equality-matcher\": \"warn\", // Use equality matchers\n \"vitest/prefer-hooks-in-order\": \"warn\", // Keep hooks in a predictable order\n \"vitest/prefer-hooks-on-top\": \"warn\", // Keep hooks organized\n \"vitest/prefer-lowercase-title\": [\"warn\", { ignoreTopLevelDescribe: true }], // Consistent casing\n \"vitest/prefer-strict-equal\": \"warn\", // Prefer .toStrictEqual() over .toEqual()\n \"vitest/prefer-to-be\": \"warn\", // Use .toBe() for primitives\n \"vitest/prefer-to-contain\": \"warn\", // Use .toContain() for array/string includes\n \"vitest/prefer-to-have-length\": \"warn\", // Use .toHaveLength() for checking length\n \"vitest/require-local-test-context-for-concurrent-snapshots\": \"warn\",\n \"vitest/require-top-level-describe\": \"warn\", // Group tests in describe blocks\n \"vitest/valid-describe-callback\": \"warn\",\n \"vitest/valid-expect\": \"warn\",\n \"vitest/valid-title\": \"warn\",\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { EslintRuleConfig } from '../types.js';
|
|
2
|
-
import 'eslint';
|
|
3
|
-
import '../constants.js';
|
|
4
|
-
|
|
5
|
-
type JestRules = Record<`jest/${string}`, EslintRuleConfig>;
|
|
6
|
-
/**
|
|
7
|
-
* Creates an object containing the ESLint rules for jest.
|
|
8
|
-
*
|
|
9
|
-
* @param itOrTest - "it" or "test"
|
|
10
|
-
* @returns An object containing the ESLint rules for jest.
|
|
11
|
-
*/
|
|
12
|
-
declare const jestRules: (itOrTest?: "it" | "test") => JestRules;
|
|
13
|
-
|
|
14
|
-
export { jestRules };
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// src/eslint/testing/jest-rules.ts
|
|
2
|
-
var jestRules = (itOrTest = "test") => ({
|
|
3
|
-
"jest/consistent-test-it": [
|
|
4
|
-
"warn",
|
|
5
|
-
{ fn: itOrTest, withinDescribe: itOrTest }
|
|
6
|
-
],
|
|
7
|
-
"jest/expect-expect": "warn",
|
|
8
|
-
"jest/no-commented-out-tests": "warn",
|
|
9
|
-
"jest/no-conditional-expect": "warn",
|
|
10
|
-
"jest/no-conditional-in-test": "warn",
|
|
11
|
-
"jest/no-disabled-tests": "warn",
|
|
12
|
-
"jest/no-duplicate-hooks": "warn",
|
|
13
|
-
"jest/no-focused-tests": "warn",
|
|
14
|
-
"jest/no-identical-title": "warn",
|
|
15
|
-
"jest/no-interpolation-in-snapshots": "warn",
|
|
16
|
-
"jest/no-large-snapshots": ["warn", { inlineMaxSize: 50, maxSize: 100 }],
|
|
17
|
-
"jest/no-mocks-import": "warn",
|
|
18
|
-
// Discourage manually importing from __mocks__
|
|
19
|
-
"jest/no-standalone-expect": "warn",
|
|
20
|
-
"jest/no-test-prefixes": "warn",
|
|
21
|
-
// Prefer .only and .skip over f and x
|
|
22
|
-
"jest/no-test-return-statement": "warn",
|
|
23
|
-
"jest/prefer-comparison-matcher": "warn",
|
|
24
|
-
"jest/prefer-equality-matcher": "warn",
|
|
25
|
-
"jest/prefer-expect-resolves": "warn",
|
|
26
|
-
"jest/prefer-hooks-in-order": "warn",
|
|
27
|
-
"jest/prefer-hooks-on-top": "warn",
|
|
28
|
-
"jest/prefer-lowercase-title": ["warn", { ignoreTopLevelDescribe: true }],
|
|
29
|
-
"jest/prefer-snapshot-hint": "warn",
|
|
30
|
-
"jest/prefer-spy-on": "warn",
|
|
31
|
-
"jest/prefer-strict-equal": "warn",
|
|
32
|
-
"jest/prefer-to-be": "warn",
|
|
33
|
-
"jest/prefer-to-contain": "warn",
|
|
34
|
-
"jest/prefer-to-have-length": "warn",
|
|
35
|
-
"jest/require-top-level-describe": "warn",
|
|
36
|
-
"jest/valid-describe-callback": "warn",
|
|
37
|
-
"jest/valid-expect": "warn",
|
|
38
|
-
"jest/valid-expect-in-promise": "warn",
|
|
39
|
-
"jest/valid-title": "warn"
|
|
40
|
-
});
|
|
41
|
-
export {
|
|
42
|
-
jestRules
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=jest-rules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/eslint/testing/jest-rules.ts"],"sourcesContent":["import type { EslintRuleConfig } from \"../types.js\";\n\ntype JestRules = Record<`jest/${string}`, EslintRuleConfig>;\n\n/**\n * Creates an object containing the ESLint rules for jest.\n *\n * @param itOrTest - \"it\" or \"test\"\n * @returns An object containing the ESLint rules for jest.\n */\nexport const jestRules = (itOrTest: \"it\" | \"test\" = \"test\"): JestRules => ({\n \"jest/consistent-test-it\": [\n \"warn\",\n { fn: itOrTest, withinDescribe: itOrTest },\n ],\n \"jest/expect-expect\": \"warn\",\n \"jest/no-commented-out-tests\": \"warn\",\n \"jest/no-conditional-expect\": \"warn\",\n \"jest/no-conditional-in-test\": \"warn\",\n \"jest/no-disabled-tests\": \"warn\",\n \"jest/no-duplicate-hooks\": \"warn\",\n \"jest/no-focused-tests\": \"warn\",\n \"jest/no-identical-title\": \"warn\",\n \"jest/no-interpolation-in-snapshots\": \"warn\",\n \"jest/no-large-snapshots\": [\"warn\", { inlineMaxSize: 50, maxSize: 100 }],\n \"jest/no-mocks-import\": \"warn\", // Discourage manually importing from __mocks__\n \"jest/no-standalone-expect\": \"warn\",\n \"jest/no-test-prefixes\": \"warn\", // Prefer .only and .skip over f and x\n \"jest/no-test-return-statement\": \"warn\",\n \"jest/prefer-comparison-matcher\": \"warn\",\n \"jest/prefer-equality-matcher\": \"warn\",\n \"jest/prefer-expect-resolves\": \"warn\",\n \"jest/prefer-hooks-in-order\": \"warn\",\n \"jest/prefer-hooks-on-top\": \"warn\",\n \"jest/prefer-lowercase-title\": [\"warn\", { ignoreTopLevelDescribe: true }],\n \"jest/prefer-snapshot-hint\": \"warn\",\n \"jest/prefer-spy-on\": \"warn\",\n \"jest/prefer-strict-equal\": \"warn\",\n \"jest/prefer-to-be\": \"warn\",\n \"jest/prefer-to-contain\": \"warn\",\n \"jest/prefer-to-have-length\": \"warn\",\n \"jest/require-top-level-describe\": \"warn\",\n \"jest/valid-describe-callback\": \"warn\",\n \"jest/valid-expect\": \"warn\",\n \"jest/valid-expect-in-promise\": \"warn\",\n \"jest/valid-title\": \"warn\",\n});\n"],"mappings":";AAUO,IAAM,YAAY,CAAC,WAA0B,YAAuB;AAAA,EACzE,2BAA2B;AAAA,IACzB;AAAA,IACA,EAAE,IAAI,UAAU,gBAAgB,SAAS;AAAA,EAC3C;AAAA,EACA,sBAAsB;AAAA,EACtB,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,+BAA+B;AAAA,EAC/B,0BAA0B;AAAA,EAC1B,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,2BAA2B;AAAA,EAC3B,sCAAsC;AAAA,EACtC,2BAA2B,CAAC,QAAQ,EAAE,eAAe,IAAI,SAAS,IAAI,CAAC;AAAA,EACvE,wBAAwB;AAAA;AAAA,EACxB,6BAA6B;AAAA,EAC7B,yBAAyB;AAAA;AAAA,EACzB,iCAAiC;AAAA,EACjC,kCAAkC;AAAA,EAClC,gCAAgC;AAAA,EAChC,+BAA+B;AAAA,EAC/B,8BAA8B;AAAA,EAC9B,4BAA4B;AAAA,EAC5B,+BAA+B,CAAC,QAAQ,EAAE,wBAAwB,KAAK,CAAC;AAAA,EACxE,6BAA6B;AAAA,EAC7B,sBAAsB;AAAA,EACtB,4BAA4B;AAAA,EAC5B,qBAAqB;AAAA,EACrB,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,mCAAmC;AAAA,EACnC,gCAAgC;AAAA,EAChC,qBAAqB;AAAA,EACrB,gCAAgC;AAAA,EAChC,oBAAoB;AACtB;","names":[]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { EslintRuleConfig } from '../types.js';
|
|
2
|
-
import 'eslint';
|
|
3
|
-
import '../constants.js';
|
|
4
|
-
|
|
5
|
-
type VitestRules = Record<`vitest/${string}`, EslintRuleConfig>;
|
|
6
|
-
/**
|
|
7
|
-
* Creates an object containing the ESLint rules for vitest.
|
|
8
|
-
*
|
|
9
|
-
* @param itOrTest - "it" or "test"
|
|
10
|
-
* @returns An object containing the ESLint rules for vitest.
|
|
11
|
-
*/
|
|
12
|
-
declare const vitestRules: (itOrTest?: "it" | "test") => VitestRules;
|
|
13
|
-
|
|
14
|
-
export { vitestRules };
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// src/eslint/testing/vitest-rules.ts
|
|
2
|
-
var vitestRules = (itOrTest = "test") => ({
|
|
3
|
-
"vitest/consistent-test-it": [
|
|
4
|
-
"warn",
|
|
5
|
-
{ fn: itOrTest, withinDescribe: itOrTest }
|
|
6
|
-
],
|
|
7
|
-
"vitest/expect-expect": "warn",
|
|
8
|
-
"vitest/no-commented-out-tests": "warn",
|
|
9
|
-
"vitest/no-conditional-in-test": "warn",
|
|
10
|
-
"vitest/no-disabled-tests": "warn",
|
|
11
|
-
"vitest/no-duplicate-hooks": "warn",
|
|
12
|
-
"vitest/no-focused-tests": "warn",
|
|
13
|
-
"vitest/no-identical-title": "warn",
|
|
14
|
-
"vitest/no-import-node-test": "warn",
|
|
15
|
-
"vitest/no-interpolation-in-snapshots": "warn",
|
|
16
|
-
// Avoid dynamic snapshots
|
|
17
|
-
"vitest/no-large-snapshots": ["warn", { inlineMaxSize: 50, maxSize: 100 }],
|
|
18
|
-
// Keep snapshots manageable
|
|
19
|
-
"vitest/no-standalone-expect": "warn",
|
|
20
|
-
"vitest/no-test-return-statement": "warn",
|
|
21
|
-
// Tests shouldn't return values
|
|
22
|
-
"vitest/prefer-comparison-matcher": "warn",
|
|
23
|
-
// Use comparison matchers
|
|
24
|
-
"vitest/prefer-equality-matcher": "warn",
|
|
25
|
-
// Use equality matchers
|
|
26
|
-
"vitest/prefer-hooks-in-order": "warn",
|
|
27
|
-
// Keep hooks in a predictable order
|
|
28
|
-
"vitest/prefer-hooks-on-top": "warn",
|
|
29
|
-
// Keep hooks organized
|
|
30
|
-
"vitest/prefer-lowercase-title": ["warn", { ignoreTopLevelDescribe: true }],
|
|
31
|
-
// Consistent casing
|
|
32
|
-
"vitest/prefer-strict-equal": "warn",
|
|
33
|
-
// Prefer .toStrictEqual() over .toEqual()
|
|
34
|
-
"vitest/prefer-to-be": "warn",
|
|
35
|
-
// Use .toBe() for primitives
|
|
36
|
-
"vitest/prefer-to-contain": "warn",
|
|
37
|
-
// Use .toContain() for array/string includes
|
|
38
|
-
"vitest/prefer-to-have-length": "warn",
|
|
39
|
-
// Use .toHaveLength() for checking length
|
|
40
|
-
"vitest/require-local-test-context-for-concurrent-snapshots": "warn",
|
|
41
|
-
"vitest/require-top-level-describe": "warn",
|
|
42
|
-
// Group tests in describe blocks
|
|
43
|
-
"vitest/valid-describe-callback": "warn",
|
|
44
|
-
"vitest/valid-expect": "warn",
|
|
45
|
-
"vitest/valid-title": "warn"
|
|
46
|
-
});
|
|
47
|
-
export {
|
|
48
|
-
vitestRules
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=vitest-rules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/eslint/testing/vitest-rules.ts"],"sourcesContent":["import type { EslintRuleConfig } from \"../types.js\";\n\ntype VitestRules = Record<`vitest/${string}`, EslintRuleConfig>;\n\n/**\n * Creates an object containing the ESLint rules for vitest.\n *\n * @param itOrTest - \"it\" or \"test\"\n * @returns An object containing the ESLint rules for vitest.\n */\nexport const vitestRules = (itOrTest: \"it\" | \"test\" = \"test\"): VitestRules => ({\n \"vitest/consistent-test-it\": [\n \"warn\",\n { fn: itOrTest, withinDescribe: itOrTest },\n ],\n \"vitest/expect-expect\": \"warn\",\n \"vitest/no-commented-out-tests\": \"warn\",\n \"vitest/no-conditional-in-test\": \"warn\",\n \"vitest/no-disabled-tests\": \"warn\",\n \"vitest/no-duplicate-hooks\": \"warn\",\n \"vitest/no-focused-tests\": \"warn\",\n \"vitest/no-identical-title\": \"warn\",\n \"vitest/no-import-node-test\": \"warn\",\n \"vitest/no-interpolation-in-snapshots\": \"warn\", // Avoid dynamic snapshots\n \"vitest/no-large-snapshots\": [\"warn\", { inlineMaxSize: 50, maxSize: 100 }], // Keep snapshots manageable\n \"vitest/no-standalone-expect\": \"warn\",\n \"vitest/no-test-return-statement\": \"warn\", // Tests shouldn't return values\n \"vitest/prefer-comparison-matcher\": \"warn\", // Use comparison matchers\n \"vitest/prefer-equality-matcher\": \"warn\", // Use equality matchers\n \"vitest/prefer-hooks-in-order\": \"warn\", // Keep hooks in a predictable order\n \"vitest/prefer-hooks-on-top\": \"warn\", // Keep hooks organized\n \"vitest/prefer-lowercase-title\": [\"warn\", { ignoreTopLevelDescribe: true }], // Consistent casing\n \"vitest/prefer-strict-equal\": \"warn\", // Prefer .toStrictEqual() over .toEqual()\n \"vitest/prefer-to-be\": \"warn\", // Use .toBe() for primitives\n \"vitest/prefer-to-contain\": \"warn\", // Use .toContain() for array/string includes\n \"vitest/prefer-to-have-length\": \"warn\", // Use .toHaveLength() for checking length\n \"vitest/require-local-test-context-for-concurrent-snapshots\": \"warn\",\n \"vitest/require-top-level-describe\": \"warn\", // Group tests in describe blocks\n \"vitest/valid-describe-callback\": \"warn\",\n \"vitest/valid-expect\": \"warn\",\n \"vitest/valid-title\": \"warn\",\n});\n"],"mappings":";AAUO,IAAM,cAAc,CAAC,WAA0B,YAAyB;AAAA,EAC7E,6BAA6B;AAAA,IAC3B;AAAA,IACA,EAAE,IAAI,UAAU,gBAAgB,SAAS;AAAA,EAC3C;AAAA,EACA,wBAAwB;AAAA,EACxB,iCAAiC;AAAA,EACjC,iCAAiC;AAAA,EACjC,4BAA4B;AAAA,EAC5B,6BAA6B;AAAA,EAC7B,2BAA2B;AAAA,EAC3B,6BAA6B;AAAA,EAC7B,8BAA8B;AAAA,EAC9B,wCAAwC;AAAA;AAAA,EACxC,6BAA6B,CAAC,QAAQ,EAAE,eAAe,IAAI,SAAS,IAAI,CAAC;AAAA;AAAA,EACzE,+BAA+B;AAAA,EAC/B,mCAAmC;AAAA;AAAA,EACnC,oCAAoC;AAAA;AAAA,EACpC,kCAAkC;AAAA;AAAA,EAClC,gCAAgC;AAAA;AAAA,EAChC,8BAA8B;AAAA;AAAA,EAC9B,iCAAiC,CAAC,QAAQ,EAAE,wBAAwB,KAAK,CAAC;AAAA;AAAA,EAC1E,8BAA8B;AAAA;AAAA,EAC9B,uBAAuB;AAAA;AAAA,EACvB,4BAA4B;AAAA;AAAA,EAC5B,gCAAgC;AAAA;AAAA,EAChC,8DAA8D;AAAA,EAC9D,qCAAqC;AAAA;AAAA,EACrC,kCAAkC;AAAA,EAClC,uBAAuB;AAAA,EACvB,sBAAsB;AACxB;","names":[]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { EslintConfigObject } from '../types.js';
|
|
2
|
-
import 'eslint';
|
|
3
|
-
import '../constants.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Creates an ESLint configuration for Turbo.
|
|
7
|
-
*
|
|
8
|
-
* @returns ESLint configuration object for Turbo
|
|
9
|
-
*/
|
|
10
|
-
declare const turboConfig: () => EslintConfigObject;
|
|
11
|
-
|
|
12
|
-
export { turboConfig };
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// src/eslint/turbo/config.ts
|
|
2
|
-
import turbo from "eslint-plugin-turbo";
|
|
3
|
-
|
|
4
|
-
// src/eslint/constants.ts
|
|
5
|
-
var configNames = {
|
|
6
|
-
base: "base",
|
|
7
|
-
disableTypeChecked: "typescript-eslint/disable-type-checked",
|
|
8
|
-
ignores: "ignores",
|
|
9
|
-
jsdoc: "jsdoc",
|
|
10
|
-
markdown: "markdown",
|
|
11
|
-
nextjs: "nextjs",
|
|
12
|
-
perfectionist: "perfectionist",
|
|
13
|
-
preferArrowFunction: "prefer-arrow-function",
|
|
14
|
-
react: "react",
|
|
15
|
-
reactCompiler: "react-compiler",
|
|
16
|
-
reactRefresh: "react-refresh",
|
|
17
|
-
storybook: "storybook:stories",
|
|
18
|
-
storybookConfig: "storybook:config",
|
|
19
|
-
testing: "testing",
|
|
20
|
-
turbo: "turbo",
|
|
21
|
-
typescript: "tseslint",
|
|
22
|
-
typescriptTesting: "tseslint-testing",
|
|
23
|
-
unicorn: "unicorn"
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
// src/eslint/turbo/config.ts
|
|
27
|
-
var turboConfig = () => ({
|
|
28
|
-
name: configNames.turbo,
|
|
29
|
-
plugins: {
|
|
30
|
-
turbo
|
|
31
|
-
},
|
|
32
|
-
rules: {
|
|
33
|
-
"turbo/no-undeclared-env-vars": "warn"
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
export {
|
|
37
|
-
turboConfig
|
|
38
|
-
};
|
|
39
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/eslint/turbo/config.ts","../../../src/eslint/constants.ts"],"sourcesContent":["import turbo from \"eslint-plugin-turbo\";\n\nimport type { EslintConfigObject } from \"../types.js\";\nimport type { TurboRules } from \"./types.js\";\n\nimport { configNames } from \"../constants.js\";\n\n/**\n * Creates an ESLint configuration for Turbo.\n *\n * @returns ESLint configuration object for Turbo\n */\nexport const turboConfig = (): EslintConfigObject => ({\n name: configNames.turbo,\n plugins: {\n turbo,\n },\n rules: {\n \"turbo/no-undeclared-env-vars\": \"warn\",\n } satisfies TurboRules,\n});\n","/**\n * Debug names for ESLint configuration objects.\n * These names help identify different configuration sections in ESLint's debug output\n * and error messages, making it easier to track which rules come from which config.\n */\nexport const configNames = {\n base: \"base\",\n disableTypeChecked: \"typescript-eslint/disable-type-checked\",\n ignores: \"ignores\",\n jsdoc: \"jsdoc\",\n markdown: \"markdown\",\n nextjs: \"nextjs\",\n perfectionist: \"perfectionist\",\n preferArrowFunction: \"prefer-arrow-function\",\n react: \"react\",\n reactCompiler: \"react-compiler\",\n reactRefresh: \"react-refresh\",\n storybook: \"storybook:stories\",\n storybookConfig: \"storybook:config\",\n testing: \"testing\",\n turbo: \"turbo\",\n typescript: \"tseslint\",\n typescriptTesting: \"tseslint-testing\",\n unicorn: \"unicorn\",\n} as const;\n\nexport type ConfigName = (typeof configNames)[keyof typeof configNames];\n"],"mappings":";AAAA,OAAO,WAAW;;;ACKX,IAAM,cAAc;AAAA,EACzB,MAAM;AAAA,EACN,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,OAAO;AAAA,EACP,eAAe;AAAA,EACf,cAAc;AAAA,EACd,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,mBAAmB;AAAA,EACnB,SAAS;AACX;;;ADZO,IAAM,cAAc,OAA2B;AAAA,EACpD,MAAM,YAAY;AAAA,EAClB,SAAS;AAAA,IACP;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,gCAAgC;AAAA,EAClC;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/eslint/types.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Linter } from 'eslint';
|
|
2
|
-
import { ConfigName } from './constants.js';
|
|
3
|
-
|
|
4
|
-
type EslintSeverity = 0 | 1 | 2 | "error" | "off" | "warn";
|
|
5
|
-
type EslintRuleConfig<TOptions = Record<string, unknown>, TOptions2 = Record<string, unknown>> = [EslintSeverity, string | TOptions | undefined] | [EslintSeverity, string | undefined, TOptions2 | undefined] | [EslintSeverity, TOptions | undefined, TOptions2 | undefined] | [EslintSeverity] | EslintSeverity;
|
|
6
|
-
type FunctionStyle = "arrow" | "declaration" | "expression";
|
|
7
|
-
interface EslintConfigObject<Rules extends Linter.RulesRecord = Linter.RulesRecord> extends Linter.Config<Rules> {
|
|
8
|
-
name: ConfigName;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export type { EslintConfigObject, EslintRuleConfig, EslintSeverity, FunctionStyle };
|
package/dist/eslint/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=types.js.map
|
package/dist/eslint/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Config } from 'typescript-eslint';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Creates a TypeScript ESLint configuration object.
|
|
5
|
-
*
|
|
6
|
-
* @param tsconfigPath - Path to the TypeScript configuration file
|
|
7
|
-
* @returns TypeScript ESLint configuration object
|
|
8
|
-
*/
|
|
9
|
-
declare const tseslintConfig: (tsconfigPath?: string) => Config;
|
|
10
|
-
|
|
11
|
-
export { tseslintConfig };
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
// src/eslint/typescript/config.ts
|
|
2
|
-
import tseslint from "typescript-eslint";
|
|
3
|
-
|
|
4
|
-
// src/eslint/constants.ts
|
|
5
|
-
var configNames = {
|
|
6
|
-
base: "base",
|
|
7
|
-
disableTypeChecked: "typescript-eslint/disable-type-checked",
|
|
8
|
-
ignores: "ignores",
|
|
9
|
-
jsdoc: "jsdoc",
|
|
10
|
-
markdown: "markdown",
|
|
11
|
-
nextjs: "nextjs",
|
|
12
|
-
perfectionist: "perfectionist",
|
|
13
|
-
preferArrowFunction: "prefer-arrow-function",
|
|
14
|
-
react: "react",
|
|
15
|
-
reactCompiler: "react-compiler",
|
|
16
|
-
reactRefresh: "react-refresh",
|
|
17
|
-
storybook: "storybook:stories",
|
|
18
|
-
storybookConfig: "storybook:config",
|
|
19
|
-
testing: "testing",
|
|
20
|
-
turbo: "turbo",
|
|
21
|
-
typescript: "tseslint",
|
|
22
|
-
typescriptTesting: "tseslint-testing",
|
|
23
|
-
unicorn: "unicorn"
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
// src/eslint/typescript/rules.ts
|
|
27
|
-
var tseslintRules = {
|
|
28
|
-
"@typescript-eslint/adjacent-overload-signatures": "warn",
|
|
29
|
-
"@typescript-eslint/array-type": "warn",
|
|
30
|
-
"@typescript-eslint/await-thenable": "warn",
|
|
31
|
-
"@typescript-eslint/ban-ts-comment": [
|
|
32
|
-
"warn",
|
|
33
|
-
{ minimumDescriptionLength: 10 }
|
|
34
|
-
],
|
|
35
|
-
"@typescript-eslint/ban-tslint-comment": "warn",
|
|
36
|
-
"@typescript-eslint/class-literal-property-style": "warn",
|
|
37
|
-
"@typescript-eslint/consistent-generic-constructors": "warn",
|
|
38
|
-
"@typescript-eslint/consistent-indexed-object-style": "warn",
|
|
39
|
-
"@typescript-eslint/consistent-type-assertions": "warn",
|
|
40
|
-
"@typescript-eslint/consistent-type-definitions": "warn",
|
|
41
|
-
"@typescript-eslint/consistent-type-exports": [
|
|
42
|
-
"warn",
|
|
43
|
-
{ fixMixedExportsWithInlineTypeSpecifier: true }
|
|
44
|
-
],
|
|
45
|
-
"@typescript-eslint/consistent-type-imports": [
|
|
46
|
-
"warn",
|
|
47
|
-
{
|
|
48
|
-
fixStyle: "inline-type-imports",
|
|
49
|
-
prefer: "type-imports"
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
"@typescript-eslint/dot-notation": "warn",
|
|
53
|
-
"@typescript-eslint/no-array-constructor": "warn",
|
|
54
|
-
"@typescript-eslint/no-array-delete": "warn",
|
|
55
|
-
"@typescript-eslint/no-base-to-string": "warn",
|
|
56
|
-
"@typescript-eslint/no-confusing-non-null-assertion": "warn",
|
|
57
|
-
"@typescript-eslint/no-confusing-void-expression": "warn",
|
|
58
|
-
"@typescript-eslint/no-deprecated": "warn",
|
|
59
|
-
"@typescript-eslint/no-duplicate-enum-values": "warn",
|
|
60
|
-
"@typescript-eslint/no-duplicate-type-constituents": "warn",
|
|
61
|
-
"@typescript-eslint/no-dynamic-delete": "warn",
|
|
62
|
-
"@typescript-eslint/no-empty-function": "warn",
|
|
63
|
-
"@typescript-eslint/no-empty-object-type": "warn",
|
|
64
|
-
"@typescript-eslint/no-explicit-any": "warn",
|
|
65
|
-
"@typescript-eslint/no-extra-non-null-assertion": "warn",
|
|
66
|
-
"@typescript-eslint/no-extraneous-class": "warn",
|
|
67
|
-
"@typescript-eslint/no-floating-promises": "warn",
|
|
68
|
-
"@typescript-eslint/no-for-in-array": "warn",
|
|
69
|
-
"@typescript-eslint/no-implied-eval": "warn",
|
|
70
|
-
"@typescript-eslint/no-import-type-side-effects": "warn",
|
|
71
|
-
"@typescript-eslint/no-inferrable-types": "warn",
|
|
72
|
-
"@typescript-eslint/no-invalid-void-type": "warn",
|
|
73
|
-
"@typescript-eslint/no-meaningless-void-operator": "warn",
|
|
74
|
-
"@typescript-eslint/no-misused-new": "warn",
|
|
75
|
-
"@typescript-eslint/no-misused-promises": "warn",
|
|
76
|
-
"@typescript-eslint/no-mixed-enums": "warn",
|
|
77
|
-
"@typescript-eslint/no-namespace": "warn",
|
|
78
|
-
"@typescript-eslint/no-non-null-asserted-nullish-coalescing": "warn",
|
|
79
|
-
"@typescript-eslint/no-non-null-asserted-optional-chain": "warn",
|
|
80
|
-
"@typescript-eslint/no-non-null-assertion": "warn",
|
|
81
|
-
"@typescript-eslint/no-redundant-type-constituents": "warn",
|
|
82
|
-
"@typescript-eslint/no-require-imports": "warn",
|
|
83
|
-
"@typescript-eslint/no-this-alias": "warn",
|
|
84
|
-
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "warn",
|
|
85
|
-
"@typescript-eslint/no-unnecessary-condition": "warn",
|
|
86
|
-
"@typescript-eslint/no-unnecessary-template-expression": "warn",
|
|
87
|
-
"@typescript-eslint/no-unnecessary-type-arguments": "warn",
|
|
88
|
-
"@typescript-eslint/no-unnecessary-type-assertion": "warn",
|
|
89
|
-
"@typescript-eslint/no-unnecessary-type-constraint": "warn",
|
|
90
|
-
"@typescript-eslint/no-unnecessary-type-parameters": "warn",
|
|
91
|
-
"@typescript-eslint/no-unsafe-declaration-merging": "warn",
|
|
92
|
-
"@typescript-eslint/no-unsafe-enum-comparison": "warn",
|
|
93
|
-
"@typescript-eslint/no-unsafe-function-type": "warn",
|
|
94
|
-
"@typescript-eslint/no-unsafe-unary-minus": "warn",
|
|
95
|
-
"@typescript-eslint/no-unused-expressions": "warn",
|
|
96
|
-
"@typescript-eslint/no-unused-vars": [
|
|
97
|
-
"warn",
|
|
98
|
-
{
|
|
99
|
-
args: "after-used",
|
|
100
|
-
argsIgnorePattern: "^_",
|
|
101
|
-
ignoreRestSiblings: false,
|
|
102
|
-
vars: "all",
|
|
103
|
-
varsIgnorePattern: "^_"
|
|
104
|
-
}
|
|
105
|
-
],
|
|
106
|
-
"@typescript-eslint/no-useless-constructor": "warn",
|
|
107
|
-
"@typescript-eslint/no-wrapper-object-types": "warn",
|
|
108
|
-
// TODO: Investiate non-null vs type-cast rules
|
|
109
|
-
"@typescript-eslint/non-nullable-type-assertion-style": "off",
|
|
110
|
-
"@typescript-eslint/only-throw-error": "warn",
|
|
111
|
-
"@typescript-eslint/prefer-as-const": "warn",
|
|
112
|
-
"@typescript-eslint/prefer-find": "warn",
|
|
113
|
-
"@typescript-eslint/prefer-for-of": "warn",
|
|
114
|
-
"@typescript-eslint/prefer-function-type": "warn",
|
|
115
|
-
"@typescript-eslint/prefer-includes": "warn",
|
|
116
|
-
"@typescript-eslint/prefer-literal-enum-member": "warn",
|
|
117
|
-
"@typescript-eslint/prefer-namespace-keyword": "warn",
|
|
118
|
-
"@typescript-eslint/prefer-nullish-coalescing": "warn",
|
|
119
|
-
"@typescript-eslint/prefer-optional-chain": "warn",
|
|
120
|
-
"@typescript-eslint/prefer-promise-reject-errors": "warn",
|
|
121
|
-
"@typescript-eslint/prefer-reduce-type-parameter": "warn",
|
|
122
|
-
"@typescript-eslint/prefer-regexp-exec": "warn",
|
|
123
|
-
"@typescript-eslint/prefer-return-this-type": "warn",
|
|
124
|
-
"@typescript-eslint/prefer-string-starts-ends-with": "warn",
|
|
125
|
-
"@typescript-eslint/related-getter-setter-pairs": "warn",
|
|
126
|
-
"@typescript-eslint/require-await": "warn",
|
|
127
|
-
"@typescript-eslint/restrict-plus-operands": [
|
|
128
|
-
"warn",
|
|
129
|
-
{
|
|
130
|
-
allowAny: false,
|
|
131
|
-
allowBoolean: false,
|
|
132
|
-
allowNullish: false,
|
|
133
|
-
allowNumberAndString: false,
|
|
134
|
-
allowRegExp: false
|
|
135
|
-
}
|
|
136
|
-
],
|
|
137
|
-
"@typescript-eslint/restrict-template-expressions": [
|
|
138
|
-
"warn",
|
|
139
|
-
{
|
|
140
|
-
allow: [{ from: "lib", name: ["Error", "URL", "URLSearchParams"] }],
|
|
141
|
-
allowAny: true,
|
|
142
|
-
allowBoolean: true,
|
|
143
|
-
allowNullish: true,
|
|
144
|
-
allowNumber: true,
|
|
145
|
-
allowRegExp: true
|
|
146
|
-
}
|
|
147
|
-
],
|
|
148
|
-
"@typescript-eslint/return-await": [
|
|
149
|
-
"warn",
|
|
150
|
-
"error-handling-correctness-only"
|
|
151
|
-
],
|
|
152
|
-
"@typescript-eslint/triple-slash-reference": "warn",
|
|
153
|
-
"@typescript-eslint/unbound-method": "warn",
|
|
154
|
-
"@typescript-eslint/unified-signatures": "warn",
|
|
155
|
-
"@typescript-eslint/use-unknown-in-catch-callback-variable": "warn"
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
// src/eslint/typescript/config.ts
|
|
159
|
-
var tseslintConfig = (tsconfigPath) => {
|
|
160
|
-
const userCwd = process.cwd();
|
|
161
|
-
return tseslint.config(
|
|
162
|
-
{
|
|
163
|
-
files: ["**/*.{js,cjs,mjs,ts,jsx,tsx}"],
|
|
164
|
-
languageOptions: {
|
|
165
|
-
parser: tseslint.parser,
|
|
166
|
-
parserOptions: {
|
|
167
|
-
...tsconfigPath ? { project: tsconfigPath, tsconfigRootDir: userCwd } : { projectService: true, tsconfigRootDir: import.meta.dirname }
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
name: configNames.typescript,
|
|
171
|
-
plugins: {
|
|
172
|
-
"@typescript-eslint": tseslint.plugin
|
|
173
|
-
},
|
|
174
|
-
rules: tseslintRules
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
// disable type-aware linting on JS files
|
|
178
|
-
extends: [tseslint.configs.disableTypeChecked],
|
|
179
|
-
files: ["**/*.js"]
|
|
180
|
-
}
|
|
181
|
-
);
|
|
182
|
-
};
|
|
183
|
-
export {
|
|
184
|
-
tseslintConfig
|
|
185
|
-
};
|
|
186
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/eslint/typescript/config.ts","../../../src/eslint/constants.ts","../../../src/eslint/typescript/rules.ts"],"sourcesContent":["import tseslint, { type Config } from \"typescript-eslint\";\n\nimport { configNames } from \"../constants.js\";\nimport { tseslintRules } from \"./rules.js\";\n\n/**\n * Creates a TypeScript ESLint configuration object.\n *\n * @param tsconfigPath - Path to the TypeScript configuration file\n * @returns TypeScript ESLint configuration object\n */\nexport const tseslintConfig = (tsconfigPath?: string): Config => {\n const userCwd = process.cwd();\n\n return tseslint.config(\n {\n files: [\"**/*.{js,cjs,mjs,ts,jsx,tsx}\"],\n languageOptions: {\n parser: tseslint.parser,\n parserOptions: {\n ...(tsconfigPath ?\n { project: tsconfigPath, tsconfigRootDir: userCwd }\n : { projectService: true, tsconfigRootDir: import.meta.dirname }),\n },\n },\n name: configNames.typescript,\n plugins: {\n \"@typescript-eslint\": tseslint.plugin,\n },\n rules: tseslintRules,\n },\n {\n // disable type-aware linting on JS files\n extends: [tseslint.configs.disableTypeChecked],\n files: [\"**/*.js\"],\n },\n );\n};\n","/**\n * Debug names for ESLint configuration objects.\n * These names help identify different configuration sections in ESLint's debug output\n * and error messages, making it easier to track which rules come from which config.\n */\nexport const configNames = {\n base: \"base\",\n disableTypeChecked: \"typescript-eslint/disable-type-checked\",\n ignores: \"ignores\",\n jsdoc: \"jsdoc\",\n markdown: \"markdown\",\n nextjs: \"nextjs\",\n perfectionist: \"perfectionist\",\n preferArrowFunction: \"prefer-arrow-function\",\n react: \"react\",\n reactCompiler: \"react-compiler\",\n reactRefresh: \"react-refresh\",\n storybook: \"storybook:stories\",\n storybookConfig: \"storybook:config\",\n testing: \"testing\",\n turbo: \"turbo\",\n typescript: \"tseslint\",\n typescriptTesting: \"tseslint-testing\",\n unicorn: \"unicorn\",\n} as const;\n\nexport type ConfigName = (typeof configNames)[keyof typeof configNames];\n","import type { TypescriptRules } from \"./types.js\";\n\nexport const tseslintRules: TypescriptRules = {\n \"@typescript-eslint/adjacent-overload-signatures\": \"warn\",\n \"@typescript-eslint/array-type\": \"warn\",\n \"@typescript-eslint/await-thenable\": \"warn\",\n \"@typescript-eslint/ban-ts-comment\": [\n \"warn\",\n { minimumDescriptionLength: 10 },\n ],\n \"@typescript-eslint/ban-tslint-comment\": \"warn\",\n \"@typescript-eslint/class-literal-property-style\": \"warn\",\n \"@typescript-eslint/consistent-generic-constructors\": \"warn\",\n \"@typescript-eslint/consistent-indexed-object-style\": \"warn\",\n \"@typescript-eslint/consistent-type-assertions\": \"warn\",\n \"@typescript-eslint/consistent-type-definitions\": \"warn\",\n \"@typescript-eslint/consistent-type-exports\": [\n \"warn\",\n { fixMixedExportsWithInlineTypeSpecifier: true },\n ],\n \"@typescript-eslint/consistent-type-imports\": [\n \"warn\",\n {\n fixStyle: \"inline-type-imports\",\n prefer: \"type-imports\",\n },\n ],\n \"@typescript-eslint/dot-notation\": \"warn\",\n \"@typescript-eslint/no-array-constructor\": \"warn\",\n \"@typescript-eslint/no-array-delete\": \"warn\",\n \"@typescript-eslint/no-base-to-string\": \"warn\",\n \"@typescript-eslint/no-confusing-non-null-assertion\": \"warn\",\n \"@typescript-eslint/no-confusing-void-expression\": \"warn\",\n \"@typescript-eslint/no-deprecated\": \"warn\",\n \"@typescript-eslint/no-duplicate-enum-values\": \"warn\",\n \"@typescript-eslint/no-duplicate-type-constituents\": \"warn\",\n \"@typescript-eslint/no-dynamic-delete\": \"warn\",\n \"@typescript-eslint/no-empty-function\": \"warn\",\n \"@typescript-eslint/no-empty-object-type\": \"warn\",\n \"@typescript-eslint/no-explicit-any\": \"warn\",\n \"@typescript-eslint/no-extra-non-null-assertion\": \"warn\",\n \"@typescript-eslint/no-extraneous-class\": \"warn\",\n \"@typescript-eslint/no-floating-promises\": \"warn\",\n \"@typescript-eslint/no-for-in-array\": \"warn\",\n \"@typescript-eslint/no-implied-eval\": \"warn\",\n \"@typescript-eslint/no-import-type-side-effects\": \"warn\",\n \"@typescript-eslint/no-inferrable-types\": \"warn\",\n \"@typescript-eslint/no-invalid-void-type\": \"warn\",\n \"@typescript-eslint/no-meaningless-void-operator\": \"warn\",\n \"@typescript-eslint/no-misused-new\": \"warn\",\n \"@typescript-eslint/no-misused-promises\": \"warn\",\n \"@typescript-eslint/no-mixed-enums\": \"warn\",\n \"@typescript-eslint/no-namespace\": \"warn\",\n \"@typescript-eslint/no-non-null-asserted-nullish-coalescing\": \"warn\",\n \"@typescript-eslint/no-non-null-asserted-optional-chain\": \"warn\",\n \"@typescript-eslint/no-non-null-assertion\": \"warn\",\n \"@typescript-eslint/no-redundant-type-constituents\": \"warn\",\n \"@typescript-eslint/no-require-imports\": \"warn\",\n \"@typescript-eslint/no-this-alias\": \"warn\",\n \"@typescript-eslint/no-unnecessary-boolean-literal-compare\": \"warn\",\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\n \"@typescript-eslint/no-unnecessary-template-expression\": \"warn\",\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"warn\",\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"warn\",\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"warn\",\n \"@typescript-eslint/no-unnecessary-type-parameters\": \"warn\",\n \"@typescript-eslint/no-unsafe-declaration-merging\": \"warn\",\n \"@typescript-eslint/no-unsafe-enum-comparison\": \"warn\",\n \"@typescript-eslint/no-unsafe-function-type\": \"warn\",\n \"@typescript-eslint/no-unsafe-unary-minus\": \"warn\",\n \"@typescript-eslint/no-unused-expressions\": \"warn\",\n \"@typescript-eslint/no-unused-vars\": [\n \"warn\",\n {\n args: \"after-used\",\n argsIgnorePattern: \"^_\",\n ignoreRestSiblings: false,\n vars: \"all\",\n varsIgnorePattern: \"^_\",\n },\n ],\n \"@typescript-eslint/no-useless-constructor\": \"warn\",\n \"@typescript-eslint/no-wrapper-object-types\": \"warn\",\n // TODO: Investiate non-null vs type-cast rules\n \"@typescript-eslint/non-nullable-type-assertion-style\": \"off\",\n \"@typescript-eslint/only-throw-error\": \"warn\",\n \"@typescript-eslint/prefer-as-const\": \"warn\",\n \"@typescript-eslint/prefer-find\": \"warn\",\n \"@typescript-eslint/prefer-for-of\": \"warn\",\n \"@typescript-eslint/prefer-function-type\": \"warn\",\n \"@typescript-eslint/prefer-includes\": \"warn\",\n \"@typescript-eslint/prefer-literal-enum-member\": \"warn\",\n \"@typescript-eslint/prefer-namespace-keyword\": \"warn\",\n \"@typescript-eslint/prefer-nullish-coalescing\": \"warn\",\n \"@typescript-eslint/prefer-optional-chain\": \"warn\",\n \"@typescript-eslint/prefer-promise-reject-errors\": \"warn\",\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"warn\",\n \"@typescript-eslint/prefer-regexp-exec\": \"warn\",\n \"@typescript-eslint/prefer-return-this-type\": \"warn\",\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"warn\",\n \"@typescript-eslint/related-getter-setter-pairs\": \"warn\",\n \"@typescript-eslint/require-await\": \"warn\",\n \"@typescript-eslint/restrict-plus-operands\": [\n \"warn\",\n {\n allowAny: false,\n allowBoolean: false,\n allowNullish: false,\n allowNumberAndString: false,\n allowRegExp: false,\n },\n ],\n \"@typescript-eslint/restrict-template-expressions\": [\n \"warn\",\n {\n allow: [{ from: \"lib\", name: [\"Error\", \"URL\", \"URLSearchParams\"] }],\n allowAny: true,\n allowBoolean: true,\n allowNullish: true,\n allowNumber: true,\n allowRegExp: true,\n },\n ],\n \"@typescript-eslint/return-await\": [\n \"warn\",\n \"error-handling-correctness-only\",\n ],\n \"@typescript-eslint/triple-slash-reference\": \"warn\",\n \"@typescript-eslint/unbound-method\": \"warn\",\n \"@typescript-eslint/unified-signatures\": \"warn\",\n \"@typescript-eslint/use-unknown-in-catch-callback-variable\": \"warn\",\n};\n"],"mappings":"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","names":[]}
|