@nexim/eslint-config 2.1.3 → 2.1.5

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/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.1.5](https://github.com/the-nexim/nanolib/compare/@nexim/eslint-config@2.1.4...@nexim/eslint-config@2.1.5) (2025-11-22)
7
+
8
+ ### Code Refactoring
9
+
10
+ * **eslint-config:** replace config function with defineConfig based config deprecation ([12ddb9a](https://github.com/the-nexim/nanolib/commit/12ddb9af84d32b5bf4c84cac731adf87668be061)) by @njfamirm
11
+
12
+ ## [2.1.4](https://github.com/the-nexim/nanolib/compare/@nexim/eslint-config@2.1.3...@nexim/eslint-config@2.1.4) (2025-11-22)
13
+
14
+ ### Bug Fixes
15
+
16
+ * **eslint-config:** update @eslint/compat peer dependency range to <3.0.0 ([38bcb33](https://github.com/the-nexim/nanolib/commit/38bcb339acbaac593eb59eeced5139c695287e69)) by @njfamirm
17
+
6
18
  ## [2.1.3](https://github.com/the-nexim/nanolib/compare/@nexim/eslint-config@2.1.2...@nexim/eslint-config@2.1.3) (2025-08-30)
7
19
 
8
20
  **Note:** Version bump only for package @nexim/eslint-config
@@ -1,2 +1,2 @@
1
- export declare const baseExtends: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
1
+ export declare const baseExtends: import("eslint/config").Config[];
2
2
  //# sourceMappingURL=extended-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extended-config.d.ts","sourceRoot":"","sources":["../../src/lib/extended-config.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,qEAAwG,CAAC"}
1
+ {"version":3,"file":"extended-config.d.ts","sourceRoot":"","sources":["../../src/lib/extended-config.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,kCAAuG,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const jsConfigs: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
1
+ export declare const jsConfigs: import("eslint/config").Config[];
2
2
  //# sourceMappingURL=javascript-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"javascript-config.d.ts","sourceRoot":"","sources":["../../src/lib/javascript-config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,qEAoBpB,CAAC"}
1
+ {"version":3,"file":"javascript-config.d.ts","sourceRoot":"","sources":["../../src/lib/javascript-config.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS,kCAoBpB,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const tsConfig: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
1
+ export declare const tsConfig: import("eslint/config").Config[];
2
2
  //# sourceMappingURL=typescript-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-config.d.ts","sourceRoot":"","sources":["../../src/lib/typescript-config.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ,qEAwHnB,CAAC"}
1
+ {"version":3,"file":"typescript-config.d.ts","sourceRoot":"","sources":["../../src/lib/typescript-config.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ,kCAwHnB,CAAC"}
package/dist/main.mjs CHANGED
@@ -1,186 +1,4 @@
1
- /* @nexim/eslint-config v2.1.3 */
2
-
3
- // src/lib/typescript-config.ts
4
- import stylistic from "@stylistic/eslint-plugin";
5
- import importPlugin from "eslint-plugin-import";
6
- import tsdocPlugin from "eslint-plugin-tsdoc";
7
- import * as globals from "globals";
8
- import { plugin, parser, config } from "typescript-eslint";
9
- var tsconfigRootDir = import.meta.dirname;
10
- var tsConfig = config({
11
- files: ["**/*.{ts,tsx}"],
12
- languageOptions: {
13
- globals: {
14
- ...globals["shared-node-browser"]
15
- },
16
- ecmaVersion: "latest",
17
- sourceType: "module",
18
- parser,
19
- parserOptions: {
20
- projectService: true,
21
- tsconfigRootDir
22
- }
23
- },
24
- extends: [importPlugin.flatConfigs.recommended, importPlugin.flatConfigs.typescript],
25
- plugins: {
26
- "@typescript-eslint": plugin,
27
- "@stylistic": stylistic,
28
- tsdoc: tsdocPlugin
29
- },
30
- rules: {
31
- "@stylistic/max-len": ["error", { code: 140 }],
32
- "no-eval": ["error", { allowIndirect: true }],
33
- "@stylistic/no-floating-decimal": "error",
34
- // no .5 or 2., use 0.5 or 2.0
35
- "@stylistic/space-infix-ops": "error",
36
- "@stylistic/brace-style": ["error", "stroustrup", { allowSingleLine: true }],
37
- "@stylistic/array-bracket-spacing": ["error", "always"],
38
- "@stylistic/indent": [
39
- "error",
40
- 2,
41
- {
42
- SwitchCase: 1,
43
- VariableDeclarator: 1,
44
- outerIIFEBody: 1,
45
- MemberExpression: 1,
46
- FunctionDeclaration: { parameters: 1, body: 1 },
47
- FunctionExpression: { parameters: 1, body: 1 },
48
- CallExpression: { arguments: 1 },
49
- ArrayExpression: 1,
50
- ObjectExpression: 1,
51
- ImportDeclaration: 1,
52
- flatTernaryExpressions: false,
53
- ignoreComments: false,
54
- ignoredNodes: [
55
- "TemplateLiteral *",
56
- "TSTypeParameterInstantiation",
57
- "FunctionExpression > .params[decorators.length > 0]",
58
- "FunctionExpression > .params > :matches(Decorator, :not(:first-child))",
59
- "ClassBody.body > PropertyDefinition[decorators.length > 0] > .key"
60
- ]
61
- }
62
- ],
63
- "@stylistic/operator-linebreak": ["error", "after", { overrides: { "?": "before", ":": "before" } }],
64
- "@stylistic/semi": "error",
65
- "tsdoc/syntax": "warn",
66
- "no-unused-vars": "off",
67
- "prefer-const": "error",
68
- "no-unused-labels": "off",
69
- "require-await": "error",
70
- "@typescript-eslint/no-dynamic-delete": "off",
71
- "@typescript-eslint/no-non-null-assertion": "off",
72
- // picked and customized from `stylistic-type-checked`
73
- "@typescript-eslint/consistent-type-definitions": "off",
74
- // prefer interface over type
75
- "@typescript-eslint/ban-ts-comment": ["error"],
76
- // no @ts-ignore without description
77
- "@typescript-eslint/no-deprecated": "error",
78
- // catches usage of @deprecated items
79
- "@typescript-eslint/no-duplicate-type-constituents": "error",
80
- // bad: type T = 'a' | 'a'
81
- "@typescript-eslint/no-explicit-any": "error",
82
- // bad: const x: any
83
- "@typescript-eslint/no-extra-non-null-assertion": "error",
84
- // bad: foo!!.bar
85
- "no-implied-eval": "off",
86
- "@typescript-eslint/no-invalid-void-type": "error",
87
- // bad: type T = void | string
88
- "@typescript-eslint/no-misused-spread": "error",
89
- // bad: [...new Set([])]
90
- "@typescript-eslint/no-non-null-asserted-nullish-coalescing": "error",
91
- // bad: foo! ?? bar
92
- "@typescript-eslint/no-non-null-asserted-optional-chain": "error",
93
- // bad: foo?.bar!
94
- "@typescript-eslint/no-redundant-type-constituents": "error",
95
- // bad: type T = string | 'a'
96
- "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
97
- // bad: bool === true
98
- "@typescript-eslint/no-unnecessary-template-expression": "error",
99
- // bad: `${5}`
100
- "@typescript-eslint/no-unnecessary-type-arguments": "error",
101
- // bad: Map<string> when string is default
102
- "@typescript-eslint/no-unnecessary-type-assertion": "error",
103
- // bad: x as string when x is string
104
- "@typescript-eslint/no-unnecessary-type-constraint": "error",
105
- // bad: <T extends any>
106
- "no-unused-expressions": "off",
107
- "@typescript-eslint/no-unused-expressions": "error",
108
- // bad: x + y;
109
- "no-useless-constructor": "off",
110
- "@typescript-eslint/no-useless-constructor": "error",
111
- // bad: constructor() {}
112
- "@typescript-eslint/no-wrapper-object-types": "error",
113
- // bad: String, use string
114
- "no-throw-literal": "off",
115
- "@typescript-eslint/only-throw-error": "error",
116
- // bad: throw "error"
117
- "@typescript-eslint/prefer-as-const": "error",
118
- // bad: let x: 'foo' = 'foo'
119
- "prefer-promise-reject-errors": "off",
120
- "@typescript-eslint/prefer-promise-reject-errors": "error",
121
- // bad: reject('error')
122
- "@typescript-eslint/prefer-reduce-type-parameter": "error",
123
- // use <T> reduce over type assertions
124
- "@typescript-eslint/require-await": "error",
125
- // async must use await
126
- "import/order": [
127
- "error",
128
- {
129
- groups: ["builtin", "external", "internal", ["parent", "sibling", "index"], "object", "unknown", "type"],
130
- "newlines-between": "always",
131
- warnOnUnassignedImports: true,
132
- alphabetize: {
133
- order: "asc",
134
- caseInsensitive: true
135
- }
136
- }
137
- ]
138
- },
139
- settings: {
140
- "import/resolver": {
141
- typescript: {
142
- alwaysTryTypes: true,
143
- project: [tsconfigRootDir]
144
- },
145
- node: {}
146
- }
147
- }
148
- });
149
-
150
- // src/lib/javascript-config.ts
151
- import tsdocPlugin2 from "eslint-plugin-tsdoc";
152
- import * as globals2 from "globals";
153
- import { plugin as plugin2, configs, config as config2 } from "typescript-eslint";
154
- var jsConfigs = config2({
155
- extends: [configs.disableTypeChecked],
156
- files: ["**/*.{mjs,js,cjs}"],
157
- plugins: {
158
- "@typescript-eslint": plugin2,
159
- tsdoc: tsdocPlugin2
160
- },
161
- languageOptions: {
162
- globals: {
163
- ...globals2.commonjs,
164
- ...globals2.node,
165
- console: "readonly"
166
- // TODO: why is this not in globals?
167
- },
168
- sourceType: "commonjs"
169
- },
170
- rules: {
171
- "@typescript-eslint/no-require-imports": "off",
172
- "@typescript-eslint/explicit-module-boundary-types": "off",
173
- "tsdoc/syntax": "off"
174
- }
175
- });
176
-
177
- // src/lib/extended-config.ts
178
- import eslint from "@eslint/js";
179
- import tslint from "typescript-eslint";
180
- var baseExtends = tslint.config(eslint.configs.recommended, tslint.configs.stylisticTypeChecked, tslint.configs.strict);
181
- export {
182
- baseExtends,
183
- jsConfigs,
184
- tsConfig
185
- };
1
+ /** 📦 @nexim/eslint-config v2.1.5 */
2
+ __dev_mode__: console.debug("📦 @nexim/eslint-config v2.1.5");
3
+ import stylistic from"@stylistic/eslint-plugin";import{defineConfig}from"eslint/config";import importPlugin from"eslint-plugin-import";import tsdocPlugin from"eslint-plugin-tsdoc";import*as globals from"globals";import{plugin,parser}from"typescript-eslint";var tsconfigRootDir=import.meta.dirname;var tsConfig=defineConfig({files:["**/*.{ts,tsx}"],languageOptions:{globals:{...globals["shared-node-browser"]},ecmaVersion:"latest",sourceType:"module",parser,parserOptions:{projectService:true,tsconfigRootDir}},extends:[importPlugin.flatConfigs.recommended,importPlugin.flatConfigs.typescript],plugins:{"@typescript-eslint":plugin,"@stylistic":stylistic,tsdoc:tsdocPlugin},rules:{"@stylistic/max-len":["error",{code:140}],"no-eval":["error",{allowIndirect:true}],"@stylistic/no-floating-decimal":"error","@stylistic/space-infix-ops":"error","@stylistic/brace-style":["error","stroustrup",{allowSingleLine:true}],"@stylistic/array-bracket-spacing":["error","always"],"@stylistic/indent":["error",2,{SwitchCase:1,VariableDeclarator:1,outerIIFEBody:1,MemberExpression:1,FunctionDeclaration:{parameters:1,body:1},FunctionExpression:{parameters:1,body:1},CallExpression:{arguments:1},ArrayExpression:1,ObjectExpression:1,ImportDeclaration:1,flatTernaryExpressions:false,ignoreComments:false,ignoredNodes:["TemplateLiteral *","TSTypeParameterInstantiation","FunctionExpression > .params[decorators.length > 0]","FunctionExpression > .params > :matches(Decorator, :not(:first-child))","ClassBody.body > PropertyDefinition[decorators.length > 0] > .key"]}],"@stylistic/operator-linebreak":["error","after",{overrides:{"?":"before",":":"before"}}],"@stylistic/semi":"error","tsdoc/syntax":"warn","no-unused-vars":"off","prefer-const":"error","no-unused-labels":"off","require-await":"error","@typescript-eslint/no-dynamic-delete":"off","@typescript-eslint/no-non-null-assertion":"off","@typescript-eslint/consistent-type-definitions":"off","@typescript-eslint/ban-ts-comment":["error"],"@typescript-eslint/no-deprecated":"error","@typescript-eslint/no-duplicate-type-constituents":"error","@typescript-eslint/no-explicit-any":"error","@typescript-eslint/no-extra-non-null-assertion":"error","no-implied-eval":"off","@typescript-eslint/no-invalid-void-type":"error","@typescript-eslint/no-misused-spread":"error","@typescript-eslint/no-non-null-asserted-nullish-coalescing":"error","@typescript-eslint/no-non-null-asserted-optional-chain":"error","@typescript-eslint/no-redundant-type-constituents":"error","@typescript-eslint/no-unnecessary-boolean-literal-compare":"error","@typescript-eslint/no-unnecessary-template-expression":"error","@typescript-eslint/no-unnecessary-type-arguments":"error","@typescript-eslint/no-unnecessary-type-assertion":"error","@typescript-eslint/no-unnecessary-type-constraint":"error","no-unused-expressions":"off","@typescript-eslint/no-unused-expressions":"error","no-useless-constructor":"off","@typescript-eslint/no-useless-constructor":"error","@typescript-eslint/no-wrapper-object-types":"error","no-throw-literal":"off","@typescript-eslint/only-throw-error":"error","@typescript-eslint/prefer-as-const":"error","prefer-promise-reject-errors":"off","@typescript-eslint/prefer-promise-reject-errors":"error","@typescript-eslint/prefer-reduce-type-parameter":"error","@typescript-eslint/require-await":"error","import/order":["error",{groups:["builtin","external","internal",["parent","sibling","index"],"object","unknown","type"],"newlines-between":"always",warnOnUnassignedImports:true,alphabetize:{order:"asc",caseInsensitive:true}}]},settings:{"import/resolver":{typescript:{alwaysTryTypes:true,project:[tsconfigRootDir]},node:{}}}});import{defineConfig as defineConfig2}from"eslint/config";import tsdocPlugin2 from"eslint-plugin-tsdoc";import*as globals2 from"globals";import{plugin as plugin2,configs}from"typescript-eslint";var jsConfigs=defineConfig2({extends:[configs.disableTypeChecked],files:["**/*.{mjs,js,cjs}"],plugins:{"@typescript-eslint":plugin2,tsdoc:tsdocPlugin2},languageOptions:{globals:{...globals2.commonjs,...globals2.node,console:"readonly"},sourceType:"commonjs"},rules:{"@typescript-eslint/no-require-imports":"off","@typescript-eslint/explicit-module-boundary-types":"off","tsdoc/syntax":"off"}});import eslint from"@eslint/js";import{defineConfig as defineConfig3}from"eslint/config";import tslint from"typescript-eslint";var baseExtends=defineConfig3(eslint.configs.recommended,tslint.configs.stylisticTypeChecked,tslint.configs.strict);export{baseExtends,jsConfigs,tsConfig};
186
4
  //# sourceMappingURL=main.mjs.map
package/dist/main.mjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/lib/typescript-config.ts", "../src/lib/javascript-config.ts", "../src/lib/extended-config.ts"],
4
- "sourcesContent": ["import stylistic from '@stylistic/eslint-plugin';\nimport importPlugin from 'eslint-plugin-import';\nimport tsdocPlugin from 'eslint-plugin-tsdoc';\nimport * as globals from 'globals';\nimport { plugin, parser, config } from 'typescript-eslint';\n\nconst tsconfigRootDir = import.meta.dirname;\n\nexport const tsConfig = config({\n files: [ '**/*.{ts,tsx}' ],\n languageOptions: {\n globals: {\n ...globals['shared-node-browser'],\n },\n ecmaVersion: 'latest',\n sourceType: 'module',\n parser: parser,\n parserOptions: {\n projectService: true,\n tsconfigRootDir,\n },\n },\n\n extends: [ importPlugin.flatConfigs.recommended, importPlugin.flatConfigs.typescript ],\n plugins: {\n '@typescript-eslint': plugin,\n '@stylistic': stylistic,\n tsdoc: tsdocPlugin,\n },\n rules: {\n '@stylistic/max-len': [ 'error', { code: 140 } ],\n 'no-eval': [ 'error', { allowIndirect: true } ],\n '@stylistic/no-floating-decimal': 'error', // no .5 or 2., use 0.5 or 2.0\n '@stylistic/space-infix-ops': 'error',\n '@stylistic/brace-style': [ 'error', 'stroustrup', { allowSingleLine: true } ],\n '@stylistic/array-bracket-spacing': [ 'error', 'always' ],\n '@stylistic/indent': [\n 'error',\n 2,\n {\n SwitchCase: 1,\n VariableDeclarator: 1,\n outerIIFEBody: 1,\n MemberExpression: 1,\n FunctionDeclaration: { parameters: 1, body: 1 },\n FunctionExpression: { parameters: 1, body: 1 },\n CallExpression: { arguments: 1 },\n ArrayExpression: 1,\n ObjectExpression: 1,\n ImportDeclaration: 1,\n flatTernaryExpressions: false,\n ignoreComments: false,\n ignoredNodes: [\n 'TemplateLiteral *',\n 'TSTypeParameterInstantiation',\n 'FunctionExpression > .params[decorators.length > 0]',\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))',\n 'ClassBody.body > PropertyDefinition[decorators.length > 0] > .key',\n ],\n },\n ],\n '@stylistic/operator-linebreak': [ 'error', 'after', { overrides: { '?': 'before', ':': 'before' } } ],\n\n '@stylistic/semi': 'error',\n 'tsdoc/syntax': 'warn',\n\n 'no-unused-vars': 'off',\n 'prefer-const': 'error',\n\n 'no-unused-labels': 'off',\n 'require-await': 'error',\n\n '@typescript-eslint/no-dynamic-delete': 'off',\n '@typescript-eslint/no-non-null-assertion': 'off',\n\n // picked and customized from `stylistic-type-checked`\n '@typescript-eslint/consistent-type-definitions': 'off', // prefer interface over type\n '@typescript-eslint/ban-ts-comment': [ 'error' ], // no @ts-ignore without description\n '@typescript-eslint/no-deprecated': 'error', // catches usage of @deprecated items\n '@typescript-eslint/no-duplicate-type-constituents': 'error', // bad: type T = 'a' | 'a'\n '@typescript-eslint/no-explicit-any': 'error', // bad: const x: any\n '@typescript-eslint/no-extra-non-null-assertion': 'error', // bad: foo!!.bar\n 'no-implied-eval': 'off',\n '@typescript-eslint/no-invalid-void-type': 'error', // bad: type T = void | string\n '@typescript-eslint/no-misused-spread': 'error', // bad: [...new Set([])]\n '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error', // bad: foo! ?? bar\n '@typescript-eslint/no-non-null-asserted-optional-chain': 'error', // bad: foo?.bar!\n '@typescript-eslint/no-redundant-type-constituents': 'error', // bad: type T = string | 'a'\n '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error', // bad: bool === true\n '@typescript-eslint/no-unnecessary-template-expression': 'error', // bad: `${5}`\n '@typescript-eslint/no-unnecessary-type-arguments': 'error', // bad: Map<string> when string is default\n '@typescript-eslint/no-unnecessary-type-assertion': 'error', // bad: x as string when x is string\n '@typescript-eslint/no-unnecessary-type-constraint': 'error', // bad: <T extends any>\n 'no-unused-expressions': 'off',\n '@typescript-eslint/no-unused-expressions': 'error', // bad: x + y;\n 'no-useless-constructor': 'off',\n '@typescript-eslint/no-useless-constructor': 'error', // bad: constructor() {}\n '@typescript-eslint/no-wrapper-object-types': 'error', // bad: String, use string\n 'no-throw-literal': 'off',\n '@typescript-eslint/only-throw-error': 'error', // bad: throw \"error\"\n '@typescript-eslint/prefer-as-const': 'error', // bad: let x: 'foo' = 'foo'\n 'prefer-promise-reject-errors': 'off',\n '@typescript-eslint/prefer-promise-reject-errors': 'error', // bad: reject('error')\n '@typescript-eslint/prefer-reduce-type-parameter': 'error', // use <T> reduce over type assertions\n '@typescript-eslint/require-await': 'error', // async must use await\n\n 'import/order': [\n 'error',\n {\n groups: [ 'builtin', 'external', 'internal', [ 'parent', 'sibling', 'index' ], 'object', 'unknown', 'type' ],\n 'newlines-between': 'always',\n warnOnUnassignedImports: true,\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n settings: {\n 'import/resolver': {\n typescript: {\n alwaysTryTypes: true,\n project: [ tsconfigRootDir ],\n },\n node: {},\n },\n },\n});\n", "import tsdocPlugin from 'eslint-plugin-tsdoc';\nimport * as globals from 'globals';\nimport { plugin, configs, config } from 'typescript-eslint';\n\nexport const jsConfigs = config({\n extends: [ configs.disableTypeChecked ],\n files: [ '**/*.{mjs,js,cjs}' ],\n plugins: {\n '@typescript-eslint': plugin,\n tsdoc: tsdocPlugin,\n },\n languageOptions: {\n globals: {\n ...globals.commonjs,\n ...globals.node,\n console: 'readonly', // TODO: why is this not in globals?\n },\n sourceType: 'commonjs',\n },\n rules: {\n '@typescript-eslint/no-require-imports': 'off',\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n 'tsdoc/syntax': 'off',\n },\n});\n", "/* eslint-disable import/no-named-as-default-member */\n\nimport eslint from '@eslint/js';\nimport tslint from 'typescript-eslint';\n\nexport const baseExtends = tslint.config(eslint.configs.recommended, tslint.configs.stylisticTypeChecked, tslint.configs.strict);\n"],
5
- "mappings": "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",
6
- "names": ["tsdocPlugin", "globals", "plugin", "config"]
4
+ "sourcesContent": ["import stylistic from '@stylistic/eslint-plugin';\nimport { defineConfig } from 'eslint/config';\nimport importPlugin from 'eslint-plugin-import';\nimport tsdocPlugin from 'eslint-plugin-tsdoc';\nimport * as globals from 'globals';\nimport { plugin, parser } from 'typescript-eslint';\n\nconst tsconfigRootDir = import.meta.dirname;\n\nexport const tsConfig = defineConfig({\n files: [ '**/*.{ts,tsx}' ],\n languageOptions: {\n globals: {\n ...globals['shared-node-browser'],\n },\n ecmaVersion: 'latest',\n sourceType: 'module',\n parser: parser,\n parserOptions: {\n projectService: true,\n tsconfigRootDir,\n },\n },\n\n extends: [ importPlugin.flatConfigs.recommended, importPlugin.flatConfigs.typescript ],\n plugins: {\n '@typescript-eslint': plugin,\n '@stylistic': stylistic,\n tsdoc: tsdocPlugin,\n },\n rules: {\n '@stylistic/max-len': [ 'error', { code: 140 } ],\n 'no-eval': [ 'error', { allowIndirect: true } ],\n '@stylistic/no-floating-decimal': 'error', // no .5 or 2., use 0.5 or 2.0\n '@stylistic/space-infix-ops': 'error',\n '@stylistic/brace-style': [ 'error', 'stroustrup', { allowSingleLine: true } ],\n '@stylistic/array-bracket-spacing': [ 'error', 'always' ],\n '@stylistic/indent': [\n 'error',\n 2,\n {\n SwitchCase: 1,\n VariableDeclarator: 1,\n outerIIFEBody: 1,\n MemberExpression: 1,\n FunctionDeclaration: { parameters: 1, body: 1 },\n FunctionExpression: { parameters: 1, body: 1 },\n CallExpression: { arguments: 1 },\n ArrayExpression: 1,\n ObjectExpression: 1,\n ImportDeclaration: 1,\n flatTernaryExpressions: false,\n ignoreComments: false,\n ignoredNodes: [\n 'TemplateLiteral *',\n 'TSTypeParameterInstantiation',\n 'FunctionExpression > .params[decorators.length > 0]',\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))',\n 'ClassBody.body > PropertyDefinition[decorators.length > 0] > .key',\n ],\n },\n ],\n '@stylistic/operator-linebreak': [ 'error', 'after', { overrides: { '?': 'before', ':': 'before' } } ],\n\n '@stylistic/semi': 'error',\n 'tsdoc/syntax': 'warn',\n\n 'no-unused-vars': 'off',\n 'prefer-const': 'error',\n\n 'no-unused-labels': 'off',\n 'require-await': 'error',\n\n '@typescript-eslint/no-dynamic-delete': 'off',\n '@typescript-eslint/no-non-null-assertion': 'off',\n\n // picked and customized from `stylistic-type-checked`\n '@typescript-eslint/consistent-type-definitions': 'off', // prefer interface over type\n '@typescript-eslint/ban-ts-comment': [ 'error' ], // no @ts-ignore without description\n '@typescript-eslint/no-deprecated': 'error', // catches usage of @deprecated items\n '@typescript-eslint/no-duplicate-type-constituents': 'error', // bad: type T = 'a' | 'a'\n '@typescript-eslint/no-explicit-any': 'error', // bad: const x: any\n '@typescript-eslint/no-extra-non-null-assertion': 'error', // bad: foo!!.bar\n 'no-implied-eval': 'off',\n '@typescript-eslint/no-invalid-void-type': 'error', // bad: type T = void | string\n '@typescript-eslint/no-misused-spread': 'error', // bad: [...new Set([])]\n '@typescript-eslint/no-non-null-asserted-nullish-coalescing': 'error', // bad: foo! ?? bar\n '@typescript-eslint/no-non-null-asserted-optional-chain': 'error', // bad: foo?.bar!\n '@typescript-eslint/no-redundant-type-constituents': 'error', // bad: type T = string | 'a'\n '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error', // bad: bool === true\n '@typescript-eslint/no-unnecessary-template-expression': 'error', // bad: `${5}`\n '@typescript-eslint/no-unnecessary-type-arguments': 'error', // bad: Map<string> when string is default\n '@typescript-eslint/no-unnecessary-type-assertion': 'error', // bad: x as string when x is string\n '@typescript-eslint/no-unnecessary-type-constraint': 'error', // bad: <T extends any>\n 'no-unused-expressions': 'off',\n '@typescript-eslint/no-unused-expressions': 'error', // bad: x + y;\n 'no-useless-constructor': 'off',\n '@typescript-eslint/no-useless-constructor': 'error', // bad: constructor() {}\n '@typescript-eslint/no-wrapper-object-types': 'error', // bad: String, use string\n 'no-throw-literal': 'off',\n '@typescript-eslint/only-throw-error': 'error', // bad: throw \"error\"\n '@typescript-eslint/prefer-as-const': 'error', // bad: let x: 'foo' = 'foo'\n 'prefer-promise-reject-errors': 'off',\n '@typescript-eslint/prefer-promise-reject-errors': 'error', // bad: reject('error')\n '@typescript-eslint/prefer-reduce-type-parameter': 'error', // use <T> reduce over type assertions\n '@typescript-eslint/require-await': 'error', // async must use await\n\n 'import/order': [\n 'error',\n {\n groups: [ 'builtin', 'external', 'internal', [ 'parent', 'sibling', 'index' ], 'object', 'unknown', 'type' ],\n 'newlines-between': 'always',\n warnOnUnassignedImports: true,\n alphabetize: {\n order: 'asc',\n caseInsensitive: true,\n },\n },\n ],\n },\n settings: {\n 'import/resolver': {\n typescript: {\n alwaysTryTypes: true,\n project: [ tsconfigRootDir ],\n },\n node: {},\n },\n },\n});\n", "import { defineConfig } from 'eslint/config';\nimport tsdocPlugin from 'eslint-plugin-tsdoc';\nimport * as globals from 'globals';\nimport { plugin, configs } from 'typescript-eslint';\n\nexport const jsConfigs = defineConfig({\n extends: [ configs.disableTypeChecked ],\n files: [ '**/*.{mjs,js,cjs}' ],\n plugins: {\n '@typescript-eslint': plugin,\n tsdoc: tsdocPlugin,\n },\n languageOptions: {\n globals: {\n ...globals.commonjs,\n ...globals.node,\n console: 'readonly', // TODO: why is this not in globals?\n },\n sourceType: 'commonjs',\n },\n rules: {\n '@typescript-eslint/no-require-imports': 'off',\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n 'tsdoc/syntax': 'off',\n },\n});\n", "/* eslint-disable import/no-named-as-default-member */\n\nimport eslint from '@eslint/js';\nimport { defineConfig } from 'eslint/config';\nimport tslint from 'typescript-eslint';\nexport const baseExtends = defineConfig(eslint.configs.recommended, tslint.configs.stylisticTypeChecked, tslint.configs.strict);\n"],
5
+ "mappings": "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",
6
+ "names": ["defineConfig", "tsdocPlugin", "globals", "plugin", "defineConfig"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexim/eslint-config",
3
- "version": "2.1.3",
3
+ "version": "2.1.5",
4
4
  "description": "Base Eslint configuration for Nexim projects.",
5
5
  "keywords": [
6
6
  "eslint",
@@ -56,28 +56,28 @@
56
56
  "watch": "wireit"
57
57
  },
58
58
  "dependencies": {
59
- "@eslint/compat": "^1.3.2",
60
- "@eslint/js": "^9.34.0",
61
- "@stylistic/eslint-plugin": "^5.2.3",
62
- "@typescript-eslint/parser": "^8.41.0",
63
- "eslint": "^9.34.0",
59
+ "@eslint/compat": "^2.0.0",
60
+ "@eslint/js": "^9.39.1",
61
+ "@stylistic/eslint-plugin": "^5.6.1",
62
+ "@typescript-eslint/parser": "^8.47.0",
63
+ "eslint": "^9.39.1",
64
64
  "eslint-import-resolver-typescript": "^4.4.4",
65
65
  "eslint-plugin-import": "^2.32.0",
66
- "eslint-plugin-tsdoc": "^0.4.0",
67
- "globals": "^16.3.0",
68
- "typescript-eslint": "^8.41.0"
66
+ "eslint-plugin-tsdoc": "^0.5.0",
67
+ "globals": "^16.5.0",
68
+ "typescript-eslint": "^8.47.0"
69
69
  },
70
70
  "devDependencies": {
71
- "@alwatr/nano-build": "^6.0.1",
71
+ "@alwatr/nano-build": "^6.3.9",
72
72
  "@alwatr/type-helper": "^5.4.4",
73
73
  "@nexim/typescript-config": "^2.0.1",
74
74
  "@types/eslint": "^9.6.1",
75
- "@types/node": "^24.3.0",
76
- "typescript": "^5.9.2",
75
+ "@types/node": "^24.10.1",
76
+ "typescript": "^5.9.3",
77
77
  "wireit": "^0.14.12"
78
78
  },
79
79
  "peerDependencies": {
80
- "@eslint/compat": ">1.0.0 <2.0.0",
80
+ "@eslint/compat": ">1.0.0 <3.0.0",
81
81
  "eslint": ">9.0.0 <10.0.0"
82
82
  },
83
83
  "publishConfig": {
@@ -125,5 +125,5 @@
125
125
  "service": true
126
126
  }
127
127
  },
128
- "gitHead": "e9784c58e523a33fc5dc6959559ba60cbdd55ab1"
128
+ "gitHead": "33b0d323d0e03613da7c9057620e74ddae7c8b22"
129
129
  }