@kikiutils/eslint-config 1.0.2 → 1.2.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/dist/index.d.ts CHANGED
@@ -4,4 +4,5 @@ import type { FlatConfigComposer } from 'eslint-flat-config-utils';
4
4
  export declare function createConfig(environment?: 'bun' | 'node', options?: Parameters<typeof antfu>[0]): FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
5
5
  export declare const bun: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
6
6
  export declare const node: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
7
+ export declare const vue: FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACtB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAgCnE,wBAAgB,YAAY,CACxB,WAAW,GAAE,KAAK,GAAG,MAAe,EACpC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,kBAAkB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CA6VtD;AAED,eAAO,MAAM,GAAG,sDAAsB,CAAC;AACvC,eAAO,MAAM,IAAI,sDAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACtB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAanE,wBAAgB,YAAY,CACxB,WAAW,GAAE,KAAK,GAAG,MAAe,EACpC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,kBAAkB,CAAC,mBAAmB,EAAE,WAAW,CAAC,CA+XtD;AAqBD,eAAO,MAAM,GAAG,sDAAsB,CAAC;AACvC,eAAO,MAAM,IAAI,sDAAuB,CAAC;AACzC,eAAO,MAAM,GAAG,sDAMf,CAAC"}
package/dist/index.mjs CHANGED
@@ -5,29 +5,11 @@ import format from 'eslint-plugin-format';
5
5
  import promise from 'eslint-plugin-promise';
6
6
  import tailwindcss from 'eslint-plugin-tailwindcss';
7
7
 
