@signpostmarv/eslint-config 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  # Usage
9
9
 
10
10
  ```js
11
- import config from '@signpostmarv/eslint-config';
11
+ import {typescript} from '@signpostmarv/eslint-config';
12
12
  import parser from '@typescript-eslint/parser';
13
13
 
14
14
  export default [
@@ -20,6 +20,6 @@ export default [
20
20
  },
21
21
  },
22
22
  },
23
- ...config,
23
+ ...typescript,
24
24
  ];
25
25
  ```
package/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import typescript from './typescript.js';
2
- import javascript from './javascript.js';
1
+ import { typescript } from './typescript.js';
2
+ import { javascript } from './javascript.js';
3
3
  export { typescript, javascript, };
4
- export default typescript;
package/index.js CHANGED
@@ -1,4 +1,3 @@
1
- import typescript from './typescript.js';
2
- import javascript from './javascript.js';
1
+ import { typescript, } from './typescript.js';
2
+ import { javascript, } from './javascript.js';
3
3
  export { typescript, javascript, };
4
- export default typescript;
package/javascript.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import type { Linter } from 'eslint';
2
- export declare const javascript: ({
1
+ import type { ESLint, Linter } from 'eslint';
2
+ declare const javascript: ({
3
+ readonly plugins: Record<string, ESLint.Plugin>;
3
4
  readonly rules: Readonly<Linter.RulesRecord>;
4
5
  } | {
5
6
  name?: string;
@@ -7,4 +8,4 @@ export declare const javascript: ({
7
8
  } | {
8
9
  ignores: string[];
9
10
  })[];
10
- export default javascript;
11
+ export { javascript, };
package/javascript.js CHANGED
@@ -1,9 +1,16 @@
1
1
  import js from '@eslint/js';
2
+ // eslint-disable-next-line imports/no-unresolved
2
3
  import typescript_eslint from 'typescript-eslint';
3
- export const javascript = [
4
+ import stylistic from '@stylistic/eslint-plugin';
5
+ import imports from 'eslint-plugin-import';
6
+ const javascript = [
4
7
  js.configs.recommended,
5
8
  ...typescript_eslint.configs.recommended,
6
9
  {
10
+ plugins: {
11
+ '@stylistic': stylistic,
12
+ imports,
13
+ },
7
14
  rules: {
8
15
  '@typescript-eslint/member-ordering': ['error', {
9
16
  default: {
@@ -50,18 +57,108 @@ export const javascript = [
50
57
  order: 'natural-case-insensitive',
51
58
  },
52
59
  }],
53
- 'comma-dangle': ['error', 'always-multiline'],
54
- indent: ['error', 'tab', {
55
- ignoredNodes: ['TemplateLiteral > *'],
56
- ImportDeclaration: 1,
60
+ 'sort-imports': ['error', {
61
+ ignoreCase: true,
62
+ ignoreDeclarationSort: true,
63
+ ignoreMemberSort: false,
64
+ memberSyntaxSortOrder: ['none', 'all', 'single', 'multiple'],
65
+ }],
66
+ '@stylistic/array-bracket-newline': ['error', 'consistent'],
67
+ '@stylistic/array-bracket-spacing': ['error', 'never'],
68
+ '@stylistic/array-element-newline': ['error', 'consistent'],
69
+ '@stylistic/arrow-parens': ['error', 'always'],
70
+ '@stylistic/arrow-spacing': ['error', { before: true, after: true }],
71
+ '@stylistic/block-spacing': ['error', 'always'],
72
+ '@stylistic/brace-style': ['error', '1tbs'],
73
+ '@stylistic/comma-dangle': ['error', 'always-multiline'],
74
+ '@stylistic/comma-spacing': ['error', {
75
+ before: false,
76
+ after: true,
57
77
  }],
58
- 'max-len': ['warn', 79, {
59
- ignoreTemplateLiterals: true,
78
+ '@stylistic/computed-property-spacing': ['error', 'never'],
79
+ '@stylistic/curly-newline': ['error', { consistent: true }],
80
+ '@stylistic/dot-location': ['error', 'property'],
81
+ '@stylistic/eol-last': ['error', 'always'],
82
+ '@stylistic/function-call-argument-newline': [
83
+ 'error',
84
+ 'consistent',
85
+ ],
86
+ '@stylistic/function-call-spacing': ['error', 'never'],
87
+ '@stylistic/generator-star-spacing': ['error', 'after'],
88
+ '@stylistic/implicit-arrow-linebreak': ['error', 'beside'],
89
+ '@stylistic/indent': ['error', 'tab'],
90
+ '@stylistic/indent-binary-ops': ['error', 'tab'],
91
+ '@stylistic/key-spacing': ['error', {
92
+ beforeColon: false,
93
+ afterColon: true,
94
+ mode: 'strict',
60
95
  }],
61
- 'object-curly-newline': ['error', {
96
+ '@stylistic/linebreak-style': ['error', 'unix'],
97
+ '@stylistic/lines-around-comment': ['error', {
98
+ beforeBlockComment: true,
99
+ afterBlockComment: false,
100
+ beforeLineComment: true,
101
+ afterLineComment: false,
102
+ allowBlockStart: true,
103
+ allowBlockEnd: false,
104
+ allowClassStart: false,
105
+ allowClassEnd: false,
106
+ allowObjectStart: true,
107
+ allowObjectEnd: false,
108
+ allowArrayStart: true,
109
+ allowArrayEnd: false,
110
+ afterHashbangComment: true,
111
+ }],
112
+ '@stylistic/lines-between-class-members': ['error', 'always', {
113
+ exceptAfterOverload: true,
114
+ }],
115
+ '@stylistic/max-len': ['warn', {
116
+ code: 79,
117
+ }],
118
+ '@stylistic/max-statements-per-line': ['error', { max: 1 }],
119
+ '@stylistic/member-delimiter-style': ['error', {
120
+ multiline: {
121
+ delimiter: 'comma',
122
+ requireLast: true,
123
+ },
124
+ singleline: {
125
+ delimiter: 'comma',
126
+ requireLast: false,
127
+ },
128
+ overrides: {
129
+ interface: {
130
+ multiline: {
131
+ delimiter: 'semi',
132
+ requireLast: true,
133
+ },
134
+ singleline: {
135
+ delimiter: 'semi',
136
+ requireLast: false,
137
+ },
138
+ },
139
+ },
140
+ }],
141
+ '@stylistic/multiline-ternary': ['error', 'always-multiline'],
142
+ '@stylistic/new-parens': ['error', 'always'],
143
+ '@stylistic/no-confusing-arrow': ['error'],
144
+ '@stylistic/no-extra-semi': ['error'],
145
+ '@stylistic/no-floating-decimal': ['error'],
146
+ '@stylistic/no-mixed-operators': ['error'],
147
+ '@stylistic/no-mixed-spaces-and-tabs': ['error', 'smart-tabs'],
148
+ '@stylistic/no-multi-spaces': ['error'],
149
+ '@stylistic/no-multiple-empty-lines': ['error'],
150
+ '@stylistic/no-tabs': ['error', { allowIndentationTabs: true }],
151
+ '@stylistic/no-trailing-spaces': ['error'],
152
+ '@stylistic/no-whitespace-before-property': ['error'],
153
+ '@stylistic/object-curly-newline': ['error', {
62
154
  ImportDeclaration: 'always',
155
+ ExportDeclaration: 'always',
63
156
  }],
64
- 'operator-linebreak': ['error', 'after', {
157
+ '@stylistic/one-var-declaration-per-line': [
158
+ 'error',
159
+ 'initializations',
160
+ ],
161
+ '@stylistic/operator-linebreak': ['error', 'before', {
65
162
  overrides: {
66
163
  '?': 'before',
67
164
  ':': 'before',
@@ -69,11 +166,98 @@ export const javascript = [
69
166
  '||': 'before',
70
167
  },
71
168
  }],
72
- 'sort-imports': ['error', {
73
- ignoreCase: true,
74
- ignoreDeclarationSort: true,
75
- ignoreMemberSort: false,
76
- memberSyntaxSortOrder: ['none', 'all', 'single', 'multiple'],
169
+ '@stylistic/padded-blocks': ['error', 'never'],
170
+ '@stylistic/padding-line-between-statements': [
171
+ 'error',
172
+ { blankLine: 'always', prev: '*', next: 'return' },
173
+ ],
174
+ '@stylistic/quote-props': ['error', 'as-needed'],
175
+ '@stylistic/quotes': ['error', 'single', {
176
+ allowTemplateLiterals: 'always',
177
+ }],
178
+ '@stylistic/rest-spread-spacing': ['error', 'never'],
179
+ '@stylistic/semi': ['error', 'always'],
180
+ '@stylistic/semi-spacing': ['error', { before: false, after: true }],
181
+ '@stylistic/semi-style': ['error', 'last'],
182
+ '@stylistic/space-before-blocks': ['error', 'always'],
183
+ '@stylistic/space-before-function-paren': ['error', {
184
+ anonymous: 'never',
185
+ named: 'never',
186
+ asyncArrow: 'always',
187
+ catch: 'always',
188
+ }],
189
+ '@stylistic/space-in-parens': ['error', 'never'],
190
+ '@stylistic/space-infix-ops': ['error', {
191
+ int32Hint: true,
192
+ ignoreTypes: true,
193
+ }],
194
+ '@stylistic/space-unary-ops': ['error'],
195
+ '@stylistic/spaced-comment': ['error', 'always'],
196
+ '@stylistic/switch-colon-spacing': ['error', {
197
+ before: false,
198
+ after: true,
199
+ }],
200
+ '@stylistic/template-curly-spacing': ['error', 'never'],
201
+ '@stylistic/template-tag-spacing': ['error', 'never'],
202
+ '@stylistic/type-annotation-spacing': ['error', {
203
+ before: false,
204
+ after: true,
205
+ overrides: {
206
+ arrow: {
207
+ before: true,
208
+ after: true,
209
+ },
210
+ },
211
+ }],
212
+ '@stylistic/type-generic-spacing': ['error'],
213
+ '@stylistic/type-named-tuple-spacing': ['error'],
214
+ '@stylistic/wrap-iife': ['error', 'inside'],
215
+ '@stylistic/yield-star-spacing': ['error', 'after'],
216
+ 'imports/export': ['error'],
217
+ 'imports/no-deprecated': ['error'],
218
+ 'imports/no-empty-named-blocks': ['error'],
219
+ 'imports/no-extraneous-dependencies': ['error'],
220
+ 'imports/no-mutable-exports': ['error'],
221
+ 'imports/no-named-as-default': ['error'],
222
+ 'imports/no-named-as-default-member': ['error'],
223
+ 'imports/no-unused-modules': ['error'],
224
+ 'imports/no-amd': ['error'],
225
+ 'imports/no-commonjs': ['error'],
226
+ 'imports/no-import-module-exports': ['error'],
227
+ 'imports/unambiguous': ['error'],
228
+ 'imports/default': ['error'],
229
+ 'imports/enforce-node-protocol-usage': ['error', 'always'],
230
+ 'imports/named': ['error'],
231
+ 'imports/namespace': ['error'],
232
+ 'imports/no-absolute-path': ['error'],
233
+ 'imports/no-cycle': ['error'],
234
+ 'imports/no-dynamic-require': ['error'],
235
+ 'imports/no-internal-modules': ['error'],
236
+ 'imports/no-relative-packages': ['error'],
237
+ 'imports/no-relative-parent-imports': ['error'],
238
+ 'imports/no-self-import': ['error'],
239
+ 'imports/no-unresolved': ['error'],
240
+ 'imports/no-useless-path-segments': ['error'],
241
+ 'imports/no-webpack-loader-syntax': ['error'],
242
+ 'imports/consistent-type-specifier-style': ['error'],
243
+ 'imports/exports-last': ['error'],
244
+ 'imports/extensions': ['error', 'ignorePackages'],
245
+ 'imports/first': ['error'],
246
+ 'imports/group-exports': ['error'],
247
+ 'imports/newline-after-import': ['error'],
248
+ 'imports/no-anonymous-default-export': ['error'],
249
+ 'imports/no-default-export': ['error'],
250
+ 'imports/no-duplicates': ['error'],
251
+ 'imports/no-named-default': ['error'],
252
+ 'imports/no-namespace': ['error'],
253
+ 'imports/no-unassigned-import': ['error'],
254
+ 'imports/order': ['error', {
255
+ groups: [
256
+ 'builtin',
257
+ 'external',
258
+ 'sibling',
259
+ 'parent',
260
+ ],
77
261
  }],
78
262
  },
79
263
  },
@@ -81,4 +265,4 @@ export const javascript = [
81
265
  ignores: ['**/*.d.ts'],
82
266
  },
83
267
  ];
84
- export default javascript;
268
+ export { javascript, };
package/package.json CHANGED
@@ -11,23 +11,26 @@
11
11
  "exports": "./index.js",
12
12
  "types": "./index.d.ts",
13
13
  "devDependencies": {
14
- "@eslint/js": "^9.34.0",
14
+ "@eslint/js": "^9.36.0",
15
+ "@stylistic/eslint-plugin": "^5.4.0",
15
16
  "@types/eslint": "^9.6.1",
16
- "@types/node": "^22.13.10",
17
- "@typescript-eslint/parser": "^8.42.0",
17
+ "@types/node": "^24.5.2",
18
+ "@typescript-eslint/parser": "^8.44.1",
18
19
  "c8": "^10.1.3",
19
- "jiti": "^2.5.1",
20
- "prettier": "^3.5.3",
20
+ "jiti": "^2.6.0",
21
+ "prettier": "^3.6.2",
21
22
  "typescript": "~5.9.2",
22
- "typescript-eslint": "^8.42.0"
23
+ "typescript-eslint": "^8.44.1"
23
24
  },
24
25
  "peerDependencies": {
25
- "@eslint/js": "^9.34.0",
26
+ "@eslint/js": "^9.36.0",
27
+ "@stylistic/eslint-plugin": "^5.4.0",
26
28
  "@types/eslint": "^9.6.1",
27
- "typescript-eslint": "^8.42.0"
29
+ "eslint-plugin-import": "^2.32.0",
30
+ "typescript-eslint": "^8.44.1"
28
31
  },
29
32
  "optionalDependencies": {
30
- "@typescript-eslint/parser": "^8.42.0"
33
+ "@typescript-eslint/parser": "^8.44.1"
31
34
  },
32
- "version": "0.4.0"
35
+ "version": "0.6.0"
33
36
  }
package/typescript.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Linter } from 'eslint';
2
- export declare const typescript: ({
2
+ declare const typescript: ({
3
3
  readonly rules: Readonly<Linter.RulesRecord>;
4
4
  } | {
5
5
  name?: string;
@@ -7,4 +7,4 @@ export declare const typescript: ({
7
7
  } | {
8
8
  ignores: string[];
9
9
  })[];
10
- export default typescript;
10
+ export { typescript, };
package/typescript.js CHANGED
@@ -1,7 +1,8 @@
1
- import config from './javascript.js';
1
+ // eslint-disable-next-line imports/no-unresolved
2
2
  import typescript_eslint from 'typescript-eslint';
3
- export const typescript = [
4
- ...config,
3
+ import { javascript, } from './javascript.js';
4
+ const typescript = [
5
+ ...javascript,
5
6
  ...typescript_eslint.configs.recommendedTypeChecked,
6
7
  {
7
8
  rules: {
@@ -12,4 +13,4 @@ export const typescript = [
12
13
  },
13
14
  },
14
15
  ];
15
- export default typescript;
16
+ export { typescript, };