@ls-stack/eslint-cfg 0.5.0 → 0.6.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/dist/main.js +4 -2
- package/dist/main.js.map +1 -1
- package/package.json +15 -15
package/dist/main.js
CHANGED
|
@@ -182,8 +182,7 @@ function lsStackEslintCfg({
|
|
|
182
182
|
],
|
|
183
183
|
/* vitest */
|
|
184
184
|
"vitest/expect-expect": ERROR_IN_CI,
|
|
185
|
-
"vitest/no-identical-title": ERROR_IN_CI
|
|
186
|
-
...rules
|
|
185
|
+
"vitest/no-identical-title": ERROR_IN_CI
|
|
187
186
|
}
|
|
188
187
|
},
|
|
189
188
|
{
|
|
@@ -201,6 +200,9 @@ function lsStackEslintCfg({
|
|
|
201
200
|
"@ls-stack/no-default-export": OFF
|
|
202
201
|
}
|
|
203
202
|
},
|
|
203
|
+
{
|
|
204
|
+
rules: { ...rules }
|
|
205
|
+
},
|
|
204
206
|
...extendsConfig,
|
|
205
207
|
{
|
|
206
208
|
ignores: ignore
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.ts"],"sourcesContent":["import eslint from '@eslint/js';\nimport { extendedLintPlugin } from '@ls-stack/extended-lint';\nimport { TSESLint } from '@typescript-eslint/utils';\nimport eslintUnicornPlugin from 'eslint-plugin-unicorn';\nimport vitest from 'eslint-plugin-vitest';\nimport tseslint, { ConfigWithExtends } from 'typescript-eslint';\n\nconst isCI = process.env.CI === 'true';\n\nconst OFF = 0;\nconst WARN = 1;\nconst ERROR = 2;\nconst ERROR_IN_CI = isCI ? ERROR : WARN;\nconst ERROR_IN_CI_ONLY = isCI ? ERROR : 0;\nconst errorOnExpiringTodos = process.env.EXPIRING_TODOS === 'true' || !isCI;\n\nconst getNoTypeGuardsMessage = (secondaryInstruction: string) =>\n `Check if the type guard can be inferred by typescript, in most cases it can, e.g. \".find((nullable) => nullable !== null)\". ${secondaryInstruction} . As last resort move the type guard to *.typeGuards.(ts|tsx) or *.type-guards.(ts|tsx) files.`;\n\nexport const cfgFlags: {\n OFF: 0;\n WARN: 1;\n ERROR: 2;\n ERROR_IN_CI: 0 | 1 | 2;\n ERROR_IN_CI_ONLY: 0 | 1 | 2;\n IS_CI: boolean;\n} = {\n OFF,\n WARN,\n ERROR,\n ERROR_IN_CI,\n ERROR_IN_CI_ONLY,\n IS_CI: isCI,\n};\n\n/**\n * Plugins:\n *\n * Use @ls-stack/{rule} to change ls-stack rules.\n * Use unicorn/{rule} to change unicorn rules.\n *\n * Env vars:\n * CI: if true, will be more strict.\n * EXPIRING_TODOS: if true, will not allow expiring todos.\n */\nexport function lsStackEslintCfg({\n extraRuleGroups: extendsConfig = [],\n globalRules: rules,\n tsconfigRootDir,\n ignore = [],\n allowDefaultExport = [],\n}: {\n extraRuleGroups?: ConfigWithExtends['extends'];\n globalRules?: ConfigWithExtends['rules'];\n tsconfigRootDir: string;\n ignore?: string[];\n allowDefaultExport?: string[];\n}): TSESLint.FlatConfig.ConfigArray {\n return tseslint.config(\n eslint.configs.recommended,\n ...tseslint.configs.recommendedTypeChecked,\n {\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n languageOptions: {\n parserOptions: {\n project: './tsconfig.json',\n tsconfigRootDir,\n },\n globals: { process: true },\n },\n },\n {\n plugins: {\n '@ls-stack': extendedLintPlugin,\n unicorn: eslintUnicornPlugin,\n vitest,\n },\n\n rules: {\n 'no-warning-comments': [ERROR_IN_CI, { terms: ['FIX:'] }],\n 'no-constant-binary-expression': ERROR_IN_CI,\n 'object-shorthand': ERROR_IN_CI,\n 'no-useless-rename': ERROR_IN_CI,\n 'no-param-reassign': ERROR_IN_CI,\n 'prefer-template': ERROR_IN_CI,\n 'prefer-const': [ERROR_IN_CI, { destructuring: 'all' }],\n\n 'no-prototype-builtins': OFF,\n 'no-inner-declarations': OFF,\n 'no-undef': OFF,\n 'no-console': [ERROR_IN_CI, { allow: ['warn', 'error', 'info'] }],\n 'no-restricted-imports': [\n ERROR_IN_CI,\n {\n patterns: [\n {\n group: ['*.test'],\n message: 'Do not import test files',\n },\n ],\n },\n ],\n 'no-restricted-syntax': [\n ERROR_IN_CI_ONLY,\n {\n selector: 'CallExpression[callee.property.name=\"only\"]',\n message: 'No test.only',\n },\n {\n selector: 'CallExpression[callee.property.name=\"todo\"]',\n message: 'No test.todo',\n },\n ],\n 'no-implicit-coercion': [\n ERROR_IN_CI,\n { disallowTemplateShorthand: true, allow: ['!!'] },\n ],\n\n /* typescript */\n '@typescript-eslint/no-unnecessary-condition': [\n ERROR_IN_CI,\n { allowConstantLoopConditions: true, checkTypePredicates: true },\n ],\n '@typescript-eslint/no-non-null-assertion': ERROR_IN_CI,\n '@typescript-eslint/consistent-type-assertions': [\n ERROR,\n {\n assertionStyle: 'never',\n },\n ],\n '@typescript-eslint/naming-convention': [\n 'error',\n {\n selector: 'typeLike',\n format: ['PascalCase'],\n },\n ],\n '@typescript-eslint/only-throw-error': ERROR_IN_CI,\n '@typescript-eslint/no-unused-expressions': ERROR_IN_CI,\n '@typescript-eslint/no-unused-vars': [\n ERROR_IN_CI,\n {\n argsIgnorePattern: '_$',\n ignoreRestSiblings: true,\n varsIgnorePattern: '_$',\n },\n ],\n '@typescript-eslint/no-shadow': [\n ERROR_IN_CI,\n { ignoreOnInitialization: true, allow: ['expect'] },\n ],\n '@typescript-eslint/no-unsafe-assignment': OFF,\n\n 'unicorn/expiring-todo-comments': [\n ERROR_IN_CI,\n {\n terms: [\n 'FIX',\n // 'TODO',\n 'palinter-ignore-unused-next-line',\n 'palinter-ignore-not-have-direct-circular-deps',\n 'palinter-ignore-not-have-circular-deps',\n 'palinter-ignore-not-have-unused-exports',\n ],\n ignore: [/^ HACK:/],\n allowWarningComments: false,\n ...(!errorOnExpiringTodos && { date: '2000-01-01' }),\n },\n ],\n 'unicorn/require-array-join-separator': ERROR_IN_CI,\n 'unicorn/no-empty-file': ERROR_IN_CI,\n 'unicorn/no-array-reduce': [\n ERROR_IN_CI,\n { allowSimpleOperations: true },\n ],\n 'unicorn/no-array-for-each': ERROR_IN_CI,\n\n /* extended-lint */\n '@ls-stack/no-unused-type-props-in-args': ERROR,\n '@ls-stack/improved-no-unnecessary-condition': ERROR,\n '@ls-stack/no-optional-root-props': ERROR_IN_CI,\n '@ls-stack/prefer-single-line-if': [\n WARN,\n { maxLineLength: 80, maxNonSimpleConditionLength: 40 },\n ],\n '@ls-stack/prefer-named-functions': [WARN, { ignoreRegex: 'Fn$' }],\n '@ls-stack/require-description': [ERROR, { ignore: ['eslint'] }],\n '@ls-stack/no-default-export': ERROR,\n '@ls-stack/no-unnecessary-casting': [\n ERROR_IN_CI,\n {\n additionalCastFunctions: [\n { name: 'castToString', expectedType: 'string' },\n { name: 'castToNumber', expectedType: 'number' },\n ],\n },\n ],\n '@ls-stack/use-top-level-regex': ERROR,\n '@ls-stack/use-types-directly-above-usage': [ERROR],\n '@ls-stack/template-indent': [ERROR_IN_CI, { tags: ['dedent'] }],\n '@ls-stack/no-reexport': ERROR,\n '@ls-stack/no-type-guards': [\n ERROR_IN_CI,\n {\n alternativeMsgs: {\n inArrayFind: getNoTypeGuardsMessage(\n 'If not, use findAndMap from @ls-stack/utils/arrayUtils.',\n ),\n inArrayFilter: getNoTypeGuardsMessage(\n 'If not, use filterAndMap from @ls-stack/utils/arrayUtils.',\n ),\n },\n },\n ],\n\n /* vitest */\n 'vitest/expect-expect': ERROR_IN_CI,\n 'vitest/no-identical-title': ERROR_IN_CI,\n\n ...rules,\n },\n },\n {\n files: ['*.test.{ts,tsx}', '*.spec.{ts,tsx}'],\n ...vitest.configs.recommended,\n },\n {\n files: [\n 'eslint.config.{js,cjs,mjs,ts}',\n 'tsup.config.ts',\n 'vitest.config.ts',\n ...allowDefaultExport,\n ],\n rules: {\n '@ls-stack/no-default-export': OFF,\n },\n },\n ...extendsConfig,\n {\n ignores: ignore,\n },\n );\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/main.ts"],"sourcesContent":["import eslint from '@eslint/js';\nimport { extendedLintPlugin } from '@ls-stack/extended-lint';\nimport { TSESLint } from '@typescript-eslint/utils';\nimport eslintUnicornPlugin from 'eslint-plugin-unicorn';\nimport vitest from 'eslint-plugin-vitest';\nimport tseslint, { ConfigWithExtends } from 'typescript-eslint';\n\nconst isCI = process.env.CI === 'true';\n\nconst OFF = 0;\nconst WARN = 1;\nconst ERROR = 2;\nconst ERROR_IN_CI = isCI ? ERROR : WARN;\nconst ERROR_IN_CI_ONLY = isCI ? ERROR : 0;\nconst errorOnExpiringTodos = process.env.EXPIRING_TODOS === 'true' || !isCI;\n\nconst getNoTypeGuardsMessage = (secondaryInstruction: string) =>\n `Check if the type guard can be inferred by typescript, in most cases it can, e.g. \".find((nullable) => nullable !== null)\". ${secondaryInstruction} . As last resort move the type guard to *.typeGuards.(ts|tsx) or *.type-guards.(ts|tsx) files.`;\n\nexport const cfgFlags: {\n OFF: 0;\n WARN: 1;\n ERROR: 2;\n ERROR_IN_CI: 0 | 1 | 2;\n ERROR_IN_CI_ONLY: 0 | 1 | 2;\n IS_CI: boolean;\n} = {\n OFF,\n WARN,\n ERROR,\n ERROR_IN_CI,\n ERROR_IN_CI_ONLY,\n IS_CI: isCI,\n};\n\n/**\n * Plugins:\n *\n * Use @ls-stack/{rule} to change ls-stack rules.\n * Use unicorn/{rule} to change unicorn rules.\n *\n * Env vars:\n * CI: if true, will be more strict.\n * EXPIRING_TODOS: if true, will not allow expiring todos.\n */\nexport function lsStackEslintCfg({\n extraRuleGroups: extendsConfig = [],\n globalRules: rules,\n tsconfigRootDir,\n ignore = [],\n allowDefaultExport = [],\n}: {\n extraRuleGroups?: ConfigWithExtends['extends'];\n globalRules?: ConfigWithExtends['rules'];\n tsconfigRootDir: string;\n ignore?: string[];\n allowDefaultExport?: string[];\n}): TSESLint.FlatConfig.ConfigArray {\n return tseslint.config(\n eslint.configs.recommended,\n ...tseslint.configs.recommendedTypeChecked,\n {\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n languageOptions: {\n parserOptions: {\n project: './tsconfig.json',\n tsconfigRootDir,\n },\n globals: { process: true },\n },\n },\n {\n plugins: {\n '@ls-stack': extendedLintPlugin,\n unicorn: eslintUnicornPlugin,\n vitest,\n },\n\n rules: {\n 'no-warning-comments': [ERROR_IN_CI, { terms: ['FIX:'] }],\n 'no-constant-binary-expression': ERROR_IN_CI,\n 'object-shorthand': ERROR_IN_CI,\n 'no-useless-rename': ERROR_IN_CI,\n 'no-param-reassign': ERROR_IN_CI,\n 'prefer-template': ERROR_IN_CI,\n 'prefer-const': [ERROR_IN_CI, { destructuring: 'all' }],\n\n 'no-prototype-builtins': OFF,\n 'no-inner-declarations': OFF,\n 'no-undef': OFF,\n 'no-console': [ERROR_IN_CI, { allow: ['warn', 'error', 'info'] }],\n 'no-restricted-imports': [\n ERROR_IN_CI,\n {\n patterns: [\n {\n group: ['*.test'],\n message: 'Do not import test files',\n },\n ],\n },\n ],\n 'no-restricted-syntax': [\n ERROR_IN_CI_ONLY,\n {\n selector: 'CallExpression[callee.property.name=\"only\"]',\n message: 'No test.only',\n },\n {\n selector: 'CallExpression[callee.property.name=\"todo\"]',\n message: 'No test.todo',\n },\n ],\n 'no-implicit-coercion': [\n ERROR_IN_CI,\n { disallowTemplateShorthand: true, allow: ['!!'] },\n ],\n\n /* typescript */\n '@typescript-eslint/no-unnecessary-condition': [\n ERROR_IN_CI,\n { allowConstantLoopConditions: true, checkTypePredicates: true },\n ],\n '@typescript-eslint/no-non-null-assertion': ERROR_IN_CI,\n '@typescript-eslint/consistent-type-assertions': [\n ERROR,\n {\n assertionStyle: 'never',\n },\n ],\n '@typescript-eslint/naming-convention': [\n 'error',\n {\n selector: 'typeLike',\n format: ['PascalCase'],\n },\n ],\n '@typescript-eslint/only-throw-error': ERROR_IN_CI,\n '@typescript-eslint/no-unused-expressions': ERROR_IN_CI,\n '@typescript-eslint/no-unused-vars': [\n ERROR_IN_CI,\n {\n argsIgnorePattern: '_$',\n ignoreRestSiblings: true,\n varsIgnorePattern: '_$',\n },\n ],\n '@typescript-eslint/no-shadow': [\n ERROR_IN_CI,\n { ignoreOnInitialization: true, allow: ['expect'] },\n ],\n '@typescript-eslint/no-unsafe-assignment': OFF,\n\n 'unicorn/expiring-todo-comments': [\n ERROR_IN_CI,\n {\n terms: [\n 'FIX',\n // 'TODO',\n 'palinter-ignore-unused-next-line',\n 'palinter-ignore-not-have-direct-circular-deps',\n 'palinter-ignore-not-have-circular-deps',\n 'palinter-ignore-not-have-unused-exports',\n ],\n ignore: [/^ HACK:/],\n allowWarningComments: false,\n ...(!errorOnExpiringTodos && { date: '2000-01-01' }),\n },\n ],\n 'unicorn/require-array-join-separator': ERROR_IN_CI,\n 'unicorn/no-empty-file': ERROR_IN_CI,\n 'unicorn/no-array-reduce': [\n ERROR_IN_CI,\n { allowSimpleOperations: true },\n ],\n 'unicorn/no-array-for-each': ERROR_IN_CI,\n\n /* extended-lint */\n '@ls-stack/no-unused-type-props-in-args': ERROR,\n '@ls-stack/improved-no-unnecessary-condition': ERROR,\n '@ls-stack/no-optional-root-props': ERROR_IN_CI,\n '@ls-stack/prefer-single-line-if': [\n WARN,\n { maxLineLength: 80, maxNonSimpleConditionLength: 40 },\n ],\n '@ls-stack/prefer-named-functions': [WARN, { ignoreRegex: 'Fn$' }],\n '@ls-stack/require-description': [ERROR, { ignore: ['eslint'] }],\n '@ls-stack/no-default-export': ERROR,\n '@ls-stack/no-unnecessary-casting': [\n ERROR_IN_CI,\n {\n additionalCastFunctions: [\n { name: 'castToString', expectedType: 'string' },\n { name: 'castToNumber', expectedType: 'number' },\n ],\n },\n ],\n '@ls-stack/use-top-level-regex': ERROR,\n '@ls-stack/use-types-directly-above-usage': [ERROR],\n '@ls-stack/template-indent': [ERROR_IN_CI, { tags: ['dedent'] }],\n '@ls-stack/no-reexport': ERROR,\n '@ls-stack/no-type-guards': [\n ERROR_IN_CI,\n {\n alternativeMsgs: {\n inArrayFind: getNoTypeGuardsMessage(\n 'If not, use findAndMap from @ls-stack/utils/arrayUtils.',\n ),\n inArrayFilter: getNoTypeGuardsMessage(\n 'If not, use filterAndMap from @ls-stack/utils/arrayUtils.',\n ),\n },\n },\n ],\n\n /* vitest */\n 'vitest/expect-expect': ERROR_IN_CI,\n 'vitest/no-identical-title': ERROR_IN_CI,\n },\n },\n {\n files: ['*.test.{ts,tsx}', '*.spec.{ts,tsx}'],\n ...vitest.configs.recommended,\n },\n {\n files: [\n 'eslint.config.{js,cjs,mjs,ts}',\n 'tsup.config.ts',\n 'vitest.config.ts',\n ...allowDefaultExport,\n ],\n rules: {\n '@ls-stack/no-default-export': OFF,\n },\n },\n {\n rules: { ...rules },\n },\n ...extendsConfig,\n {\n ignores: ignore,\n },\n );\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ls-stack/eslint-cfg",
|
|
3
3
|
"description": "Eslint cfg preset of @ls-stack packages",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.6.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
@@ -23,23 +23,23 @@
|
|
|
23
23
|
"node": ">=21.5.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@ls-stack/utils": "^3.
|
|
27
|
-
"@types/node": "^
|
|
28
|
-
"prettier": "3.
|
|
29
|
-
"prettier-plugin-organize-imports": "^4.
|
|
30
|
-
"tsup": "^8.5.
|
|
31
|
-
"typescript": "5.9.
|
|
26
|
+
"@ls-stack/utils": "^3.68.0",
|
|
27
|
+
"@types/node": "^25.2.3",
|
|
28
|
+
"prettier": "3.8.1",
|
|
29
|
+
"prettier-plugin-organize-imports": "^4.3.0",
|
|
30
|
+
"tsup": "^8.5.1",
|
|
31
|
+
"typescript": "5.9.3",
|
|
32
32
|
"@types/eslint": "^9.6.1"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@eslint/js": "^9.
|
|
36
|
-
"@ls-stack/extended-lint": "^0.
|
|
37
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
38
|
-
"@typescript-eslint/parser": "^8.
|
|
39
|
-
"@typescript-eslint/utils": "^8.
|
|
40
|
-
"typescript-eslint": "^8.
|
|
41
|
-
"eslint": "^9.
|
|
42
|
-
"eslint-plugin-unicorn": "^
|
|
35
|
+
"@eslint/js": "^9.39.2",
|
|
36
|
+
"@ls-stack/extended-lint": "^0.83.0",
|
|
37
|
+
"@typescript-eslint/eslint-plugin": "^8.55.0",
|
|
38
|
+
"@typescript-eslint/parser": "^8.55.0",
|
|
39
|
+
"@typescript-eslint/utils": "^8.55.0",
|
|
40
|
+
"typescript-eslint": "^8.55.0",
|
|
41
|
+
"eslint": "^9.39.2",
|
|
42
|
+
"eslint-plugin-unicorn": "^63.0.0",
|
|
43
43
|
"eslint-plugin-vitest": "^0.5.4"
|
|
44
44
|
},
|
|
45
45
|
"scripts": {
|