@seanblonien/eslint-config-base 1.0.1 → 1.0.3
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 +3 -1
- package/dist/index.js +30 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -31,7 +31,9 @@ export default [
|
|
|
31
31
|
...baseConfig,
|
|
32
32
|
{
|
|
33
33
|
rules: {
|
|
34
|
-
|
|
34
|
+
// Override rules from the base config as needed
|
|
35
|
+
'no-loops/no-loops': 'off', // Allow loops in this project
|
|
36
|
+
'@typescript-eslint/no-magic-numbers': 'off', // Allow magic numbers
|
|
35
37
|
},
|
|
36
38
|
},
|
|
37
39
|
{
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,9 @@ import banPlugin from "eslint-plugin-ban";
|
|
|
18
18
|
var concatElementsByRegexUnion = (elements) => elements.reduce((element, accum, index) => `${accum}${index === 0 ? "" : "|"}${element}`, "");
|
|
19
19
|
var booleanNamePrefixes = [
|
|
20
20
|
"is",
|
|
21
|
+
"as",
|
|
21
22
|
"are",
|
|
23
|
+
"was",
|
|
22
24
|
"should",
|
|
23
25
|
"has",
|
|
24
26
|
"can",
|
|
@@ -36,7 +38,11 @@ var booleanNamePrefixes = [
|
|
|
36
38
|
"destructive",
|
|
37
39
|
"hide",
|
|
38
40
|
"error",
|
|
39
|
-
"override"
|
|
41
|
+
"override",
|
|
42
|
+
"need",
|
|
43
|
+
"must",
|
|
44
|
+
"require",
|
|
45
|
+
"want"
|
|
40
46
|
];
|
|
41
47
|
var booleanNameSuffixes = "[A-Z]([A-Za-z]?)+";
|
|
42
48
|
var booleanNameExceptionsList = [
|
|
@@ -234,38 +240,54 @@ var config = [
|
|
|
234
240
|
"camelcase": ["warn", { allow: ["^_", "content_type", "reply_to"] }],
|
|
235
241
|
"@typescript-eslint/naming-convention": [
|
|
236
242
|
"warn",
|
|
243
|
+
// Property naming rules
|
|
237
244
|
{
|
|
238
245
|
selector: "property",
|
|
239
246
|
format: ["camelCase", "UPPER_CASE"],
|
|
240
247
|
leadingUnderscore: "allow",
|
|
241
248
|
filter: {
|
|
242
|
-
regex: String.raw`^_|[- /?:{}@%]|Provider|
|
|
249
|
+
regex: String.raw`^_|[- /?:{}@%]|Provider|Comp|^item$|^condition$|^container$|^Container$|^\d+$`,
|
|
250
|
+
// ignore properties with dashes/slashes/spaces
|
|
243
251
|
match: false
|
|
244
252
|
}
|
|
245
253
|
},
|
|
254
|
+
// Variable-like naming rules
|
|
246
255
|
{
|
|
247
256
|
selector: "variableLike",
|
|
248
|
-
format: ["camelCase", "UPPER_CASE"],
|
|
249
|
-
trailingUnderscore: "allow"
|
|
250
|
-
filter: { regex: "^_|Comp|Container|Provider|Stack|Root", match: false }
|
|
257
|
+
format: ["camelCase", "UPPER_CASE", "PascalCase"],
|
|
258
|
+
trailingUnderscore: "allow"
|
|
251
259
|
},
|
|
260
|
+
// Function variable naming rules
|
|
252
261
|
{
|
|
253
262
|
selector: "variable",
|
|
254
263
|
format: ["camelCase", "PascalCase"],
|
|
255
264
|
types: ["function"],
|
|
256
|
-
filter: {
|
|
265
|
+
filter: {
|
|
266
|
+
regex: "^_|Comp|Provider|Stack|Wrapper|Root",
|
|
267
|
+
// allowing for 'Component' parameter names
|
|
268
|
+
match: false
|
|
269
|
+
}
|
|
257
270
|
},
|
|
271
|
+
// Type naming rules
|
|
258
272
|
{
|
|
259
273
|
selector: "typeLike",
|
|
260
274
|
format: ["PascalCase"],
|
|
261
|
-
filter: {
|
|
275
|
+
filter: {
|
|
276
|
+
regex: "^_|_$",
|
|
277
|
+
match: false
|
|
278
|
+
}
|
|
262
279
|
},
|
|
280
|
+
// Boolean naming rules
|
|
263
281
|
{
|
|
264
282
|
selector: ["variable", "property", "parameter", "typeProperty"],
|
|
265
283
|
types: ["boolean"],
|
|
266
284
|
format: ["UPPER_CASE", "PascalCase"],
|
|
285
|
+
// must be PascalCase because prefix is trimmed
|
|
267
286
|
prefix: booleanNamePrefixes,
|
|
268
|
-
filter: {
|
|
287
|
+
filter: {
|
|
288
|
+
regex: booleanNameExceptions,
|
|
289
|
+
match: false
|
|
290
|
+
}
|
|
269
291
|
}
|
|
270
292
|
],
|
|
271
293
|
// TS type safety and preferences
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/boolean-naming.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-magic-numbers -- config file */\n/* eslint-disable @typescript-eslint/naming-convention -- config file */\nimport eslint from '@eslint/js';\n// @ts-expect-error - no types available\nimport comments from '@eslint-community/eslint-plugin-eslint-comments/configs';\nimport stylistic from '@stylistic/eslint-plugin';\nimport { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';\nimport importXPlugin from 'eslint-plugin-import-x';\nimport sonarjsPlugin from 'eslint-plugin-sonarjs';\nimport sortPlugin from 'eslint-plugin-sort';\nimport testingLibraryPlugin from 'eslint-plugin-testing-library';\nimport unicornPlugin from 'eslint-plugin-unicorn';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globals from 'globals';\nimport tseslint from 'typescript-eslint';\n// @ts-expect-error - no types available\nimport noLoopsPlugin from 'eslint-plugin-no-loops';\n// @ts-expect-error - no types available\nimport banPlugin from 'eslint-plugin-ban';\nimport type { Linter } from 'eslint';\nimport { booleanNameExceptions, booleanNamePrefixes } from './boolean-naming';\n\ntype Plugin = typeof testingLibraryPlugin;\n\nconst config: Linter.Config[] = [\n // Base recommended rules from ESLint\n eslint.configs.recommended,\n\n // TypeScript recommended configs\n ...tseslint.configs.recommendedTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n ...tseslint.configs.strict,\n\n // Apply stylistic rules with customized settings\n stylistic.configs.customize({\n arrowParens: true,\n // jsx: true,\n braceStyle: '1tbs',\n commaDangle: 'always-multiline',\n indent: 2,\n quoteProps: 'consistent-as-needed',\n quotes: 'single',\n semi: true,\n }),\n\n // Import plugin configuration\n importXPlugin.flatConfigs.recommended,\n importXPlugin.flatConfigs.typescript,\n sortPlugin.configs['flat/recommended'],\n\n // Code quality plugins\n unicornPlugin.configs.recommended,\n (comments as { recommended: Linter.Config }).recommended,\n sonarjsPlugin.configs.recommended,\n\n // General JavaScript/TypeScript configuration\n {\n files: ['**/*.{js,mjs,cjs,ts,tsx}'],\n languageOptions: {\n ecmaVersion: 'latest',\n globals: {\n ...globals.browser,\n ...globals.node,\n ...globals.es2025,\n ...globals.vitest,\n },\n parserOptions: {\n projectService: true,\n warnOnUnsupportedTypeScriptVersion: true,\n },\n sourceType: 'module',\n },\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n plugins: {\n 'no-loops': noLoopsPlugin as Plugin,\n 'ban': banPlugin as Plugin,\n 'testing-library': testingLibraryPlugin,\n 'unused-imports': unusedImports,\n },\n rules: {\n // --- Stylistic Rules ---\n // Core rules turned off in favor of stylistic rules\n 'quotes': 'off',\n 'jsx-quotes': 'off',\n 'func-call-spacing': 'off',\n 'dot-notation': 'off',\n 'no-unused-expressions': 'off',\n 'no-use-before-define': 'off',\n 'default-param-last': 'off',\n 'no-redeclare': 'off',\n 'no-shadow': 'off',\n\n // Stylistic (overrides vs stylistic recommended)\n 'quote-props': ['warn', 'consistent-as-needed'],\n '@stylistic/quotes': ['warn', 'single', { avoidEscape: true }],\n '@stylistic/jsx-quotes': ['warn', 'prefer-single'],\n '@stylistic/jsx-one-expression-per-line': 'off',\n '@stylistic/block-spacing': ['warn', 'never'],\n '@stylistic/object-curly-newline': [\n 'warn',\n { ObjectPattern: { multiline: true, consistent: true } },\n ],\n 'object-property-newline': [\n 'warn',\n { allowAllPropertiesOnSameLine: true },\n ],\n 'function-call-argument-newline': ['warn', 'consistent'],\n 'no-multiple-empty-lines': ['warn', { max: 1, maxEOF: 1 }],\n 'no-multi-spaces': 'warn',\n 'arrow-spacing': 'warn',\n 'space-infix-ops': 'warn',\n '@stylistic/operator-linebreak': [\n 'warn',\n 'after',\n { overrides: { '?': 'before', ':': 'before' } },\n ],\n 'comma-style': ['warn', 'last'],\n 'complexity': ['warn', { max: 20 }],\n '@stylistic/max-len': [\n 'warn',\n {\n code: 100,\n comments: 120,\n ignoreUrls: true,\n ignoreTrailingComments: true,\n ignorePattern:\n String.raw`^.*eslint-(disable|enable).+|it\\(|ErrorCodes|@param|@return|^\\s*\\[[^\\]]+\\]:\\s*.+?;$`,\n ignoreTemplateLiterals: true,\n ignoreStrings: true,\n ignoreRegExpLiterals: true,\n },\n ],\n 'max-lines-per-function': ['error', 120],\n 'max-lines': ['error', { max: 900, skipBlankLines: true }],\n 'func-style': ['warn', 'expression'],\n 'padding-line-between-statements': [\n 'error',\n { blankLine: 'never', prev: '*', next: 'import' },\n ],\n 'object-shorthand': ['warn', 'always'],\n 'arrow-body-style': ['warn', 'as-needed'],\n 'prefer-destructuring': 'warn',\n 'prefer-arrow-callback': 'error',\n 'prefer-template': 'warn',\n 'one-var': ['error', 'never'],\n 'no-bitwise': 'error',\n\n // TypeScript equivalents and customizations\n '@typescript-eslint/no-redeclare': 'error',\n '@typescript-eslint/default-param-last': 'error',\n '@typescript-eslint/require-await': 'off',\n 'no-return-await': 'warn',\n 'no-nested-ternary': 'warn',\n 'no-unneeded-ternary': 'warn',\n 'no-else-return': 'warn',\n 'no-constant-condition': 'off',\n '@typescript-eslint/dot-notation': 'error',\n '@typescript-eslint/no-unused-expressions': [\n 'error',\n {\n allowShortCircuit: true,\n allowTernary: true,\n allowTaggedTemplates: true,\n },\n ],\n '@typescript-eslint/no-use-before-define': [\n 'error',\n { variables: true, functions: false },\n ],\n 'no-console': 'warn',\n 'no-useless-concat': 'warn',\n 'no-new': 'error',\n 'no-implicit-coercion': ['warn', { allow: ['!!'] }],\n 'no-extra-boolean-cast': 'warn',\n\n // Magic numbers\n 'no-magic-numbers': 'off',\n '@typescript-eslint/no-magic-numbers': [\n 'error',\n {\n ignoreEnums: true,\n ignoreArrayIndexes: true,\n ignoreDefaultValues: true,\n ignoreTypeIndexes: true,\n ignore: [0, 1, -1, 2],\n },\n ],\n\n // More stylistic specifics\n '@stylistic/brace-style': ['warn', '1tbs', { allowSingleLine: true }],\n '@stylistic/comma-dangle': ['warn', 'always-multiline'],\n '@stylistic/comma-spacing': 'warn',\n '@stylistic/function-call-spacing': ['error'],\n\n // Naming\n 'camelcase': ['warn', { allow: ['^_', 'content_type', 'reply_to'] }],\n '@typescript-eslint/naming-convention': [\n 'warn',\n {\n selector: 'property',\n format: ['camelCase', 'UPPER_CASE'],\n leadingUnderscore: 'allow',\n filter: {\n regex:\n String.raw`^_|[- /?:{}@%]|Provider|Mui|Comp|^item$|^condition$|^container$|^Container$|^\\d+$`,\n match: false,\n },\n },\n {\n selector: 'variableLike',\n format: ['camelCase', 'UPPER_CASE'],\n trailingUnderscore: 'allow',\n filter: { regex: '^_|Comp|Container|Provider|Stack|Root', match: false },\n },\n {\n selector: 'variable',\n format: ['camelCase', 'PascalCase'],\n types: ['function'],\n filter: { regex: '^_|Comp|Provider|Stack', match: false },\n },\n {\n selector: 'typeLike',\n format: ['PascalCase'],\n filter: { regex: '^_|_$', match: false },\n },\n {\n selector: ['variable', 'property', 'parameter', 'typeProperty'],\n types: ['boolean'],\n format: ['UPPER_CASE', 'PascalCase'],\n prefix: booleanNamePrefixes,\n filter: { regex: booleanNameExceptions, match: false },\n },\n ],\n\n // TS type safety and preferences\n '@typescript-eslint/no-explicit-any': ['warn', { fixToUnknown: true }],\n '@typescript-eslint/no-inferrable-types': ['warn', { ignoreParameters: true }],\n '@typescript-eslint/no-shadow': 'error',\n '@typescript-eslint/no-unsafe-enum-comparison': 'off',\n '@typescript-eslint/no-base-to-string': 'off',\n '@typescript-eslint/prefer-nullish-coalescing': [\n 'warn',\n { ignorePrimitives: { string: true } },\n ],\n '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',\n '@typescript-eslint/no-non-null-asserted-optional-chain': 'error',\n '@typescript-eslint/no-extra-non-null-assertion': 'error',\n '@typescript-eslint/no-confusing-non-null-assertion': 'error',\n '@typescript-eslint/ban-ts-comment': [\n 'error',\n { 'ts-expect-error': 'allow-with-description', 'ts-ignore': 'allow-with-description' },\n ],\n '@typescript-eslint/no-empty-object-type': 'warn',\n '@typescript-eslint/no-unsafe-function-type': 'warn',\n '@typescript-eslint/no-wrapper-object-types': 'warn',\n '@typescript-eslint/array-type': ['warn', { default: 'array' }],\n '@stylistic/array-element-newline': ['warn', { multiline: true, consistent: true }],\n '@stylistic/array-bracket-newline': ['warn', 'consistent'],\n '@stylistic/no-mixed-operators': ['warn', { allowSamePrecedence: true }],\n '@stylistic/rest-spread-spacing': ['warn', 'never'],\n '@typescript-eslint/no-unnecessary-condition': 'warn',\n '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'warn',\n\n // TS consistency\n '@typescript-eslint/consistent-indexed-object-style': ['error', 'record'],\n '@typescript-eslint/consistent-type-assertions': [\n 'error',\n { assertionStyle: 'as' },\n ],\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/consistent-type-exports': 'error',\n '@typescript-eslint/method-signature-style': 'error',\n\n // Expressions and async\n '@typescript-eslint/no-confusing-void-expression': [\n 'error',\n { ignoreArrowShorthand: true },\n ],\n '@typescript-eslint/no-invalid-void-type': 'off',\n '@typescript-eslint/no-meaningless-void-operator': 'error',\n '@typescript-eslint/no-misused-promises': 'off',\n '@typescript-eslint/no-var-requires': 'off',\n\n // TS modern prefs\n '@typescript-eslint/prefer-includes': 'error',\n '@typescript-eslint/prefer-optional-chain': 'error',\n '@typescript-eslint/prefer-reduce-type-parameter': 'error',\n '@typescript-eslint/prefer-string-starts-ends-with': 'error',\n\n // --- Comment Formatting Rules ---\n 'spaced-comment': 'off',\n '@stylistic/spaced-comment': ['warn', 'always', { line: { markers: ['!', '?', '-', '**'] } }],\n\n // --- Unused Variables & Imports Rules ---\n 'no-unused-vars': 'off',\n '@stylistic/no-unused-vars': 'off',\n 'sonarjs/no-unused-vars': 'off',\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'warn',\n {\n vars: 'all',\n varsIgnorePattern: '^_',\n args: 'after-used',\n argsIgnorePattern: '^_',\n },\n ],\n\n // --- Banned API Rules ---\n 'ban/ban': [\n 'warn',\n {\n name: ['*', 'concat'],\n message:\n 'Imperative operation: prefer use ES6 spread, i.e. [...items, newItem]',\n },\n {\n name: ['Object', 'assign'],\n message: 'Use the spread operator `{...obj}` instead',\n },\n ],\n\n // --- Code Structure Restrictions ---\n // No loops rule\n 'no-loops/no-loops': 'error',\n\n // Syntax restrictions\n 'no-restricted-syntax': [\n 'error',\n {\n selector: 'SwitchStatement',\n message:\n 'Switch statements are banned. Use `ts-pattern` instead.',\n },\n ],\n\n // --- ESLint Comments Rules ---\n '@eslint-community/eslint-comments/require-description': ['error', { ignore: ['eslint-enable'] }],\n\n // --- Testing Library Rules ---\n 'testing-library/no-render-in-lifecycle': ['error', { allowTestingFrameworkSetupHook: 'beforeEach' }],\n 'testing-library/no-unnecessary-act': 'off',\n\n // --- Import Rules ---\n // Commented out rules kept for reference\n // 'import/no-default-export': 'warn',\n // 'import/no-restricted-paths': ['warn', { zones: restrictedPaths }], // Define restrictedPaths\n 'import-x/no-named-as-default-member': 'off',\n 'import-x/no-absolute-path': 'warn',\n 'import-x/newline-after-import': 'warn',\n 'import-x/no-cycle': ['error', { maxDepth: 1, ignoreExternal: true }],\n 'import-x/order': ['warn',\n {\n groups: [\n 'builtin', // Node.js built-in modules\n 'external', // Packages from node_modules\n ['type', 'internal'], // Type imports, Absolute imports (often aliased like 'src/components')\n 'parent', // Relative imports from parent directories (../)\n 'sibling', // Relative imports from sibling directories (./)\n 'index', // Index file imports (./index.js)\n 'object', // Imports from object notation\n ],\n }],\n\n // --- Sort Rules ---\n 'sort/imports': 'off', // use 'import-x/order' rule instead\n 'sort/object-properties': 'off',\n 'sort/type-properties': 'warn',\n 'sort/string-unions': 'off',\n\n // --- Unicorn Rules ---\n 'unicorn/prefer-global-this': 'off',\n 'unicorn/prevent-abbreviations': 'off',\n 'unicorn/no-array-reduce': 'off',\n 'unicorn/no-array-for-each': 'off',\n 'unicorn/prefer-top-level-await': 'off',\n 'unicorn/no-array-callback-reference': 'off',\n 'unicorn/prefer-switch': 'off',\n 'unicorn/no-abusive-eslint-disable': 'off',\n 'unicorn/prefer-object-from-entries': 'off',\n 'unicorn/no-null': 'off',\n 'unicorn/filename-case': [\n 'warn',\n {\n cases: { camelCase: true, kebabCase: true },\n ignore: [/\\.(js|cjs)$/], // Keep ignoring JS/CJS if needed\n },\n ],\n 'unicorn/no-unused-properties': 'warn',\n 'unicorn/consistent-destructuring': 'warn',\n 'unicorn/no-useless-undefined': ['warn', { checkArguments: false }],\n\n // --- SonarJS Rules ---\n 'sonarjs/no-duplicated-branches': 'warn',\n 'sonarjs/no-duplicate-string': 'off',\n 'sonarjs/deprecation': 'off',\n 'sonarjs/cognitive-complexity': 'off', // use 'complexity' rule instead\n 'sonarjs/no-nested-functions': 'off', // use 'complexity' rule instead\n 'sonarjs/function-return-type': 'off', // use '@typescript-eslint/explicit-module-boundary-types' rule instead\n 'sonarjs/no-redundant-optional': 'off', // use '@typescript-eslint/no-redundant-optional' rule instead\n 'sonarjs/no-commented-code': 'off', // slow rule\n 'sonarjs/todo-tag': 'off', // eventually re-enable\n 'sonarjs/pseudo-random': 'off',\n 'sonarjs/different-types-comparison': 'off', // too many false positives\n 'sonarjs/redundant-type-aliases': 'off',\n 'sonarjs/void-use': 'off', // allow to annotate async functions not explicitly awaited\n 'sonarjs/no-nested-conditional': 'off', // use 'no-nested-ternary' rule instead\n 'sonarjs/no-hardcoded-passwords': 'off',\n },\n settings: {\n 'import-x/extensions': ['.js', '.cjs', '.mjs'],\n 'import-x/parsers': { 'typescript-eslint': ['.ts', '.tsx'] },\n 'import-x/resolver-next': [\n createTypeScriptImportResolver({\n alwaysTryTypes: true,\n bun: true,\n }),\n ],\n },\n },\n\n // Config files overrides\n {\n files: ['**/*.config.{ts,js,mjs,cjs}'],\n rules: {\n '@typescript-eslint/no-magic-numbers': 'off',\n '@typescript-eslint/naming-convention': 'off',\n },\n },\n];\n\n// Export shared utilities for use in other packages\nexport { booleanNameConvention, booleanNameExceptions, booleanNamePrefixes } from './boolean-naming';\n\nexport default config;\n\n/* eslint-enable @typescript-eslint/no-magic-numbers */\n/* eslint-enable @typescript-eslint/naming-convention */\n","/**\n * Combines an array of regex expressions into a single regex expression via the union operator.\n */\nconst concatElementsByRegexUnion = (elements: string[]) =>\n elements.reduce((element, accum, index) => `${accum}${index === 0 ? '' : '|'}${element}`, '');\n\n// Prefixes allowed at the start of a boolean variable/parameter name\nexport const booleanNamePrefixes = [\n 'is',\n 'are',\n 'should',\n 'has',\n 'can',\n 'did',\n 'will',\n 'use',\n 'does',\n 'show',\n 'allow',\n 'enabled',\n 'enable',\n 'disable',\n 'editable',\n 'refetch',\n 'destructive',\n 'hide',\n 'error',\n 'override',\n];\n// Regex for the rest of a boolean variable/parameter name (the part after the prefix)\nconst booleanNameSuffixes = '[A-Z]([A-Za-z]?)+';\n// Exceptions to the rule for allowable boolean variable/parameter names\nconst booleanNameExceptionsList = [\n '^_',\n '_$',\n '[- /?:{}@%]',\n '^[A-Z][a-z]*([A-Z][a-z]*)',\n '^item$',\n '^value$',\n '^condition$',\n '^container$',\n '^included',\n '^center$',\n '^debug$',\n '^concurrent',\n '^animated$',\n '^allow',\n '^visible',\n '^merge$',\n '^multiSelect$',\n 'Shown$',\n '^enumerable$',\n '^configurable$',\n];\n// A singular regex string for the boolean name exceptions (instead of array of expressions)\nexport const booleanNameExceptions = concatElementsByRegexUnion(booleanNameExceptionsList);\n// The full boolean naming convetions regex\n\nexport const booleanNameConvention = new RegExp(\n `${concatElementsByRegexUnion(\n booleanNamePrefixes,\n )}|${booleanNameSuffixes}|${booleanNameExceptions}`,\n).toString();\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/boolean-naming.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-magic-numbers -- config file */\n/* eslint-disable @typescript-eslint/naming-convention -- config file */\nimport eslint from '@eslint/js';\n// @ts-expect-error - no types available\nimport comments from '@eslint-community/eslint-plugin-eslint-comments/configs';\nimport stylistic from '@stylistic/eslint-plugin';\nimport { createTypeScriptImportResolver } from 'eslint-import-resolver-typescript';\nimport importXPlugin from 'eslint-plugin-import-x';\nimport sonarjsPlugin from 'eslint-plugin-sonarjs';\nimport sortPlugin from 'eslint-plugin-sort';\nimport testingLibraryPlugin from 'eslint-plugin-testing-library';\nimport unicornPlugin from 'eslint-plugin-unicorn';\nimport unusedImports from 'eslint-plugin-unused-imports';\nimport globals from 'globals';\nimport tseslint from 'typescript-eslint';\n// @ts-expect-error - no types available\nimport noLoopsPlugin from 'eslint-plugin-no-loops';\n// @ts-expect-error - no types available\nimport banPlugin from 'eslint-plugin-ban';\nimport type { Linter } from 'eslint';\nimport { booleanNameExceptions, booleanNamePrefixes } from './boolean-naming';\n\ntype Plugin = typeof testingLibraryPlugin;\n\nconst config: Linter.Config[] = [\n // Base recommended rules from ESLint\n eslint.configs.recommended,\n\n // TypeScript recommended configs\n ...tseslint.configs.recommendedTypeChecked,\n ...tseslint.configs.stylisticTypeChecked,\n ...tseslint.configs.strict,\n\n // Apply stylistic rules with customized settings\n stylistic.configs.customize({\n arrowParens: true,\n // jsx: true,\n braceStyle: '1tbs',\n commaDangle: 'always-multiline',\n indent: 2,\n quoteProps: 'consistent-as-needed',\n quotes: 'single',\n semi: true,\n }),\n\n // Import plugin configuration\n importXPlugin.flatConfigs.recommended,\n importXPlugin.flatConfigs.typescript,\n sortPlugin.configs['flat/recommended'],\n\n // Code quality plugins\n unicornPlugin.configs.recommended,\n (comments as { recommended: Linter.Config }).recommended,\n sonarjsPlugin.configs.recommended,\n\n // General JavaScript/TypeScript configuration\n {\n files: ['**/*.{js,mjs,cjs,ts,tsx}'],\n languageOptions: {\n ecmaVersion: 'latest',\n globals: {\n ...globals.browser,\n ...globals.node,\n ...globals.es2025,\n ...globals.vitest,\n },\n parserOptions: {\n projectService: true,\n warnOnUnsupportedTypeScriptVersion: true,\n },\n sourceType: 'module',\n },\n linterOptions: {\n reportUnusedDisableDirectives: true,\n },\n plugins: {\n 'no-loops': noLoopsPlugin as Plugin,\n 'ban': banPlugin as Plugin,\n 'testing-library': testingLibraryPlugin,\n 'unused-imports': unusedImports,\n },\n rules: {\n // --- Stylistic Rules ---\n // Core rules turned off in favor of stylistic rules\n 'quotes': 'off',\n 'jsx-quotes': 'off',\n 'func-call-spacing': 'off',\n 'dot-notation': 'off',\n 'no-unused-expressions': 'off',\n 'no-use-before-define': 'off',\n 'default-param-last': 'off',\n 'no-redeclare': 'off',\n 'no-shadow': 'off',\n\n // Stylistic (overrides vs stylistic recommended)\n 'quote-props': ['warn', 'consistent-as-needed'],\n '@stylistic/quotes': ['warn', 'single', { avoidEscape: true }],\n '@stylistic/jsx-quotes': ['warn', 'prefer-single'],\n '@stylistic/jsx-one-expression-per-line': 'off',\n '@stylistic/block-spacing': ['warn', 'never'],\n '@stylistic/object-curly-newline': [\n 'warn',\n { ObjectPattern: { multiline: true, consistent: true } },\n ],\n 'object-property-newline': [\n 'warn',\n { allowAllPropertiesOnSameLine: true },\n ],\n 'function-call-argument-newline': ['warn', 'consistent'],\n 'no-multiple-empty-lines': ['warn', { max: 1, maxEOF: 1 }],\n 'no-multi-spaces': 'warn',\n 'arrow-spacing': 'warn',\n 'space-infix-ops': 'warn',\n '@stylistic/operator-linebreak': [\n 'warn',\n 'after',\n { overrides: { '?': 'before', ':': 'before' } },\n ],\n 'comma-style': ['warn', 'last'],\n 'complexity': ['warn', { max: 20 }],\n '@stylistic/max-len': [\n 'warn',\n {\n code: 100,\n comments: 120,\n ignoreUrls: true,\n ignoreTrailingComments: true,\n ignorePattern:\n String.raw`^.*eslint-(disable|enable).+|it\\(|ErrorCodes|@param|@return|^\\s*\\[[^\\]]+\\]:\\s*.+?;$`,\n ignoreTemplateLiterals: true,\n ignoreStrings: true,\n ignoreRegExpLiterals: true,\n },\n ],\n 'max-lines-per-function': ['error', 120],\n 'max-lines': ['error', { max: 900, skipBlankLines: true }],\n 'func-style': ['warn', 'expression'],\n 'padding-line-between-statements': [\n 'error',\n { blankLine: 'never', prev: '*', next: 'import' },\n ],\n 'object-shorthand': ['warn', 'always'],\n 'arrow-body-style': ['warn', 'as-needed'],\n 'prefer-destructuring': 'warn',\n 'prefer-arrow-callback': 'error',\n 'prefer-template': 'warn',\n 'one-var': ['error', 'never'],\n 'no-bitwise': 'error',\n\n // TypeScript equivalents and customizations\n '@typescript-eslint/no-redeclare': 'error',\n '@typescript-eslint/default-param-last': 'error',\n '@typescript-eslint/require-await': 'off',\n 'no-return-await': 'warn',\n 'no-nested-ternary': 'warn',\n 'no-unneeded-ternary': 'warn',\n 'no-else-return': 'warn',\n 'no-constant-condition': 'off',\n '@typescript-eslint/dot-notation': 'error',\n '@typescript-eslint/no-unused-expressions': [\n 'error',\n {\n allowShortCircuit: true,\n allowTernary: true,\n allowTaggedTemplates: true,\n },\n ],\n '@typescript-eslint/no-use-before-define': [\n 'error',\n { variables: true, functions: false },\n ],\n 'no-console': 'warn',\n 'no-useless-concat': 'warn',\n 'no-new': 'error',\n 'no-implicit-coercion': ['warn', { allow: ['!!'] }],\n 'no-extra-boolean-cast': 'warn',\n\n // Magic numbers\n 'no-magic-numbers': 'off',\n '@typescript-eslint/no-magic-numbers': [\n 'error',\n {\n ignoreEnums: true,\n ignoreArrayIndexes: true,\n ignoreDefaultValues: true,\n ignoreTypeIndexes: true,\n ignore: [0, 1, -1, 2],\n },\n ],\n\n // More stylistic specifics\n '@stylistic/brace-style': ['warn', '1tbs', { allowSingleLine: true }],\n '@stylistic/comma-dangle': ['warn', 'always-multiline'],\n '@stylistic/comma-spacing': 'warn',\n '@stylistic/function-call-spacing': ['error'],\n\n // Naming\n 'camelcase': ['warn', { allow: ['^_', 'content_type', 'reply_to'] }],\n '@typescript-eslint/naming-convention': [\n 'warn',\n // Property naming rules\n {\n selector: 'property',\n format: ['camelCase', 'UPPER_CASE'],\n leadingUnderscore: 'allow',\n filter: {\n regex: String.raw`^_|[- /?:{}@%]|Provider|Comp|^item$|^condition$|^container$|^Container$|^\\d+$`, // ignore properties with dashes/slashes/spaces\n match: false,\n },\n },\n // Variable-like naming rules\n {\n selector: 'variableLike',\n format: ['camelCase', 'UPPER_CASE', 'PascalCase'],\n trailingUnderscore: 'allow',\n },\n // Function variable naming rules\n {\n selector: 'variable',\n format: ['camelCase', 'PascalCase'],\n types: ['function'],\n filter: {\n regex: '^_|Comp|Provider|Stack|Wrapper|Root', // allowing for 'Component' parameter names\n match: false,\n },\n },\n // Type naming rules\n {\n selector: 'typeLike',\n format: ['PascalCase'],\n filter: {\n regex: '^_|_$',\n match: false,\n },\n },\n // Boolean naming rules\n {\n selector: ['variable', 'property', 'parameter', 'typeProperty'],\n types: ['boolean'],\n format: ['UPPER_CASE', 'PascalCase'], // must be PascalCase because prefix is trimmed\n prefix: booleanNamePrefixes,\n filter: {\n regex: booleanNameExceptions,\n match: false,\n },\n },\n ],\n\n // TS type safety and preferences\n '@typescript-eslint/no-explicit-any': ['warn', { fixToUnknown: true }],\n '@typescript-eslint/no-inferrable-types': ['warn', { ignoreParameters: true }],\n '@typescript-eslint/no-shadow': 'error',\n '@typescript-eslint/no-unsafe-enum-comparison': 'off',\n '@typescript-eslint/no-base-to-string': 'off',\n '@typescript-eslint/prefer-nullish-coalescing': [\n 'warn',\n { ignorePrimitives: { string: true } },\n ],\n '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error',\n '@typescript-eslint/no-non-null-asserted-optional-chain': 'error',\n '@typescript-eslint/no-extra-non-null-assertion': 'error',\n '@typescript-eslint/no-confusing-non-null-assertion': 'error',\n '@typescript-eslint/ban-ts-comment': [\n 'error',\n { 'ts-expect-error': 'allow-with-description', 'ts-ignore': 'allow-with-description' },\n ],\n '@typescript-eslint/no-empty-object-type': 'warn',\n '@typescript-eslint/no-unsafe-function-type': 'warn',\n '@typescript-eslint/no-wrapper-object-types': 'warn',\n '@typescript-eslint/array-type': ['warn', { default: 'array' }],\n '@stylistic/array-element-newline': ['warn', { multiline: true, consistent: true }],\n '@stylistic/array-bracket-newline': ['warn', 'consistent'],\n '@stylistic/no-mixed-operators': ['warn', { allowSamePrecedence: true }],\n '@stylistic/rest-spread-spacing': ['warn', 'never'],\n '@typescript-eslint/no-unnecessary-condition': 'warn',\n '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'warn',\n\n // TS consistency\n '@typescript-eslint/consistent-indexed-object-style': ['error', 'record'],\n '@typescript-eslint/consistent-type-assertions': [\n 'error',\n { assertionStyle: 'as' },\n ],\n '@typescript-eslint/consistent-type-definitions': ['error', 'type'],\n '@typescript-eslint/consistent-type-exports': 'error',\n '@typescript-eslint/method-signature-style': 'error',\n\n // Expressions and async\n '@typescript-eslint/no-confusing-void-expression': [\n 'error',\n { ignoreArrowShorthand: true },\n ],\n '@typescript-eslint/no-invalid-void-type': 'off',\n '@typescript-eslint/no-meaningless-void-operator': 'error',\n '@typescript-eslint/no-misused-promises': 'off',\n '@typescript-eslint/no-var-requires': 'off',\n\n // TS modern prefs\n '@typescript-eslint/prefer-includes': 'error',\n '@typescript-eslint/prefer-optional-chain': 'error',\n '@typescript-eslint/prefer-reduce-type-parameter': 'error',\n '@typescript-eslint/prefer-string-starts-ends-with': 'error',\n\n // --- Comment Formatting Rules ---\n 'spaced-comment': 'off',\n '@stylistic/spaced-comment': ['warn', 'always', { line: { markers: ['!', '?', '-', '**'] } }],\n\n // --- Unused Variables & Imports Rules ---\n 'no-unused-vars': 'off',\n '@stylistic/no-unused-vars': 'off',\n 'sonarjs/no-unused-vars': 'off',\n 'unused-imports/no-unused-imports': 'error',\n 'unused-imports/no-unused-vars': [\n 'warn',\n {\n vars: 'all',\n varsIgnorePattern: '^_',\n args: 'after-used',\n argsIgnorePattern: '^_',\n },\n ],\n\n // --- Banned API Rules ---\n 'ban/ban': [\n 'warn',\n {\n name: ['*', 'concat'],\n message:\n 'Imperative operation: prefer use ES6 spread, i.e. [...items, newItem]',\n },\n {\n name: ['Object', 'assign'],\n message: 'Use the spread operator `{...obj}` instead',\n },\n ],\n\n // --- Code Structure Restrictions ---\n // No loops rule\n 'no-loops/no-loops': 'error',\n\n // Syntax restrictions\n 'no-restricted-syntax': [\n 'error',\n {\n selector: 'SwitchStatement',\n message:\n 'Switch statements are banned. Use `ts-pattern` instead.',\n },\n ],\n\n // --- ESLint Comments Rules ---\n '@eslint-community/eslint-comments/require-description': ['error', { ignore: ['eslint-enable'] }],\n\n // --- Testing Library Rules ---\n 'testing-library/no-render-in-lifecycle': ['error', { allowTestingFrameworkSetupHook: 'beforeEach' }],\n 'testing-library/no-unnecessary-act': 'off',\n\n // --- Import Rules ---\n // Commented out rules kept for reference\n // 'import/no-default-export': 'warn',\n // 'import/no-restricted-paths': ['warn', { zones: restrictedPaths }], // Define restrictedPaths\n 'import-x/no-named-as-default-member': 'off',\n 'import-x/no-absolute-path': 'warn',\n 'import-x/newline-after-import': 'warn',\n 'import-x/no-cycle': ['error', { maxDepth: 1, ignoreExternal: true }],\n 'import-x/order': ['warn',\n {\n groups: [\n 'builtin', // Node.js built-in modules\n 'external', // Packages from node_modules\n ['type', 'internal'], // Type imports, Absolute imports (often aliased like 'src/components')\n 'parent', // Relative imports from parent directories (../)\n 'sibling', // Relative imports from sibling directories (./)\n 'index', // Index file imports (./index.js)\n 'object', // Imports from object notation\n ],\n }],\n\n // --- Sort Rules ---\n 'sort/imports': 'off', // use 'import-x/order' rule instead\n 'sort/object-properties': 'off',\n 'sort/type-properties': 'warn',\n 'sort/string-unions': 'off',\n\n // --- Unicorn Rules ---\n 'unicorn/prefer-global-this': 'off',\n 'unicorn/prevent-abbreviations': 'off',\n 'unicorn/no-array-reduce': 'off',\n 'unicorn/no-array-for-each': 'off',\n 'unicorn/prefer-top-level-await': 'off',\n 'unicorn/no-array-callback-reference': 'off',\n 'unicorn/prefer-switch': 'off',\n 'unicorn/no-abusive-eslint-disable': 'off',\n 'unicorn/prefer-object-from-entries': 'off',\n 'unicorn/no-null': 'off',\n 'unicorn/filename-case': [\n 'warn',\n {\n cases: { camelCase: true, kebabCase: true },\n ignore: [/\\.(js|cjs)$/], // Keep ignoring JS/CJS if needed\n },\n ],\n 'unicorn/no-unused-properties': 'warn',\n 'unicorn/consistent-destructuring': 'warn',\n 'unicorn/no-useless-undefined': ['warn', { checkArguments: false }],\n\n // --- SonarJS Rules ---\n 'sonarjs/no-duplicated-branches': 'warn',\n 'sonarjs/no-duplicate-string': 'off',\n 'sonarjs/deprecation': 'off',\n 'sonarjs/cognitive-complexity': 'off', // use 'complexity' rule instead\n 'sonarjs/no-nested-functions': 'off', // use 'complexity' rule instead\n 'sonarjs/function-return-type': 'off', // use '@typescript-eslint/explicit-module-boundary-types' rule instead\n 'sonarjs/no-redundant-optional': 'off', // use '@typescript-eslint/no-redundant-optional' rule instead\n 'sonarjs/no-commented-code': 'off', // slow rule\n 'sonarjs/todo-tag': 'off', // eventually re-enable\n 'sonarjs/pseudo-random': 'off',\n 'sonarjs/different-types-comparison': 'off', // too many false positives\n 'sonarjs/redundant-type-aliases': 'off',\n 'sonarjs/void-use': 'off', // allow to annotate async functions not explicitly awaited\n 'sonarjs/no-nested-conditional': 'off', // use 'no-nested-ternary' rule instead\n 'sonarjs/no-hardcoded-passwords': 'off',\n },\n settings: {\n 'import-x/extensions': ['.js', '.cjs', '.mjs'],\n 'import-x/parsers': { 'typescript-eslint': ['.ts', '.tsx'] },\n 'import-x/resolver-next': [\n createTypeScriptImportResolver({\n alwaysTryTypes: true,\n bun: true,\n }),\n ],\n },\n },\n\n // Config files overrides\n {\n files: ['**/*.config.{ts,js,mjs,cjs}'],\n rules: {\n '@typescript-eslint/no-magic-numbers': 'off',\n '@typescript-eslint/naming-convention': 'off',\n },\n },\n];\n\n// Export shared utilities for use in other packages\nexport { booleanNameConvention, booleanNameExceptions, booleanNamePrefixes } from './boolean-naming';\n\nexport default config;\n\n/* eslint-enable @typescript-eslint/no-magic-numbers */\n/* eslint-enable @typescript-eslint/naming-convention */\n","/**\n * Combines an array of regex expressions into a single regex expression via the union operator.\n */\nconst concatElementsByRegexUnion = (elements: string[]) =>\n elements.reduce((element, accum, index) => `${accum}${index === 0 ? '' : '|'}${element}`, '');\n\n// Prefixes allowed at the start of a boolean variable/parameter name\nexport const booleanNamePrefixes = [\n 'is',\n 'as',\n 'are',\n 'was',\n 'should',\n 'has',\n 'can',\n 'did',\n 'will',\n 'use',\n 'does',\n 'show',\n 'allow',\n 'enabled',\n 'enable',\n 'disable',\n 'editable',\n 'refetch',\n 'destructive',\n 'hide',\n 'error',\n 'override',\n 'need',\n 'must',\n 'require',\n 'want',\n];\n// Regex for the rest of a boolean variable/parameter name (the part after the prefix)\nconst booleanNameSuffixes = '[A-Z]([A-Za-z]?)+';\n// Exceptions to the rule for allowable boolean variable/parameter names\nconst booleanNameExceptionsList = [\n '^_',\n '_$',\n '[- /?:{}@%]',\n '^[A-Z][a-z]*([A-Z][a-z]*)',\n '^item$',\n '^value$',\n '^condition$',\n '^container$',\n '^included',\n '^center$',\n '^debug$',\n '^concurrent',\n '^animated$',\n '^allow',\n '^visible',\n '^merge$',\n '^multiSelect$',\n 'Shown$',\n '^enumerable$',\n '^configurable$',\n];\n// A singular regex string for the boolean name exceptions (instead of array of expressions)\nexport const booleanNameExceptions = concatElementsByRegexUnion(booleanNameExceptionsList);\n// The full boolean naming convetions regex\n\nexport const booleanNameConvention = new RegExp(\n `${concatElementsByRegexUnion(\n booleanNamePrefixes,\n )}|${booleanNameSuffixes}|${booleanNameExceptions}`,\n).toString();\n"],"mappings":"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","names":[]}
|