@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.
@@ -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,9 @@
1
+ import * as eslint_config0 from "eslint/config";
2
+
3
+ //#region src/configs/base.d.ts
4
+ /**
5
+ * Base ESLint Configuration
6
+ */
7
+ declare const config: eslint_config0.Config[];
8
+ //#endregion
9
+ export { config };
@@ -0,0 +1,9 @@
1
+ import * as eslint_config0 from "eslint/config";
2
+
3
+ //#region src/configs/base.d.ts
4
+ /**
5
+ * Base ESLint Configuration
6
+ */
7
+ declare const config: eslint_config0.Config[];
8
+ //#endregion
9
+ export { 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 };