@abinnovision/eslint-config-base 3.2.0 → 3.2.1-beta.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/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/configs/base.cjs +162 -0
- package/dist/configs/base.d.cts +9 -0
- package/dist/configs/base.d.mts +9 -0
- package/dist/configs/base.mjs +157 -0
- package/dist/configs/flavour-config-files.cjs +34 -0
- package/dist/configs/flavour-config-files.d.cts +25 -0
- package/dist/configs/flavour-config-files.d.mts +25 -0
- package/dist/configs/flavour-config-files.mjs +32 -0
- package/dist/configs/flavour-nestjs.cjs +30 -0
- package/dist/configs/flavour-nestjs.d.cts +13 -0
- package/dist/configs/flavour-nestjs.d.mts +13 -0
- package/dist/configs/flavour-nestjs.mjs +30 -0
- package/dist/configs/flavour-stylistic.cjs +77 -0
- package/dist/configs/flavour-stylistic.d.cts +14 -0
- package/dist/configs/flavour-stylistic.d.mts +14 -0
- package/dist/configs/flavour-stylistic.mjs +75 -0
- package/dist/configs/flavour-vitest.cjs +55 -0
- package/dist/configs/flavour-vitest.d.cts +14 -0
- package/dist/configs/flavour-vitest.d.mts +14 -0
- package/dist/configs/flavour-vitest.mjs +53 -0
- package/dist/configs/index.cjs +5 -0
- package/dist/configs/index.d.mts +5 -0
- package/dist/configs/index.mjs +6 -0
- package/dist/index.cjs +12 -1041
- package/dist/index.d.cts +6 -58
- package/dist/index.d.mts +6 -0
- package/dist/index.mjs +7 -0
- package/package.json +12 -8
- package/dist/index.d.ts +0 -58
- package/dist/index.js +0 -1000
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.__toESM = __toESM;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let _eslint_js = require("@eslint/js");
|
|
3
|
+
_eslint_js = require_runtime.__toESM(_eslint_js);
|
|
4
|
+
let eslint_config = require("eslint/config");
|
|
5
|
+
let eslint_plugin_import = require("eslint-plugin-import");
|
|
6
|
+
eslint_plugin_import = require_runtime.__toESM(eslint_plugin_import);
|
|
7
|
+
let eslint_plugin_unused_imports = require("eslint-plugin-unused-imports");
|
|
8
|
+
eslint_plugin_unused_imports = require_runtime.__toESM(eslint_plugin_unused_imports);
|
|
9
|
+
let typescript_eslint = require("typescript-eslint");
|
|
10
|
+
typescript_eslint = require_runtime.__toESM(typescript_eslint);
|
|
11
|
+
//#region src/configs/base.ts
|
|
12
|
+
/**
|
|
13
|
+
* Base ESLint Configuration
|
|
14
|
+
*/
|
|
15
|
+
const config = (0, eslint_config.defineConfig)([{
|
|
16
|
+
files: ["**/*.{ts,tsx,js,jsx}"],
|
|
17
|
+
languageOptions: { ecmaVersion: "latest" },
|
|
18
|
+
plugins: {
|
|
19
|
+
import: eslint_plugin_import.default,
|
|
20
|
+
uimports: eslint_plugin_unused_imports.default
|
|
21
|
+
},
|
|
22
|
+
extends: [_eslint_js.default.configs.recommended],
|
|
23
|
+
rules: {
|
|
24
|
+
"accessor-pairs": ["error", {
|
|
25
|
+
setWithoutGet: true,
|
|
26
|
+
getWithoutSet: false
|
|
27
|
+
}],
|
|
28
|
+
"array-callback-return": "error",
|
|
29
|
+
"no-array-constructor": "error",
|
|
30
|
+
"no-caller": "error",
|
|
31
|
+
"default-case-last": "error",
|
|
32
|
+
curly: ["error", "all"],
|
|
33
|
+
eqeqeq: ["error", "always"],
|
|
34
|
+
"no-eval": "error",
|
|
35
|
+
"no-extend-native": "error",
|
|
36
|
+
"no-extra-bind": "error",
|
|
37
|
+
"no-return-assign": "error",
|
|
38
|
+
"no-new": "error",
|
|
39
|
+
"no-new-func": "error",
|
|
40
|
+
"no-new-native-nonconstructor": "error",
|
|
41
|
+
"no-new-wrappers": "error",
|
|
42
|
+
"no-octal-escape": "error",
|
|
43
|
+
"no-redeclare": "error",
|
|
44
|
+
"no-self-compare": "error",
|
|
45
|
+
"no-sequences": "error",
|
|
46
|
+
"no-throw-literal": "error",
|
|
47
|
+
"no-unreachable-loop": "error",
|
|
48
|
+
"no-useless-return": "error",
|
|
49
|
+
"vars-on-top": "error",
|
|
50
|
+
"no-var": "error",
|
|
51
|
+
"prefer-const": "error",
|
|
52
|
+
"prefer-object-spread": "error",
|
|
53
|
+
"prefer-rest-params": "error",
|
|
54
|
+
"prefer-spread": "error",
|
|
55
|
+
"no-promise-executor-return": "error",
|
|
56
|
+
"no-template-curly-in-string": "error",
|
|
57
|
+
"no-unmodified-loop-condition": "error",
|
|
58
|
+
"no-lone-blocks": "error",
|
|
59
|
+
"no-useless-rename": "error",
|
|
60
|
+
"no-useless-computed-key": "error",
|
|
61
|
+
"no-await-in-loop": "warn",
|
|
62
|
+
"no-param-reassign": "error",
|
|
63
|
+
complexity: ["error", { max: 25 }],
|
|
64
|
+
"max-depth": ["error", 5],
|
|
65
|
+
"max-nested-callbacks": ["error", 3],
|
|
66
|
+
"max-params": ["error", 3],
|
|
67
|
+
"guard-for-in": "error",
|
|
68
|
+
"grouped-accessor-pairs": "error",
|
|
69
|
+
"new-cap": ["error", {
|
|
70
|
+
newIsCap: true,
|
|
71
|
+
capIsNew: false,
|
|
72
|
+
properties: true
|
|
73
|
+
}],
|
|
74
|
+
"no-constructor-return": "error",
|
|
75
|
+
"no-inner-declarations": "error",
|
|
76
|
+
"no-console": "warn",
|
|
77
|
+
"no-cond-assign": ["error", "except-parens"],
|
|
78
|
+
"no-constant-condition": ["error", { checkLoops: false }],
|
|
79
|
+
"no-empty": ["error", { allowEmptyCatch: true }],
|
|
80
|
+
"import/order": ["error", {
|
|
81
|
+
groups: [
|
|
82
|
+
["builtin", "external"],
|
|
83
|
+
[
|
|
84
|
+
"internal",
|
|
85
|
+
"unknown",
|
|
86
|
+
"parent",
|
|
87
|
+
"sibling",
|
|
88
|
+
"index"
|
|
89
|
+
],
|
|
90
|
+
["object", "type"]
|
|
91
|
+
],
|
|
92
|
+
"newlines-between": "always",
|
|
93
|
+
alphabetize: {
|
|
94
|
+
order: "asc",
|
|
95
|
+
caseInsensitive: true
|
|
96
|
+
},
|
|
97
|
+
warnOnUnassignedImports: true
|
|
98
|
+
}],
|
|
99
|
+
"import/exports-last": "warn",
|
|
100
|
+
"import/first": "error",
|
|
101
|
+
"import/newline-after-import": "error",
|
|
102
|
+
"no-unused-vars": "off",
|
|
103
|
+
"uimports/no-unused-imports": "error",
|
|
104
|
+
"uimports/no-unused-vars": ["warn", {
|
|
105
|
+
vars: "all",
|
|
106
|
+
varsIgnorePattern: "^_",
|
|
107
|
+
args: "after-used",
|
|
108
|
+
argsIgnorePattern: "^_"
|
|
109
|
+
}]
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
files: ["**/*.{ts,tsx}"],
|
|
113
|
+
plugins: { "@typescript-eslint": typescript_eslint.default.plugin },
|
|
114
|
+
languageOptions: {
|
|
115
|
+
parser: typescript_eslint.default.parser,
|
|
116
|
+
parserOptions: { project: "./tsconfig.json" }
|
|
117
|
+
},
|
|
118
|
+
extends: [typescript_eslint.default.configs.strictTypeChecked],
|
|
119
|
+
rules: {
|
|
120
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
121
|
+
"@typescript-eslint/no-non-null-assertion": "warn",
|
|
122
|
+
"@typescript-eslint/no-floating-promises": "error",
|
|
123
|
+
"@typescript-eslint/explicit-member-accessibility": "error",
|
|
124
|
+
"@typescript-eslint/member-ordering": ["error", { default: [
|
|
125
|
+
"public-static-field",
|
|
126
|
+
"protected-static-field",
|
|
127
|
+
"private-static-field",
|
|
128
|
+
"public-instance-field",
|
|
129
|
+
"protected-instance-field",
|
|
130
|
+
"private-instance-field",
|
|
131
|
+
"public-constructor",
|
|
132
|
+
"protected-constructor",
|
|
133
|
+
"private-constructor",
|
|
134
|
+
"public-static-method",
|
|
135
|
+
"protected-static-method",
|
|
136
|
+
"private-static-method",
|
|
137
|
+
"public-instance-method",
|
|
138
|
+
"protected-instance-method",
|
|
139
|
+
"private-instance-method"
|
|
140
|
+
] }],
|
|
141
|
+
"@typescript-eslint/method-signature-style": "error",
|
|
142
|
+
"@typescript-eslint/consistent-type-assertions": ["error", {
|
|
143
|
+
assertionStyle: "as",
|
|
144
|
+
objectLiteralTypeAssertions: "never"
|
|
145
|
+
}],
|
|
146
|
+
"@typescript-eslint/consistent-type-definitions": ["error", "interface"],
|
|
147
|
+
"@typescript-eslint/consistent-type-imports": "error",
|
|
148
|
+
"@typescript-eslint/no-import-type-side-effects": "error",
|
|
149
|
+
"@typescript-eslint/prefer-for-of": "warn",
|
|
150
|
+
"@typescript-eslint/prefer-function-type": "error",
|
|
151
|
+
"@typescript-eslint/prefer-nullish-coalescing": "error",
|
|
152
|
+
"@typescript-eslint/no-namespace": ["error", {
|
|
153
|
+
allowDeclarations: true,
|
|
154
|
+
allowDefinitionFiles: true
|
|
155
|
+
}],
|
|
156
|
+
"@typescript-eslint/return-await": ["warn", "always"],
|
|
157
|
+
"@typescript-eslint/no-unused-vars": "off",
|
|
158
|
+
"@typescript-eslint/no-extraneous-class": ["error", { allowWithDecorator: true }]
|
|
159
|
+
}
|
|
160
|
+
}]);
|
|
161
|
+
//#endregion
|
|
162
|
+
exports.config = config;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import jseslint from "@eslint/js";
|
|
2
|
+
import { defineConfig } from "eslint/config";
|
|
3
|
+
import eslintPluginImport from "eslint-plugin-import";
|
|
4
|
+
import unusedImports from "eslint-plugin-unused-imports";
|
|
5
|
+
import tseslint from "typescript-eslint";
|
|
6
|
+
//#region src/configs/base.ts
|
|
7
|
+
/**
|
|
8
|
+
* Base ESLint Configuration
|
|
9
|
+
*/
|
|
10
|
+
const config = defineConfig([{
|
|
11
|
+
files: ["**/*.{ts,tsx,js,jsx}"],
|
|
12
|
+
languageOptions: { ecmaVersion: "latest" },
|
|
13
|
+
plugins: {
|
|
14
|
+
import: eslintPluginImport,
|
|
15
|
+
uimports: unusedImports
|
|
16
|
+
},
|
|
17
|
+
extends: [jseslint.configs.recommended],
|
|
18
|
+
rules: {
|
|
19
|
+
"accessor-pairs": ["error", {
|
|
20
|
+
setWithoutGet: true,
|
|
21
|
+
getWithoutSet: false
|
|
22
|
+
}],
|
|
23
|
+
"array-callback-return": "error",
|
|
24
|
+
"no-array-constructor": "error",
|
|
25
|
+
"no-caller": "error",
|
|
26
|
+
"default-case-last": "error",
|
|
27
|
+
curly: ["error", "all"],
|
|
28
|
+
eqeqeq: ["error", "always"],
|
|
29
|
+
"no-eval": "error",
|
|
30
|
+
"no-extend-native": "error",
|
|
31
|
+
"no-extra-bind": "error",
|
|
32
|
+
"no-return-assign": "error",
|
|
33
|
+
"no-new": "error",
|
|
34
|
+
"no-new-func": "error",
|
|
35
|
+
"no-new-native-nonconstructor": "error",
|
|
36
|
+
"no-new-wrappers": "error",
|
|
37
|
+
"no-octal-escape": "error",
|
|
38
|
+
"no-redeclare": "error",
|
|
39
|
+
"no-self-compare": "error",
|
|
40
|
+
"no-sequences": "error",
|
|
41
|
+
"no-throw-literal": "error",
|
|
42
|
+
"no-unreachable-loop": "error",
|
|
43
|
+
"no-useless-return": "error",
|
|
44
|
+
"vars-on-top": "error",
|
|
45
|
+
"no-var": "error",
|
|
46
|
+
"prefer-const": "error",
|
|
47
|
+
"prefer-object-spread": "error",
|
|
48
|
+
"prefer-rest-params": "error",
|
|
49
|
+
"prefer-spread": "error",
|
|
50
|
+
"no-promise-executor-return": "error",
|
|
51
|
+
"no-template-curly-in-string": "error",
|
|
52
|
+
"no-unmodified-loop-condition": "error",
|
|
53
|
+
"no-lone-blocks": "error",
|
|
54
|
+
"no-useless-rename": "error",
|
|
55
|
+
"no-useless-computed-key": "error",
|
|
56
|
+
"no-await-in-loop": "warn",
|
|
57
|
+
"no-param-reassign": "error",
|
|
58
|
+
complexity: ["error", { max: 25 }],
|
|
59
|
+
"max-depth": ["error", 5],
|
|
60
|
+
"max-nested-callbacks": ["error", 3],
|
|
61
|
+
"max-params": ["error", 3],
|
|
62
|
+
"guard-for-in": "error",
|
|
63
|
+
"grouped-accessor-pairs": "error",
|
|
64
|
+
"new-cap": ["error", {
|
|
65
|
+
newIsCap: true,
|
|
66
|
+
capIsNew: false,
|
|
67
|
+
properties: true
|
|
68
|
+
}],
|
|
69
|
+
"no-constructor-return": "error",
|
|
70
|
+
"no-inner-declarations": "error",
|
|
71
|
+
"no-console": "warn",
|
|
72
|
+
"no-cond-assign": ["error", "except-parens"],
|
|
73
|
+
"no-constant-condition": ["error", { checkLoops: false }],
|
|
74
|
+
"no-empty": ["error", { allowEmptyCatch: true }],
|
|
75
|
+
"import/order": ["error", {
|
|
76
|
+
groups: [
|
|
77
|
+
["builtin", "external"],
|
|
78
|
+
[
|
|
79
|
+
"internal",
|
|
80
|
+
"unknown",
|
|
81
|
+
"parent",
|
|
82
|
+
"sibling",
|
|
83
|
+
"index"
|
|
84
|
+
],
|
|
85
|
+
["object", "type"]
|
|
86
|
+
],
|
|
87
|
+
"newlines-between": "always",
|
|
88
|
+
alphabetize: {
|
|
89
|
+
order: "asc",
|
|
90
|
+
caseInsensitive: true
|
|
91
|
+
},
|
|
92
|
+
warnOnUnassignedImports: true
|
|
93
|
+
}],
|
|
94
|
+
"import/exports-last": "warn",
|
|
95
|
+
"import/first": "error",
|
|
96
|
+
"import/newline-after-import": "error",
|
|
97
|
+
"no-unused-vars": "off",
|
|
98
|
+
"uimports/no-unused-imports": "error",
|
|
99
|
+
"uimports/no-unused-vars": ["warn", {
|
|
100
|
+
vars: "all",
|
|
101
|
+
varsIgnorePattern: "^_",
|
|
102
|
+
args: "after-used",
|
|
103
|
+
argsIgnorePattern: "^_"
|
|
104
|
+
}]
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
107
|
+
files: ["**/*.{ts,tsx}"],
|
|
108
|
+
plugins: { "@typescript-eslint": tseslint.plugin },
|
|
109
|
+
languageOptions: {
|
|
110
|
+
parser: tseslint.parser,
|
|
111
|
+
parserOptions: { project: "./tsconfig.json" }
|
|
112
|
+
},
|
|
113
|
+
extends: [tseslint.configs.strictTypeChecked],
|
|
114
|
+
rules: {
|
|
115
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
116
|
+
"@typescript-eslint/no-non-null-assertion": "warn",
|
|
117
|
+
"@typescript-eslint/no-floating-promises": "error",
|
|
118
|
+
"@typescript-eslint/explicit-member-accessibility": "error",
|
|
119
|
+
"@typescript-eslint/member-ordering": ["error", { default: [
|
|
120
|
+
"public-static-field",
|
|
121
|
+
"protected-static-field",
|
|
122
|
+
"private-static-field",
|
|
123
|
+
"public-instance-field",
|
|
124
|
+
"protected-instance-field",
|
|
125
|
+
"private-instance-field",
|
|
126
|
+
"public-constructor",
|
|
127
|
+
"protected-constructor",
|
|
128
|
+
"private-constructor",
|
|
129
|
+
"public-static-method",
|
|
130
|
+
"protected-static-method",
|
|
131
|
+
"private-static-method",
|
|
132
|
+
"public-instance-method",
|
|
133
|
+
"protected-instance-method",
|
|
134
|
+
"private-instance-method"
|
|
135
|
+
] }],
|
|
136
|
+
"@typescript-eslint/method-signature-style": "error",
|
|
137
|
+
"@typescript-eslint/consistent-type-assertions": ["error", {
|
|
138
|
+
assertionStyle: "as",
|
|
139
|
+
objectLiteralTypeAssertions: "never"
|
|
140
|
+
}],
|
|
141
|
+
"@typescript-eslint/consistent-type-definitions": ["error", "interface"],
|
|
142
|
+
"@typescript-eslint/consistent-type-imports": "error",
|
|
143
|
+
"@typescript-eslint/no-import-type-side-effects": "error",
|
|
144
|
+
"@typescript-eslint/prefer-for-of": "warn",
|
|
145
|
+
"@typescript-eslint/prefer-function-type": "error",
|
|
146
|
+
"@typescript-eslint/prefer-nullish-coalescing": "error",
|
|
147
|
+
"@typescript-eslint/no-namespace": ["error", {
|
|
148
|
+
allowDeclarations: true,
|
|
149
|
+
allowDefinitionFiles: true
|
|
150
|
+
}],
|
|
151
|
+
"@typescript-eslint/return-await": ["warn", "always"],
|
|
152
|
+
"@typescript-eslint/no-unused-vars": "off",
|
|
153
|
+
"@typescript-eslint/no-extraneous-class": ["error", { allowWithDecorator: true }]
|
|
154
|
+
}
|
|
155
|
+
}]);
|
|
156
|
+
//#endregion
|
|
157
|
+
export { config };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let eslint_config = require("eslint/config");
|
|
3
|
+
let globals = require("globals");
|
|
4
|
+
globals = require_runtime.__toESM(globals);
|
|
5
|
+
//#region src/configs/flavour-config-files.ts
|
|
6
|
+
/**
|
|
7
|
+
* ESLint configuration for build tool and project configuration files.
|
|
8
|
+
*
|
|
9
|
+
* This configuration does not specify file patterns - consumers decide which
|
|
10
|
+
* files to apply this to (e.g., vite.config.ts, webpack.config.js, etc.).
|
|
11
|
+
*
|
|
12
|
+
* Usage example:
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { base, configFiles } from "@abinnovision/eslint-config-base";
|
|
15
|
+
*
|
|
16
|
+
* export default [
|
|
17
|
+
* { extends: [base] },
|
|
18
|
+
* {
|
|
19
|
+
* files: ["**\/*.config.{ts,js}", "vite.config.ts"],
|
|
20
|
+
* extends: [configFiles],
|
|
21
|
+
* }
|
|
22
|
+
* ];
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
const config = (0, eslint_config.defineConfig)([{
|
|
26
|
+
languageOptions: { globals: { ...globals.default.node } },
|
|
27
|
+
rules: {
|
|
28
|
+
"no-console": "off",
|
|
29
|
+
"max-lines-per-function": "off",
|
|
30
|
+
"@typescript-eslint/no-var-requires": "off"
|
|
31
|
+
}
|
|
32
|
+
}]);
|
|
33
|
+
//#endregion
|
|
34
|
+
exports.config = config;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as eslint_config0 from "eslint/config";
|
|
2
|
+
|
|
3
|
+
//#region src/configs/flavour-config-files.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* ESLint configuration for build tool and project configuration files.
|
|
6
|
+
*
|
|
7
|
+
* This configuration does not specify file patterns - consumers decide which
|
|
8
|
+
* files to apply this to (e.g., vite.config.ts, webpack.config.js, etc.).
|
|
9
|
+
*
|
|
10
|
+
* Usage example:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { base, configFiles } from "@abinnovision/eslint-config-base";
|
|
13
|
+
*
|
|
14
|
+
* export default [
|
|
15
|
+
* { extends: [base] },
|
|
16
|
+
* {
|
|
17
|
+
* files: ["**\/*.config.{ts,js}", "vite.config.ts"],
|
|
18
|
+
* extends: [configFiles],
|
|
19
|
+
* }
|
|
20
|
+
* ];
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare const config: eslint_config0.Config[];
|
|
24
|
+
//#endregion
|
|
25
|
+
export { config };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as eslint_config0 from "eslint/config";
|
|
2
|
+
|
|
3
|
+
//#region src/configs/flavour-config-files.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* ESLint configuration for build tool and project configuration files.
|
|
6
|
+
*
|
|
7
|
+
* This configuration does not specify file patterns - consumers decide which
|
|
8
|
+
* files to apply this to (e.g., vite.config.ts, webpack.config.js, etc.).
|
|
9
|
+
*
|
|
10
|
+
* Usage example:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { base, configFiles } from "@abinnovision/eslint-config-base";
|
|
13
|
+
*
|
|
14
|
+
* export default [
|
|
15
|
+
* { extends: [base] },
|
|
16
|
+
* {
|
|
17
|
+
* files: ["**\/*.config.{ts,js}", "vite.config.ts"],
|
|
18
|
+
* extends: [configFiles],
|
|
19
|
+
* }
|
|
20
|
+
* ];
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
declare const config: eslint_config0.Config[];
|
|
24
|
+
//#endregion
|
|
25
|
+
export { config };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { defineConfig } from "eslint/config";
|
|
2
|
+
import globals from "globals";
|
|
3
|
+
//#region src/configs/flavour-config-files.ts
|
|
4
|
+
/**
|
|
5
|
+
* ESLint configuration for build tool and project configuration files.
|
|
6
|
+
*
|
|
7
|
+
* This configuration does not specify file patterns - consumers decide which
|
|
8
|
+
* files to apply this to (e.g., vite.config.ts, webpack.config.js, etc.).
|
|
9
|
+
*
|
|
10
|
+
* Usage example:
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { base, configFiles } from "@abinnovision/eslint-config-base";
|
|
13
|
+
*
|
|
14
|
+
* export default [
|
|
15
|
+
* { extends: [base] },
|
|
16
|
+
* {
|
|
17
|
+
* files: ["**\/*.config.{ts,js}", "vite.config.ts"],
|
|
18
|
+
* extends: [configFiles],
|
|
19
|
+
* }
|
|
20
|
+
* ];
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
const config = defineConfig([{
|
|
24
|
+
languageOptions: { globals: { ...globals.node } },
|
|
25
|
+
rules: {
|
|
26
|
+
"no-console": "off",
|
|
27
|
+
"max-lines-per-function": "off",
|
|
28
|
+
"@typescript-eslint/no-var-requires": "off"
|
|
29
|
+
}
|
|
30
|
+
}]);
|
|
31
|
+
//#endregion
|
|
32
|
+
export { config };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
//#region src/configs/flavour-nestjs.ts
|
|
3
|
+
/**
|
|
4
|
+
* ESLint configuration tailored for NestJS projects.
|
|
5
|
+
* Adjusts rules to accommodate NestJS patterns, especially for dependency injection.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This configuration is meant to be used in conjunction with
|
|
8
|
+
* the base TypeScript ESLint configuration.
|
|
9
|
+
*/
|
|
10
|
+
const config = (0, require("eslint/config").defineConfig)([{
|
|
11
|
+
files: ["**/*.{ts,js}"],
|
|
12
|
+
rules: {
|
|
13
|
+
"max-params": ["error", 8],
|
|
14
|
+
"@typescript-eslint/no-useless-constructor": "off",
|
|
15
|
+
"@typescript-eslint/no-empty-function": ["error", { allow: ["constructors"] }],
|
|
16
|
+
"@typescript-eslint/parameter-properties": ["error", {
|
|
17
|
+
allow: [
|
|
18
|
+
"private readonly",
|
|
19
|
+
"protected readonly",
|
|
20
|
+
"public readonly",
|
|
21
|
+
"private",
|
|
22
|
+
"protected",
|
|
23
|
+
"public"
|
|
24
|
+
],
|
|
25
|
+
prefer: "parameter-property"
|
|
26
|
+
}]
|
|
27
|
+
}
|
|
28
|
+
}]);
|
|
29
|
+
//#endregion
|
|
30
|
+
exports.config = config;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as eslint_config0 from "eslint/config";
|
|
2
|
+
|
|
3
|
+
//#region src/configs/flavour-nestjs.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* ESLint configuration tailored for NestJS projects.
|
|
6
|
+
* Adjusts rules to accommodate NestJS patterns, especially for dependency injection.
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This configuration is meant to be used in conjunction with
|
|
9
|
+
* the base TypeScript ESLint configuration.
|
|
10
|
+
*/
|
|
11
|
+
declare const config: eslint_config0.Config[];
|
|
12
|
+
//#endregion
|
|
13
|
+
export { config };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as eslint_config0 from "eslint/config";
|
|
2
|
+
|
|
3
|
+
//#region src/configs/flavour-nestjs.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* ESLint configuration tailored for NestJS projects.
|
|
6
|
+
* Adjusts rules to accommodate NestJS patterns, especially for dependency injection.
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This configuration is meant to be used in conjunction with
|
|
9
|
+
* the base TypeScript ESLint configuration.
|
|
10
|
+
*/
|
|
11
|
+
declare const config: eslint_config0.Config[];
|
|
12
|
+
//#endregion
|
|
13
|
+
export { config };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { defineConfig } from "eslint/config";
|
|
2
|
+
//#region src/configs/flavour-nestjs.ts
|
|
3
|
+
/**
|
|
4
|
+
* ESLint configuration tailored for NestJS projects.
|
|
5
|
+
* Adjusts rules to accommodate NestJS patterns, especially for dependency injection.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This configuration is meant to be used in conjunction with
|
|
8
|
+
* the base TypeScript ESLint configuration.
|
|
9
|
+
*/
|
|
10
|
+
const config = defineConfig([{
|
|
11
|
+
files: ["**/*.{ts,js}"],
|
|
12
|
+
rules: {
|
|
13
|
+
"max-params": ["error", 8],
|
|
14
|
+
"@typescript-eslint/no-useless-constructor": "off",
|
|
15
|
+
"@typescript-eslint/no-empty-function": ["error", { allow: ["constructors"] }],
|
|
16
|
+
"@typescript-eslint/parameter-properties": ["error", {
|
|
17
|
+
allow: [
|
|
18
|
+
"private readonly",
|
|
19
|
+
"protected readonly",
|
|
20
|
+
"public readonly",
|
|
21
|
+
"private",
|
|
22
|
+
"protected",
|
|
23
|
+
"public"
|
|
24
|
+
],
|
|
25
|
+
prefer: "parameter-property"
|
|
26
|
+
}]
|
|
27
|
+
}
|
|
28
|
+
}]);
|
|
29
|
+
//#endregion
|
|
30
|
+
export { config };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
let eslint_config = require("eslint/config");
|
|
3
|
+
let _stylistic_eslint_plugin = require("@stylistic/eslint-plugin");
|
|
4
|
+
_stylistic_eslint_plugin = require_runtime.__toESM(_stylistic_eslint_plugin);
|
|
5
|
+
//#region src/configs/flavour-stylistic.ts
|
|
6
|
+
/**
|
|
7
|
+
* ESLint configuration for optional stylistic rules.
|
|
8
|
+
* Enforces consistent code style for comments, spacing, and padding
|
|
9
|
+
* that Prettier does not handle.
|
|
10
|
+
*
|
|
11
|
+
* NOTE: This configuration is meant to be used in conjunction with
|
|
12
|
+
* the base TypeScript ESLint configuration.
|
|
13
|
+
*/
|
|
14
|
+
const config = (0, eslint_config.defineConfig)([{
|
|
15
|
+
files: ["**/*.{ts,tsx,js,jsx}"],
|
|
16
|
+
plugins: { "@stylistic": _stylistic_eslint_plugin.default },
|
|
17
|
+
rules: {
|
|
18
|
+
"@stylistic/multiline-comment-style": ["error", "starred-block"],
|
|
19
|
+
"@stylistic/spaced-comment": ["error", "always"],
|
|
20
|
+
"@stylistic/lines-around-comment": ["error", {
|
|
21
|
+
beforeBlockComment: true,
|
|
22
|
+
beforeLineComment: true,
|
|
23
|
+
allowBlockStart: true,
|
|
24
|
+
allowObjectStart: true,
|
|
25
|
+
allowArrayStart: true,
|
|
26
|
+
allowClassStart: true,
|
|
27
|
+
allowInterfaceStart: true,
|
|
28
|
+
allowTypeStart: true,
|
|
29
|
+
allowEnumStart: true,
|
|
30
|
+
allowModuleStart: true
|
|
31
|
+
}],
|
|
32
|
+
"@stylistic/line-comment-position": ["error", "above"],
|
|
33
|
+
"@stylistic/padding-line-between-statements": [
|
|
34
|
+
"error",
|
|
35
|
+
{
|
|
36
|
+
blankLine: "always",
|
|
37
|
+
prev: "block-like",
|
|
38
|
+
next: "*"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
blankLine: "always",
|
|
42
|
+
prev: "*",
|
|
43
|
+
next: "return"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
blankLine: "always",
|
|
47
|
+
prev: "directive",
|
|
48
|
+
next: "*"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"@stylistic/padded-blocks": ["error", "never"],
|
|
52
|
+
"@stylistic/lines-between-class-members": [
|
|
53
|
+
"error",
|
|
54
|
+
"always",
|
|
55
|
+
{
|
|
56
|
+
exceptAfterSingleLine: true,
|
|
57
|
+
exceptAfterOverload: true
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"@stylistic/no-multiple-empty-lines": ["error", {
|
|
61
|
+
max: 1,
|
|
62
|
+
maxBOF: 0,
|
|
63
|
+
maxEOF: 0
|
|
64
|
+
}]
|
|
65
|
+
}
|
|
66
|
+
}, (
|
|
67
|
+
/**
|
|
68
|
+
* Disable lines-around-comment for JSX/TSX files.
|
|
69
|
+
* The rule lacks AST support for JSX-specific contexts, causing
|
|
70
|
+
* unresolvable conflicts with Prettier.
|
|
71
|
+
*/
|
|
72
|
+
{
|
|
73
|
+
files: ["**/*.{tsx,jsx}"],
|
|
74
|
+
rules: { "@stylistic/lines-around-comment": "off" }
|
|
75
|
+
})]);
|
|
76
|
+
//#endregion
|
|
77
|
+
exports.config = config;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as eslint_config0 from "eslint/config";
|
|
2
|
+
|
|
3
|
+
//#region src/configs/flavour-stylistic.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* ESLint configuration for optional stylistic rules.
|
|
6
|
+
* Enforces consistent code style for comments, spacing, and padding
|
|
7
|
+
* that Prettier does not handle.
|
|
8
|
+
*
|
|
9
|
+
* NOTE: This configuration is meant to be used in conjunction with
|
|
10
|
+
* the base TypeScript ESLint configuration.
|
|
11
|
+
*/
|
|
12
|
+
declare const config: eslint_config0.Config[];
|
|
13
|
+
//#endregion
|
|
14
|
+
export { config };
|