8
- const commonPerfectionistSortOptions = {
8
+ const basePerfectionistSortOptions = {
9
9
  ignoreCase: false,
10
- partitionByNewLine: true,
10
+ partitionByComment: true,
11
11
  type: 'natural',
12
12
  };
13
- function createPrettierCssConfig(parser) {
14
- return {
15
- files: [`**/*.${parser}`],
16
- languageOptions: { parser: format.parserPlain },
17
- plugins: { format },
18
- rules: {
19
- 'format/prettier': [
20
- 'error',
21
- {
22
- parser,
23
- printWidth: 120,
24
- singleQuote: true,
25
- tabWidth: 4,
26
- },
27
- ],
28
- },
29
- };
30
- }
31
13
  function createConfig(environment = 'node', options) {
32
14
  const userConfigs = [
33
15
  {
@@ -62,11 +44,11 @@ function createConfig(environment = 'node', options) {
62
44
  ],
63
45
  'perfectionist/sort-array-includes': [
64
46
  'error',
65
- commonPerfectionistSortOptions,
47
+ basePerfectionistSortOptions,
66
48
  ],
67
49
  'perfectionist/sort-enums': [
68
50
  'error',
69
- commonPerfectionistSortOptions,
51
+ basePerfectionistSortOptions,
70
52
  ],
71
53
  'perfectionist/sort-heritage-clauses': [
72
54
  'error',
@@ -121,27 +103,60 @@ function createConfig(environment = 'node', options) {
121
103
  ],
122
104
  'perfectionist/sort-interfaces': [
123
105
  'error',
124
- commonPerfectionistSortOptions,
106
+ basePerfectionistSortOptions,
125
107
  ],
126
108
  'perfectionist/sort-intersection-types': [
127
109
  'error',
128
- commonPerfectionistSortOptions,
110
+ basePerfectionistSortOptions,
129
111
  ],
130
112
  'perfectionist/sort-maps': [
131
113
  'error',
132
- commonPerfectionistSortOptions,
114
+ basePerfectionistSortOptions,
115
+ ],
116
+ 'perfectionist/sort-modules': [
117
+ 'error',
118
+ {
119
+ ...basePerfectionistSortOptions,
120
+ groups: [
121
+ [
122
+ 'declare-type',
123
+ 'export-type',
124
+ 'type',
125
+ ],
126
+ [
127
+ 'declare-interface',
128
+ 'export-interface',
129
+ 'interface',
130
+ ],
131
+ [
132
+ 'declare-enum',
133
+ 'enum',
134
+ 'export-enum',
135
+ ],
136
+ [
137
+ 'class',
138
+ 'declare-class',
139
+ 'export-class',
140
+ ],
141
+ [
142
+ 'declare-function',
143
+ 'export-function',
144
+ 'function',
145
+ ],
146
+ ],
147
+ },
133
148
  ],
134
149
  'perfectionist/sort-object-types': [
135
150
  'error',
136
- commonPerfectionistSortOptions,
151
+ basePerfectionistSortOptions,
137
152
  ],
138
153
  'perfectionist/sort-objects': [
139
154
  'error',
140
- commonPerfectionistSortOptions,
155
+ basePerfectionistSortOptions,
141
156
  ],
142
157
  'perfectionist/sort-sets': [
143
158
  'error',
144
- commonPerfectionistSortOptions,
159
+ basePerfectionistSortOptions,
145
160
  ],
146
161
  'perfectionist/sort-switch-case': [
147
162
  'error',
@@ -152,11 +167,11 @@ function createConfig(environment = 'node', options) {
152
167
  ],
153
168
  'perfectionist/sort-union-types': [
154
169
  'error',
155
- commonPerfectionistSortOptions,
170
+ basePerfectionistSortOptions,
156
171
  ],
157
172
  'perfectionist/sort-variable-declarations': [
158
173
  'error',
159
- commonPerfectionistSortOptions,
174
+ basePerfectionistSortOptions,
160
175
  ],
161
176
  'promise/no-multiple-resolved': 'error',
162
177
  'promise/no-return-in-finally': 'error',
@@ -280,6 +295,7 @@ function createConfig(environment = 'node', options) {
280
295
  'error',
281
296
  { alphabetical: true },
282
297
  ],
298
+ '@kikiutils/vue/no-extra-space-in-class': 'error',
283
299
  'style/max-len': 'off',
284
300
  'tailwindcss/classnames-order': 'off',
285
301
  'tailwindcss/enforces-negative-arbitrary-values': 'error',
@@ -367,8 +383,30 @@ function createConfig(environment = 'node', options) {
367
383
  ...options,
368
384
  }, ...userConfigs);
369
385
  }
386
+ function createPrettierCssConfig(parser) {
387
+ return {
388
+ files: [`**/*.${parser}`],
389
+ languageOptions: { parser: format.parserPlain },
390
+ plugins: { format },
391
+ rules: {
392
+ 'format/prettier': [
393
+ 'error',
394
+ {
395
+ parser,
396
+ printWidth: 120,
397
+ singleQuote: true,
398
+ tabWidth: 4,
399
+ },
400
+ ],
401
+ },
402
+ };
403
+ }
370
404
  const bun = createConfig('bun');
371
405
  const node = createConfig('node');
406
+ const vue = createConfig('node', {
407
+ formatters: { css: true },
408
+ vue: true,
409
+ });
372
410
 
373
- export { bun, createConfig, node };
411
+ export { bun, createConfig, node, vue };
374
412
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { antfu } from '@antfu/eslint-config';\nimport type {\n ConfigNames,\n TypedFlatConfigItem,\n} from '@antfu/eslint-config';\n// @ts-expect-error No declare file.\nimport kikiutilsTailwindcss from '@kikiutils/eslint-plugin-tailwindcss';\n// @ts-expect-error Ignore this error.\nimport kikiutilsEslintPluginVue from '@kikiutils/eslint-plugin-vue';\nimport type { FlatConfigComposer } from 'eslint-flat-config-utils';\nimport format from 'eslint-plugin-format';\n// @ts-expect-error No declare file.\nimport promise from 'eslint-plugin-promise';\n// @ts-expect-error No declare file.\nimport tailwindcss from 'eslint-plugin-tailwindcss';\n\nconst commonPerfectionistSortOptions = {\n ignoreCase: false,\n partitionByNewLine: true,\n type: 'natural',\n} as const;\n\nfunction createPrettierCssConfig(parser: 'css' | 'sass' | 'scss'): TypedFlatConfigItem {\n return {\n files: [`**/*.${parser}`],\n languageOptions: { parser: format.parserPlain },\n plugins: { format },\n rules: {\n 'format/prettier': [\n 'error',\n {\n parser,\n printWidth: 120,\n singleQuote: true,\n tabWidth: 4,\n },\n ],\n },\n };\n}\n\nexport function createConfig(\n environment: 'bun' | 'node' = 'node',\n options?: Parameters<typeof antfu>[0],\n): FlatConfigComposer<TypedFlatConfigItem, ConfigNames> {\n const userConfigs: Parameters<typeof antfu>[1] = [\n {\n files: ['**/*.{cjs,js,mjs,ts,vue}'],\n plugins: { promise },\n rules: {\n 'antfu/consistent-list-newline': [\n 'error',\n {\n ArrayExpression: false,\n ArrayPattern: false,\n },\n ],\n 'antfu/curly': 'off',\n 'antfu/if-newline': 'off',\n 'antfu/no-top-level-await': 'off',\n 'curly': [\n 'error',\n 'multi-line',\n ],\n 'max-classes-per-file': [\n 'error',\n 1,\n ],\n 'no-promise-executor-return': [\n 'error',\n { allowVoid: true },\n ],\n 'node/prefer-global/process': [\n 'error',\n 'always',\n ],\n 'perfectionist/sort-array-includes': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-enums': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-heritage-clauses': [\n 'error',\n {\n ignoreCase: false,\n type: 'natural',\n },\n ],\n 'perfectionist/sort-imports': [\n 'error',\n {\n environment,\n groups: [\n 'side-effect',\n 'side-effect-style',\n 'style',\n [\n 'builtin',\n 'builtin-type',\n ],\n [\n 'external',\n 'external-type',\n ],\n [\n 'internal',\n 'internal-type',\n ],\n [\n 'parent',\n 'parent-type',\n ],\n [\n 'sibling',\n 'sibling-type',\n ],\n [\n 'index',\n 'index-type',\n ],\n 'object',\n 'unknown',\n ],\n ignoreCase: false,\n internalPattern: [\n '^#.*',\n '^@/.*',\n '^~/.*',\n ],\n type: 'natural',\n },\n ],\n 'perfectionist/sort-interfaces': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-intersection-types': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-maps': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-object-types': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-objects': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-sets': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-switch-case': [\n 'error',\n {\n ignoreCase: false,\n type: 'natural',\n },\n ],\n 'perfectionist/sort-union-types': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'perfectionist/sort-variable-declarations': [\n 'error',\n commonPerfectionistSortOptions,\n ],\n 'promise/no-multiple-resolved': 'error',\n 'promise/no-return-in-finally': 'error',\n 'promise/no-return-wrap': 'error',\n 'require-await': 'error',\n 'style/array-bracket-newline': [\n 'error',\n { multiline: true },\n ],\n 'style/array-element-newline': [\n 'error',\n {\n ArrayExpression: {\n consistent: true,\n minItems: 2,\n },\n ArrayPattern: { minItems: 3 },\n },\n ],\n 'style/arrow-parens': [\n 'error',\n 'always',\n ],\n 'style/brace-style': [\n 'error',\n '1tbs',\n { allowSingleLine: false },\n ],\n 'style/function-call-spacing': [\n 'error',\n 'never',\n ],\n 'style/indent': [\n 'error',\n 4,\n ],\n 'style/max-len': [\n 'warn',\n {\n code: 120,\n comments: 120,\n },\n ],\n 'style/member-delimiter-style': [\n 'error',\n {\n multiline: {\n delimiter: 'semi',\n requireLast: true,\n },\n },\n ],\n 'style/no-extra-parens': [\n 'error',\n 'all',\n { nestedBinaryExpressions: false },\n ],\n 'style/no-extra-semi': 'error',\n 'style/object-curly-newline': [\n 'error',\n {\n ExportDeclaration: {\n minProperties: 2,\n multiline: true,\n },\n ImportDeclaration: {\n minProperties: 2,\n multiline: true,\n },\n ObjectExpression: {\n minProperties: 2,\n multiline: true,\n },\n ObjectPattern: {\n minProperties: 3,\n multiline: true,\n },\n },\n ],\n 'style/padding-line-between-statements': [\n 'error',\n {\n blankLine: 'always',\n next: [\n 'class',\n 'enum',\n 'function',\n ],\n prev: '*',\n },\n {\n blankLine: 'always',\n next: '*',\n prev: [\n 'class',\n 'function',\n ],\n },\n ],\n 'style/semi': [\n 'error',\n 'always',\n ],\n 'ts/consistent-generic-constructors': [\n 'error',\n 'constructor',\n ],\n 'ts/no-redeclare': 'off',\n },\n },\n {\n files: ['**/*.vue'],\n plugins: {\n '@kikiutils/tailwindcss': kikiutilsTailwindcss,\n '@kikiutils/vue': kikiutilsEslintPluginVue,\n tailwindcss,\n },\n rules: {\n '@kikiutils/tailwindcss/classnames-order': 'error',\n '@kikiutils/vue/attributes-order': [\n 'error',\n { alphabetical: true },\n ],\n 'style/max-len': 'off',\n 'tailwindcss/classnames-order': 'off',\n 'tailwindcss/enforces-negative-arbitrary-values': 'error',\n 'tailwindcss/enforces-shorthand': 'error',\n 'tailwindcss/no-unnecessary-arbitrary-value': 'error',\n 'vue/attribute-hyphenation': 'error',\n 'vue/attributes-order': 'off',\n 'vue/block-order': [\n 'error',\n {\n order: [\n 'template',\n 'script',\n 'style',\n ],\n },\n ],\n 'vue/component-api-style': 'error',\n 'vue/define-emits-declaration': 'error',\n 'vue/define-props-declaration': 'error',\n 'vue/enforce-style-attribute': 'error',\n 'vue/html-closing-bracket-newline': 'error',\n 'vue/html-closing-bracket-spacing': 'error',\n 'vue/html-indent': [\n 'error',\n 4,\n ],\n 'vue/max-attributes-per-line': [\n 'error',\n {\n multiline: 1,\n singleline: 1,\n },\n ],\n 'vue/max-len': [\n 'warn',\n {\n code: 120,\n comments: 120,\n template: 120,\n },\n ],\n 'vue/no-dupe-keys': 'error',\n 'vue/no-lone-template': 'error',\n 'vue/no-multi-spaces': 'error',\n 'vue/no-multiple-objects-in-class': 'error',\n 'vue/no-root-v-if': 'error',\n 'vue/no-template-target-blank': 'error',\n 'vue/no-v-html': 'error',\n 'vue/prefer-define-options': 'error',\n 'vue/prefer-separate-static-class': 'error',\n 'vue/require-explicit-emits': 'error',\n 'vue/require-typed-ref': 'error',\n },\n },\n {\n files: ['**/.vscode/*.json'],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: {\n natural: true,\n type: 'asc',\n },\n pathPattern: '^.*$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n 'asc',\n {\n caseSensitive: true,\n natural: true,\n },\n ],\n },\n },\n ];\n\n if (options?.formatters && (typeof options.formatters === 'boolean' || options.formatters.css)) {\n userConfigs.splice(\n 1,\n 0,\n createPrettierCssConfig('css'),\n createPrettierCssConfig('sass'),\n createPrettierCssConfig('scss'),\n );\n }\n\n return antfu(\n {\n typescript: true,\n ...options,\n },\n ...userConfigs,\n );\n}\n\nexport const bun = createConfig('bun');\nexport const node = createConfig('node');\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import { antfu } from '@antfu/eslint-config';\nimport type {\n ConfigNames,\n TypedFlatConfigItem,\n} from '@antfu/eslint-config';\n// @ts-expect-error No declare file.\nimport kikiutilsTailwindcss from '@kikiutils/eslint-plugin-tailwindcss';\n// @ts-expect-error Ignore this error.\nimport kikiutilsEslintPluginVue from '@kikiutils/eslint-plugin-vue';\nimport type { FlatConfigComposer } from 'eslint-flat-config-utils';\nimport format from 'eslint-plugin-format';\n// @ts-expect-error No declare file.\nimport promise from 'eslint-plugin-promise';\n// @ts-expect-error No declare file.\nimport tailwindcss from 'eslint-plugin-tailwindcss';\n\nconst basePerfectionistSortOptions = {\n ignoreCase: false,\n partitionByComment: true,\n type: 'natural',\n} as const;\n\nexport function createConfig(\n environment: 'bun' | 'node' = 'node',\n options?: Parameters<typeof antfu>[0],\n): FlatConfigComposer<TypedFlatConfigItem, ConfigNames> {\n const userConfigs: Parameters<typeof antfu>[1] = [\n {\n files: ['**/*.{cjs,js,mjs,ts,vue}'],\n plugins: { promise },\n rules: {\n 'antfu/consistent-list-newline': [\n 'error',\n {\n ArrayExpression: false,\n ArrayPattern: false,\n },\n ],\n 'antfu/curly': 'off',\n 'antfu/if-newline': 'off',\n 'antfu/no-top-level-await': 'off',\n 'curly': [\n 'error',\n 'multi-line',\n ],\n 'max-classes-per-file': [\n 'error',\n 1,\n ],\n 'no-promise-executor-return': [\n 'error',\n { allowVoid: true },\n ],\n 'node/prefer-global/process': [\n 'error',\n 'always',\n ],\n 'perfectionist/sort-array-includes': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-enums': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-heritage-clauses': [\n 'error',\n {\n ignoreCase: false,\n type: 'natural',\n },\n ],\n 'perfectionist/sort-imports': [\n 'error',\n {\n environment,\n groups: [\n 'side-effect',\n 'side-effect-style',\n 'style',\n [\n 'builtin',\n 'builtin-type',\n ],\n [\n 'external',\n 'external-type',\n ],\n [\n 'internal',\n 'internal-type',\n ],\n [\n 'parent',\n 'parent-type',\n ],\n [\n 'sibling',\n 'sibling-type',\n ],\n [\n 'index',\n 'index-type',\n ],\n 'object',\n 'unknown',\n ],\n ignoreCase: false,\n internalPattern: [\n '^#.*',\n '^@/.*',\n '^~/.*',\n ],\n type: 'natural',\n },\n ],\n 'perfectionist/sort-interfaces': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-intersection-types': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-maps': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-modules': [\n 'error',\n {\n ...basePerfectionistSortOptions,\n groups: [\n [\n 'declare-type',\n 'export-type',\n 'type',\n ],\n [\n 'declare-interface',\n 'export-interface',\n 'interface',\n ],\n [\n 'declare-enum',\n 'enum',\n 'export-enum',\n ],\n [\n 'class',\n 'declare-class',\n 'export-class',\n ],\n [\n 'declare-function',\n 'export-function',\n 'function',\n ],\n ],\n },\n ],\n 'perfectionist/sort-object-types': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-objects': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-sets': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-switch-case': [\n 'error',\n {\n ignoreCase: false,\n type: 'natural',\n },\n ],\n 'perfectionist/sort-union-types': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'perfectionist/sort-variable-declarations': [\n 'error',\n basePerfectionistSortOptions,\n ],\n 'promise/no-multiple-resolved': 'error',\n 'promise/no-return-in-finally': 'error',\n 'promise/no-return-wrap': 'error',\n 'require-await': 'error',\n 'style/array-bracket-newline': [\n 'error',\n { multiline: true },\n ],\n 'style/array-element-newline': [\n 'error',\n {\n ArrayExpression: {\n consistent: true,\n minItems: 2,\n },\n ArrayPattern: { minItems: 3 },\n },\n ],\n 'style/arrow-parens': [\n 'error',\n 'always',\n ],\n 'style/brace-style': [\n 'error',\n '1tbs',\n { allowSingleLine: false },\n ],\n 'style/function-call-spacing': [\n 'error',\n 'never',\n ],\n 'style/indent': [\n 'error',\n 4,\n ],\n 'style/max-len': [\n 'warn',\n {\n code: 120,\n comments: 120,\n },\n ],\n 'style/member-delimiter-style': [\n 'error',\n {\n multiline: {\n delimiter: 'semi',\n requireLast: true,\n },\n },\n ],\n 'style/no-extra-parens': [\n 'error',\n 'all',\n { nestedBinaryExpressions: false },\n ],\n 'style/no-extra-semi': 'error',\n 'style/object-curly-newline': [\n 'error',\n {\n ExportDeclaration: {\n minProperties: 2,\n multiline: true,\n },\n ImportDeclaration: {\n minProperties: 2,\n multiline: true,\n },\n ObjectExpression: {\n minProperties: 2,\n multiline: true,\n },\n ObjectPattern: {\n minProperties: 3,\n multiline: true,\n },\n },\n ],\n 'style/padding-line-between-statements': [\n 'error',\n {\n blankLine: 'always',\n next: [\n 'class',\n 'enum',\n 'function',\n ],\n prev: '*',\n },\n {\n blankLine: 'always',\n next: '*',\n prev: [\n 'class',\n 'function',\n ],\n },\n ],\n 'style/semi': [\n 'error',\n 'always',\n ],\n 'ts/consistent-generic-constructors': [\n 'error',\n 'constructor',\n ],\n 'ts/no-redeclare': 'off',\n },\n },\n {\n files: ['**/*.vue'],\n plugins: {\n '@kikiutils/tailwindcss': kikiutilsTailwindcss,\n '@kikiutils/vue': kikiutilsEslintPluginVue,\n tailwindcss,\n },\n rules: {\n '@kikiutils/tailwindcss/classnames-order': 'error',\n '@kikiutils/vue/attributes-order': [\n 'error',\n { alphabetical: true },\n ],\n '@kikiutils/vue/no-extra-space-in-class': 'error',\n 'style/max-len': 'off',\n 'tailwindcss/classnames-order': 'off',\n 'tailwindcss/enforces-negative-arbitrary-values': 'error',\n 'tailwindcss/enforces-shorthand': 'error',\n 'tailwindcss/no-unnecessary-arbitrary-value': 'error',\n 'vue/attribute-hyphenation': 'error',\n 'vue/attributes-order': 'off',\n 'vue/block-order': [\n 'error',\n {\n order: [\n 'template',\n 'script',\n 'style',\n ],\n },\n ],\n 'vue/component-api-style': 'error',\n 'vue/define-emits-declaration': 'error',\n 'vue/define-props-declaration': 'error',\n 'vue/enforce-style-attribute': 'error',\n 'vue/html-closing-bracket-newline': 'error',\n 'vue/html-closing-bracket-spacing': 'error',\n 'vue/html-indent': [\n 'error',\n 4,\n ],\n 'vue/max-attributes-per-line': [\n 'error',\n {\n multiline: 1,\n singleline: 1,\n },\n ],\n 'vue/max-len': [\n 'warn',\n {\n code: 120,\n comments: 120,\n template: 120,\n },\n ],\n 'vue/no-dupe-keys': 'error',\n 'vue/no-lone-template': 'error',\n 'vue/no-multi-spaces': 'error',\n 'vue/no-multiple-objects-in-class': 'error',\n 'vue/no-root-v-if': 'error',\n 'vue/no-template-target-blank': 'error',\n 'vue/no-v-html': 'error',\n 'vue/prefer-define-options': 'error',\n 'vue/prefer-separate-static-class': 'error',\n 'vue/require-explicit-emits': 'error',\n 'vue/require-typed-ref': 'error',\n },\n },\n {\n files: ['**/.vscode/*.json'],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: {\n natural: true,\n type: 'asc',\n },\n pathPattern: '^.*$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n 'asc',\n {\n caseSensitive: true,\n natural: true,\n },\n ],\n },\n },\n ];\n\n if (options?.formatters && (typeof options.formatters === 'boolean' || options.formatters.css)) {\n userConfigs.splice(\n 1,\n 0,\n createPrettierCssConfig('css'),\n createPrettierCssConfig('sass'),\n createPrettierCssConfig('scss'),\n );\n }\n\n return antfu(\n {\n typescript: true,\n ...options,\n },\n ...userConfigs,\n );\n}\n\nfunction createPrettierCssConfig(parser: 'css' | 'sass' | 'scss'): TypedFlatConfigItem {\n return {\n files: [`**/*.${parser}`],\n languageOptions: { parser: format.parserPlain },\n plugins: { format },\n rules: {\n 'format/prettier': [\n 'error',\n {\n parser,\n printWidth: 120,\n singleQuote: true,\n tabWidth: 4,\n },\n ],\n },\n };\n}\n\nexport const bun = createConfig('bun');\nexport const node = createConfig('node');\nexport const vue = createConfig(\n 'node',\n {\n formatters: { css: true },\n vue: true,\n },\n);\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kikiutils/eslint-config",
3
3
  "type": "module",
4
- "version": "1.0.2",
4
+ "version": "1.2.0",
5
5
  "description": "Using antfu/eslint-config as a base for eslint-config, slightly modified the settings and added additional plugins, mainly for my own use.",
6
6
  "author": "kiki-kanri",
7
7
  "license": "MIT",
@@ -28,26 +28,26 @@
28
28
  "scripts": {
29
29
  "build": "ts-project-builder ./src/index.ts -f esm --clean --preserve-modules --sourcemaps",
30
30
  "bumplog": "changelogen --bump --hideAuthorEmail",
31
- "lint": "eslint",
32
- "lint:fix": "eslint --fix",
31
+ "lint": "eslint --max-warnings 0",
32
+ "lint:fix": "eslint --fix --max-warnings 0",
33
33
  "prepack": "pnpm run build",
34
- "release": "pnpm run lint && pnpm run build && changelogen --hideAuthorEmail --push --release && npm publish",
34
+ "release": "pnpm run lint && pnpm run typecheck && pnpm run build && changelogen --hideAuthorEmail --push --release && npm publish",
35
35
  "typecheck": "tsc --noEmit"
36
36
  },
37
37
  "dependencies": {
38
- "@antfu/eslint-config": "^4.13.0",
38
+ "@antfu/eslint-config": "^4.13.2",
39
39
  "@kikiutils/eslint-plugin-tailwindcss": "^3.19.0",
40
- "@kikiutils/eslint-plugin-vue": "^10.1.2",
41
- "eslint": "^9.26.0",
40
+ "@kikiutils/eslint-plugin-vue": "^10.2.2",
41
+ "eslint": "^9.27.0",
42
42
  "eslint-plugin-format": "^1.0.1",
43
43
  "eslint-plugin-promise": "^7.2.1",
44
44
  "eslint-plugin-tailwindcss": "^3.18.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@kikiutils/changelogen": "^0.8.0",
48
- "@kikiutils/tsconfigs": "^5.0.1",
49
- "eslint-flat-config-utils": "^2.0.1",
50
- "ts-project-builder": "^5.0.1",
48
+ "@kikiutils/tsconfigs": "^5.0.4",
49
+ "eslint-flat-config-utils": "^2.1.0",
50
+ "ts-project-builder": "^5.0.2",
51
51
  "typescript": "^5.8.3"
52
52
  },
53
53
  "pnpm": {
package/src/index.ts CHANGED
@@ -14,31 +14,12 @@ import promise from 'eslint-plugin-promise';
14
14
  // @ts-expect-error No declare file.
15
15
  import tailwindcss from 'eslint-plugin-tailwindcss';
16
16
 
17
- const commonPerfectionistSortOptions = {
17
+ const basePerfectionistSortOptions = {
18
18
  ignoreCase: false,
19
- partitionByNewLine: true,
19
+ partitionByComment: true,
20
20
  type: 'natural',
21
21
  } as const;
22
22
 
23
- function createPrettierCssConfig(parser: 'css' | 'sass' | 'scss'): TypedFlatConfigItem {
24
- return {
25
- files: [`**/*.${parser}`],
26
- languageOptions: { parser: format.parserPlain },
27
- plugins: { format },
28
- rules: {
29
- 'format/prettier': [
30
- 'error',
31
- {
32
- parser,
33
- printWidth: 120,
34
- singleQuote: true,
35
- tabWidth: 4,
36
- },
37
- ],
38
- },
39
- };
40
- }
41
-
42
23
  export function createConfig(
43
24
  environment: 'bun' | 'node' = 'node',
44
25
  options?: Parameters<typeof antfu>[0],
@@ -76,11 +57,11 @@ export function createConfig(
76
57
  ],
77
58
  'perfectionist/sort-array-includes': [
78
59
  'error',
79
- commonPerfectionistSortOptions,
60
+ basePerfectionistSortOptions,
80
61
  ],
81
62
  'perfectionist/sort-enums': [
82
63
  'error',
83
- commonPerfectionistSortOptions,
64
+ basePerfectionistSortOptions,
84
65
  ],
85
66
  'perfectionist/sort-heritage-clauses': [
86
67
  'error',
@@ -135,27 +116,60 @@ export function createConfig(
135
116
  ],
136
117
  'perfectionist/sort-interfaces': [
137
118
  'error',
138
- commonPerfectionistSortOptions,
119
+ basePerfectionistSortOptions,
139
120
  ],
140
121
  'perfectionist/sort-intersection-types': [
141
122
  'error',
142
- commonPerfectionistSortOptions,
123
+ basePerfectionistSortOptions,
143
124
  ],
144
125
  'perfectionist/sort-maps': [
145
126
  'error',
146
- commonPerfectionistSortOptions,
127
+ basePerfectionistSortOptions,
128
+ ],
129
+ 'perfectionist/sort-modules': [
130
+ 'error',
131
+ {
132
+ ...basePerfectionistSortOptions,
133
+ groups: [
134
+ [
135
+ 'declare-type',
136
+ 'export-type',
137
+ 'type',
138
+ ],
139
+ [
140
+ 'declare-interface',
141
+ 'export-interface',
142
+ 'interface',
143
+ ],
144
+ [
145
+ 'declare-enum',
146
+ 'enum',
147
+ 'export-enum',
148
+ ],
149
+ [
150
+ 'class',
151
+ 'declare-class',
152
+ 'export-class',
153
+ ],
154
+ [
155
+ 'declare-function',
156
+ 'export-function',
157
+ 'function',
158
+ ],
159
+ ],
160
+ },
147
161
  ],
148
162
  'perfectionist/sort-object-types': [
149
163
  'error',
150
- commonPerfectionistSortOptions,
164
+ basePerfectionistSortOptions,
151
165
  ],
152
166
  'perfectionist/sort-objects': [
153
167
  'error',
154
- commonPerfectionistSortOptions,
168
+ basePerfectionistSortOptions,
155
169
  ],
156
170
  'perfectionist/sort-sets': [
157
171
  'error',
158
- commonPerfectionistSortOptions,
172
+ basePerfectionistSortOptions,
159
173
  ],
160
174
  'perfectionist/sort-switch-case': [
161
175
  'error',
@@ -166,11 +180,11 @@ export function createConfig(
166
180
  ],
167
181
  'perfectionist/sort-union-types': [
168
182
  'error',
169
- commonPerfectionistSortOptions,
183
+ basePerfectionistSortOptions,
170
184
  ],
171
185
  'perfectionist/sort-variable-declarations': [
172
186
  'error',
173
- commonPerfectionistSortOptions,
187
+ basePerfectionistSortOptions,
174
188
  ],
175
189
  'promise/no-multiple-resolved': 'error',
176
190
  'promise/no-return-in-finally': 'error',
@@ -294,6 +308,7 @@ export function createConfig(
294
308
  'error',
295
309
  { alphabetical: true },
296
310
  ],
311
+ '@kikiutils/vue/no-extra-space-in-class': 'error',
297
312
  'style/max-len': 'off',
298
313
  'tailwindcss/classnames-order': 'off',
299
314
  'tailwindcss/enforces-negative-arbitrary-values': 'error',
@@ -393,5 +408,31 @@ export function createConfig(
393
408
  );
394
409
  }
395
410
 
411
+ function createPrettierCssConfig(parser: 'css' | 'sass' | 'scss'): TypedFlatConfigItem {
412
+ return {
413
+ files: [`**/*.${parser}`],
414
+ languageOptions: { parser: format.parserPlain },
415
+ plugins: { format },
416
+ rules: {
417
+ 'format/prettier': [
418
+ 'error',
419
+ {
420
+ parser,
421
+ printWidth: 120,
422
+ singleQuote: true,
423
+ tabWidth: 4,
424
+ },
425
+ ],
426
+ },
427
+ };
428
+ }
429
+
396
430
  export const bun = createConfig('bun');
397
431
  export const node = createConfig('node');
432
+ export const vue = createConfig(
433
+ 'node',
434
+ {
435
+ formatters: { css: true },
436
+ vue: true,
437
+ },
438
+ );