@luxass/eslint-config 4.0.0-beta.9 → 4.0.1
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 +351 -48
- package/dist/{chunk-TQ476NL2.mjs → chunk-4YBQZLPS.mjs} +13 -2
- package/dist/{chunk-NDNDG7BH.mjs → chunk-5NK24IKQ.mjs} +2 -5
- package/dist/{chunk-2SW2E3TH.mjs → chunk-5SDSWPKR.mjs} +14 -4
- package/dist/chunk-6T7MXPCT.mjs +17 -0
- package/dist/{chunk-SPQZTV4E.mjs → chunk-7R4FYLS2.mjs} +19 -14
- package/dist/{chunk-ADP4MYOS.mjs → chunk-ANUYBAYV.mjs} +1 -1
- package/dist/{chunk-R4NSLRAE.mjs → chunk-ATRL3UZP.mjs} +14 -8
- package/dist/{chunk-P3N5WLFL.mjs → chunk-BXBN56WI.mjs} +11 -7
- package/dist/chunk-CJ3ZUYUJ.mjs +183 -0
- package/dist/chunk-DAJA5AV3.mjs +29 -0
- package/dist/{chunk-FK567E7G.mjs → chunk-DVQQVCGF.mjs} +7 -3
- package/dist/chunk-FU5SRKZU.mjs +104 -0
- package/dist/{chunk-LQLF2CMA.mjs → chunk-GBLPCM3X.mjs} +14 -17
- package/dist/chunk-KJ7ZCBK4.mjs +48 -0
- package/dist/{chunk-QZTI72NS.mjs → chunk-PYS26PF3.mjs} +13 -9
- package/dist/chunk-Q57BF3CR.mjs +63 -0
- package/dist/{chunk-3QHLEAXK.mjs → chunk-RDZJT36Z.mjs} +22 -8
- package/dist/chunk-RNFKNSHW.mjs +293 -0
- package/dist/{chunk-HE56XDG6.mjs → chunk-RVSUTDCE.mjs} +15 -5
- package/dist/chunk-UMUUVFB7.mjs +69 -0
- package/dist/{chunk-NUG6FLHN.mjs → chunk-VZ2YFMWH.mjs} +54 -11
- package/dist/chunk-WDSV2EFG.mjs +7 -0
- package/dist/{chunk-M5WNLLBT.mjs → chunk-WOYZWHPM.mjs} +20 -7
- package/dist/chunk-WRURTO5T.mjs +144 -0
- package/dist/{chunk-BAKUP7QM.mjs → chunk-Z7F6QSYQ.mjs} +44 -34
- package/dist/configs/astro.cjs +11 -21
- package/dist/configs/astro.d.cts +3 -6
- package/dist/configs/astro.d.ts +3 -6
- package/dist/configs/astro.mjs +3 -3
- package/dist/configs/comments.cjs +9 -12
- package/dist/configs/comments.d.cts +3 -2
- package/dist/configs/comments.d.ts +3 -2
- package/dist/configs/comments.mjs +1 -2
- package/dist/configs/formatters.cjs +274 -0
- package/dist/configs/formatters.d.cts +11 -0
- package/dist/configs/formatters.d.ts +11 -0
- package/dist/configs/formatters.mjs +9 -0
- package/dist/configs/ignores.cjs +1 -8
- package/dist/configs/ignores.d.cts +3 -2
- package/dist/configs/ignores.d.ts +3 -2
- package/dist/configs/ignores.mjs +2 -2
- package/dist/configs/imports.cjs +35 -9
- package/dist/configs/imports.d.cts +13 -4
- package/dist/configs/imports.d.ts +13 -4
- package/dist/configs/imports.mjs +2 -2
- package/dist/configs/index.cjs +1487 -1074
- package/dist/configs/index.d.cts +7 -18
- package/dist/configs/index.d.ts +7 -18
- package/dist/configs/index.mjs +40 -36
- package/dist/configs/javascript.cjs +16 -23
- package/dist/configs/javascript.d.cts +3 -6
- package/dist/configs/javascript.d.ts +3 -6
- package/dist/configs/javascript.mjs +2 -3
- package/dist/configs/jsdoc.cjs +6 -2
- package/dist/configs/jsdoc.d.cts +17 -4
- package/dist/configs/jsdoc.d.ts +17 -4
- package/dist/configs/jsdoc.mjs +2 -2
- package/dist/configs/jsonc.cjs +8 -11
- package/dist/configs/jsonc.d.cts +3 -6
- package/dist/configs/jsonc.d.ts +3 -6
- package/dist/configs/jsonc.mjs +3 -3
- package/dist/configs/markdown.cjs +46 -35
- package/dist/configs/markdown.d.cts +25 -4
- package/dist/configs/markdown.d.ts +25 -4
- package/dist/configs/markdown.mjs +3 -3
- package/dist/configs/nextjs.cjs +13 -11
- package/dist/configs/nextjs.d.cts +3 -6
- package/dist/configs/nextjs.d.ts +3 -6
- package/dist/configs/nextjs.mjs +3 -3
- package/dist/configs/node.cjs +0 -10
- package/dist/configs/node.d.cts +3 -2
- package/dist/configs/node.d.ts +3 -2
- package/dist/configs/node.mjs +1 -2
- package/dist/configs/perfectionist.cjs +2 -20
- package/dist/configs/perfectionist.d.cts +4 -3
- package/dist/configs/perfectionist.d.ts +4 -3
- package/dist/configs/perfectionist.mjs +1 -2
- package/dist/configs/react.cjs +206 -203
- package/dist/configs/react.d.cts +3 -6
- package/dist/configs/react.d.ts +3 -6
- package/dist/configs/react.mjs +3 -3
- package/dist/configs/sort.cjs +6 -6
- package/dist/configs/sort.d.cts +3 -2
- package/dist/configs/sort.d.ts +3 -2
- package/dist/configs/sort.mjs +1 -1
- package/dist/configs/stylistic.cjs +20 -11
- package/dist/configs/stylistic.d.cts +4 -7
- package/dist/configs/stylistic.d.ts +4 -7
- package/dist/configs/stylistic.mjs +4 -3
- package/dist/configs/tailwindcss.cjs +33 -47
- package/dist/configs/tailwindcss.d.cts +3 -6
- package/dist/configs/tailwindcss.d.ts +3 -6
- package/dist/configs/tailwindcss.mjs +3 -3
- package/dist/configs/test.cjs +103 -16
- package/dist/configs/test.d.cts +3 -6
- package/dist/configs/test.d.ts +3 -6
- package/dist/configs/test.mjs +4 -3
- package/dist/configs/toml.cjs +131 -0
- package/dist/configs/toml.d.cts +11 -0
- package/dist/configs/toml.d.ts +11 -0
- package/dist/configs/toml.mjs +8 -0
- package/dist/configs/typescript.cjs +39 -43
- package/dist/configs/typescript.d.cts +3 -6
- package/dist/configs/typescript.d.ts +3 -6
- package/dist/configs/typescript.mjs +3 -4
- package/dist/configs/unicorn.cjs +13 -10
- package/dist/configs/unicorn.d.cts +3 -2
- package/dist/configs/unicorn.d.ts +3 -2
- package/dist/configs/unicorn.mjs +1 -2
- package/dist/configs/unocss.cjs +48 -20
- package/dist/configs/unocss.d.cts +3 -6
- package/dist/configs/unocss.d.ts +3 -6
- package/dist/configs/unocss.mjs +3 -3
- package/dist/configs/vue.cjs +51 -15
- package/dist/configs/vue.d.cts +3 -6
- package/dist/configs/vue.d.ts +3 -6
- package/dist/configs/vue.mjs +3 -3
- package/dist/configs/yaml.cjs +17 -11
- package/dist/configs/yaml.d.cts +3 -6
- package/dist/configs/yaml.d.ts +3 -6
- package/dist/configs/yaml.mjs +3 -3
- package/dist/custom-rules/utils.cjs +31 -0
- package/dist/custom-rules/utils.d.cts +6 -0
- package/dist/custom-rules/utils.d.ts +6 -0
- package/dist/custom-rules/utils.mjs +6 -0
- package/dist/globs.cjs +157 -0
- package/dist/globs.d.cts +28 -0
- package/dist/globs.d.ts +28 -0
- package/dist/globs.mjs +56 -0
- package/dist/index.cjs +1267 -839
- package/dist/index.d.cts +10 -44
- package/dist/index.d.ts +10 -44
- package/dist/index.mjs +106 -146
- package/dist/types-spTEGSaV.d.cts +632 -0
- package/dist/types-spTEGSaV.d.ts +632 -0
- package/package.json +69 -37
- package/dist/chunk-24KJPXII.mjs +0 -51
- package/dist/chunk-4HH6LYJ6.mjs +0 -25
- package/dist/chunk-AL47KNVD.mjs +0 -37
- package/dist/chunk-C5VMTRKT.mjs +0 -18
- package/dist/chunk-ERFDRAGW.mjs +0 -86
- package/dist/chunk-HLDEUDLN.mjs +0 -28
- package/dist/chunk-O4O6V7LI.mjs +0 -70
- package/dist/chunk-UBPIYSHC.mjs +0 -284
- package/dist/types-h9izbkUX.d.cts +0 -241
- package/dist/types-h9izbkUX.d.ts +0 -241
- package/dist/{chunk-FKAOMYGL.mjs → chunk-ME2OAMS3.mjs} +0 -0
- package/dist/{chunk-FOIFEV73.mjs → chunk-XBASVDU6.mjs} +6 -6
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createRule
|
|
3
|
+
} from "./chunk-WDSV2EFG.mjs";
|
|
4
|
+
import {
|
|
5
|
+
interop
|
|
6
|
+
} from "./chunk-4YBQZLPS.mjs";
|
|
7
|
+
import {
|
|
8
|
+
GLOB_TESTS
|
|
9
|
+
} from "./chunk-ATRL3UZP.mjs";
|
|
10
|
+
|
|
11
|
+
// src/custom-rules/no-only-tests/index.ts
|
|
12
|
+
var DEFAULT_OPTIONS = {
|
|
13
|
+
blocks: ["describe", "it", "test"],
|
|
14
|
+
focus: ["only"]
|
|
15
|
+
};
|
|
16
|
+
function getPath(node, path = []) {
|
|
17
|
+
if (node) {
|
|
18
|
+
const nodeName = node.name || node.property && node.property.name;
|
|
19
|
+
if (node.object) {
|
|
20
|
+
return getPath(node.object, [
|
|
21
|
+
nodeName,
|
|
22
|
+
...path
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
if (node.callee)
|
|
26
|
+
return getPath(node.callee, path);
|
|
27
|
+
return [nodeName, ...path];
|
|
28
|
+
}
|
|
29
|
+
return path;
|
|
30
|
+
}
|
|
31
|
+
var noOnlyTests = createRule({
|
|
32
|
+
name: "no-only-tests",
|
|
33
|
+
create: (context, [options]) => {
|
|
34
|
+
const {
|
|
35
|
+
blocks = DEFAULT_OPTIONS.blocks,
|
|
36
|
+
focus = DEFAULT_OPTIONS.focus
|
|
37
|
+
} = options;
|
|
38
|
+
const handler = {
|
|
39
|
+
Identifier(node) {
|
|
40
|
+
const parent = node.parent?.object;
|
|
41
|
+
if (!parent)
|
|
42
|
+
return;
|
|
43
|
+
if (!focus.includes(node.name))
|
|
44
|
+
return;
|
|
45
|
+
const callPath = getPath(node.parent).join(".");
|
|
46
|
+
const found = blocks.find((block) => {
|
|
47
|
+
if (block.endsWith("*"))
|
|
48
|
+
return callPath.startsWith(block.replace(/\*$/, ""));
|
|
49
|
+
return callPath.startsWith(`${block}.`);
|
|
50
|
+
});
|
|
51
|
+
if (found) {
|
|
52
|
+
context.report({
|
|
53
|
+
data: { block: callPath.split(".")[0], focus: node.name },
|
|
54
|
+
messageId: "notPermitted",
|
|
55
|
+
node
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
return handler;
|
|
61
|
+
},
|
|
62
|
+
defaultOptions: [{
|
|
63
|
+
blocks: ["describe", "it", "test"],
|
|
64
|
+
focus: ["only"]
|
|
65
|
+
}],
|
|
66
|
+
meta: {
|
|
67
|
+
docs: {
|
|
68
|
+
description: "disallow .only blocks in tests",
|
|
69
|
+
recommended: "recommended"
|
|
70
|
+
},
|
|
71
|
+
messages: {
|
|
72
|
+
notPermitted: "{{ block }}.{{ focus }} not permitted"
|
|
73
|
+
},
|
|
74
|
+
schema: [{
|
|
75
|
+
additionalProperties: false,
|
|
76
|
+
properties: {
|
|
77
|
+
blocks: {
|
|
78
|
+
items: {
|
|
79
|
+
type: "string"
|
|
80
|
+
},
|
|
81
|
+
type: "array",
|
|
82
|
+
uniqueItems: true
|
|
83
|
+
},
|
|
84
|
+
focus: {
|
|
85
|
+
items: {
|
|
86
|
+
type: "string"
|
|
87
|
+
},
|
|
88
|
+
type: "array",
|
|
89
|
+
uniqueItems: true
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
type: "object"
|
|
93
|
+
}],
|
|
94
|
+
type: "layout"
|
|
95
|
+
}
|
|
96
|
+
// i need to have this here, otherwise typechecking fails.
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
// src/configs/test.ts
|
|
100
|
+
async function test(options = {}) {
|
|
101
|
+
const {
|
|
102
|
+
editor = false,
|
|
103
|
+
files = GLOB_TESTS,
|
|
104
|
+
overrides = {}
|
|
105
|
+
} = options;
|
|
106
|
+
const [
|
|
107
|
+
pluginVitest
|
|
108
|
+
] = await Promise.all([
|
|
109
|
+
interop(import("eslint-plugin-vitest"))
|
|
110
|
+
]);
|
|
111
|
+
return [
|
|
112
|
+
{
|
|
113
|
+
name: "luxass:test:setup",
|
|
114
|
+
plugins: {
|
|
115
|
+
test: {
|
|
116
|
+
...pluginVitest,
|
|
117
|
+
rules: {
|
|
118
|
+
...pluginVitest.rules,
|
|
119
|
+
"no-only-tests": noOnlyTests
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
name: "luxass:test:rules",
|
|
126
|
+
files,
|
|
127
|
+
rules: {
|
|
128
|
+
"test/consistent-test-it": [
|
|
129
|
+
"error",
|
|
130
|
+
{ fn: "it", withinDescribe: "it" }
|
|
131
|
+
],
|
|
132
|
+
"test/no-identical-title": "error",
|
|
133
|
+
"test/no-only-tests": editor ? "off" : "error",
|
|
134
|
+
"test/prefer-hooks-in-order": "error",
|
|
135
|
+
"test/prefer-lowercase-title": "error",
|
|
136
|
+
...overrides
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export {
|
|
143
|
+
test
|
|
144
|
+
};
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
GLOB_SRC
|
|
3
|
-
} from "./chunk-R4NSLRAE.mjs";
|
|
4
|
-
import {
|
|
5
|
-
default as default2
|
|
6
|
-
} from "./chunk-C5VMTRKT.mjs";
|
|
7
1
|
import {
|
|
8
2
|
interop,
|
|
9
3
|
renameRules,
|
|
10
4
|
toArray
|
|
11
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4YBQZLPS.mjs";
|
|
6
|
+
import {
|
|
7
|
+
GLOB_SRC,
|
|
8
|
+
GLOB_SRC_EXT,
|
|
9
|
+
GLOB_TS,
|
|
10
|
+
GLOB_TSX
|
|
11
|
+
} from "./chunk-ATRL3UZP.mjs";
|
|
12
12
|
|
|
13
13
|
// src/configs/typescript.ts
|
|
14
14
|
import process from "node:process";
|
|
15
|
-
|
|
15
|
+
import pluginAntfu from "eslint-plugin-antfu";
|
|
16
|
+
async function typescript(options = {}) {
|
|
16
17
|
const {
|
|
17
|
-
|
|
18
|
+
exts = [],
|
|
18
19
|
overrides = {},
|
|
19
20
|
parserOptions = {}
|
|
20
21
|
} = options ?? {};
|
|
@@ -39,6 +40,11 @@ async function typescript(options) {
|
|
|
39
40
|
"ts/restrict-template-expressions": "error",
|
|
40
41
|
"ts/unbound-method": "error"
|
|
41
42
|
};
|
|
43
|
+
const files = options.files ?? [
|
|
44
|
+
GLOB_SRC,
|
|
45
|
+
...exts.map((ext) => `**/*.${ext}`)
|
|
46
|
+
];
|
|
47
|
+
const filesTypeAware = options.typeAwareFileS ?? [GLOB_TS, GLOB_TSX];
|
|
42
48
|
const tsconfigPath = options?.tsconfigPath ? toArray(options.tsconfigPath) : void 0;
|
|
43
49
|
const [
|
|
44
50
|
pluginTs,
|
|
@@ -52,16 +58,17 @@ async function typescript(options) {
|
|
|
52
58
|
// Install the plugins without globs, so they can be configured separately.
|
|
53
59
|
name: "luxass:typescript:setup",
|
|
54
60
|
plugins: {
|
|
55
|
-
antfu:
|
|
61
|
+
antfu: pluginAntfu,
|
|
56
62
|
ts: pluginTs
|
|
57
63
|
}
|
|
58
64
|
},
|
|
59
65
|
{
|
|
60
|
-
|
|
66
|
+
name: "luxass:typescript:rules",
|
|
67
|
+
files,
|
|
61
68
|
languageOptions: {
|
|
62
69
|
parser: parserTs,
|
|
63
70
|
parserOptions: {
|
|
64
|
-
extraFileExtensions:
|
|
71
|
+
extraFileExtensions: exts.map((ext) => `.${ext}`),
|
|
65
72
|
sourceType: "module",
|
|
66
73
|
...tsconfigPath ? {
|
|
67
74
|
project: tsconfigPath,
|
|
@@ -70,7 +77,6 @@ async function typescript(options) {
|
|
|
70
77
|
...parserOptions
|
|
71
78
|
}
|
|
72
79
|
},
|
|
73
|
-
name: "luxass:typescript:rules",
|
|
74
80
|
rules: {
|
|
75
81
|
...renameRules(
|
|
76
82
|
pluginTs.configs["eslint-recommended"].overrides[0].rules,
|
|
@@ -82,9 +88,6 @@ async function typescript(options) {
|
|
|
82
88
|
"@typescript-eslint/",
|
|
83
89
|
"ts/"
|
|
84
90
|
),
|
|
85
|
-
"antfu/generic-spacing": "error",
|
|
86
|
-
"antfu/named-tuple-spacing": "error",
|
|
87
|
-
"antfu/no-cjs-exports": "error",
|
|
88
91
|
"no-dupe-class-members": "off",
|
|
89
92
|
"no-invalid-this": "off",
|
|
90
93
|
"no-loss-of-precision": "off",
|
|
@@ -98,41 +101,34 @@ async function typescript(options) {
|
|
|
98
101
|
"ts/ban-types": ["error", {
|
|
99
102
|
extendDefaults: false,
|
|
100
103
|
types: {
|
|
101
|
-
|
|
104
|
+
BigInt: {
|
|
102
105
|
fixWith: "bigint",
|
|
103
106
|
message: "Use `bigint` instead."
|
|
104
107
|
},
|
|
105
|
-
|
|
108
|
+
Boolean: {
|
|
106
109
|
fixWith: "boolean",
|
|
107
110
|
message: "Use `boolean` instead."
|
|
108
111
|
},
|
|
109
|
-
|
|
110
|
-
|
|
112
|
+
Function: "Use a specific function type instead, like `() => void`.",
|
|
113
|
+
Number: {
|
|
111
114
|
fixWith: "number",
|
|
112
115
|
message: "Use `number` instead."
|
|
113
116
|
},
|
|
114
|
-
|
|
117
|
+
Object: {
|
|
115
118
|
fixWith: "Record<string, unknown>",
|
|
116
119
|
message: "The `Object` type is mostly the same as `unknown`. You probably want `Record<string, unknown>` instead. See https://github.com/typescript-eslint/typescript-eslint/pull/848"
|
|
117
120
|
},
|
|
118
|
-
|
|
121
|
+
String: {
|
|
119
122
|
fixWith: "string",
|
|
120
123
|
message: "Use `string` instead."
|
|
121
124
|
},
|
|
122
|
-
|
|
125
|
+
Symbol: {
|
|
123
126
|
fixWith: "symbol",
|
|
124
127
|
message: "Use `symbol` instead."
|
|
125
128
|
},
|
|
126
|
-
|
|
127
|
-
message: "Don't use the empty array type `[]`. It only allows empty arrays. Use `SomeType[]` instead."
|
|
128
|
-
},
|
|
129
|
-
"object": {
|
|
129
|
+
object: {
|
|
130
130
|
fixWith: "Record<string, unknown>",
|
|
131
131
|
message: "The `object` type is hard to use. Use `Record<string, unknown>` instead. See: https://github.com/typescript-eslint/typescript-eslint/pull/848"
|
|
132
|
-
},
|
|
133
|
-
"{}": {
|
|
134
|
-
fixWith: "Record<string, unknown>",
|
|
135
|
-
message: "The `{}` type is mostly the same as `unknown`. You probably want `Record<string, unknown>` instead."
|
|
136
132
|
}
|
|
137
133
|
}
|
|
138
134
|
}],
|
|
@@ -161,13 +157,20 @@ async function typescript(options) {
|
|
|
161
157
|
"ts/prefer-ts-expect-error": "error",
|
|
162
158
|
"ts/triple-slash-reference": "off",
|
|
163
159
|
"ts/unified-signatures": "off",
|
|
160
|
+
...overrides
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: "luxass:typescript:rules-type-aware",
|
|
165
|
+
files: filesTypeAware,
|
|
166
|
+
rules: {
|
|
164
167
|
...tsconfigPath ? typeAwareRules : {},
|
|
165
168
|
...overrides
|
|
166
169
|
}
|
|
167
170
|
},
|
|
168
171
|
{
|
|
169
|
-
files: ["**/*.d.ts"],
|
|
170
172
|
name: "luxass:typescript:dts-overrides",
|
|
173
|
+
files: ["**/*.d.ts"],
|
|
171
174
|
rules: {
|
|
172
175
|
"eslint-comments/no-unlimited-disable": "off",
|
|
173
176
|
"import/no-duplicates": "off",
|
|
@@ -176,15 +179,22 @@ async function typescript(options) {
|
|
|
176
179
|
}
|
|
177
180
|
},
|
|
178
181
|
{
|
|
179
|
-
files: ["**/*.{test,spec}.ts?(x)"],
|
|
180
182
|
name: "luxass:typescript:tests-overrides",
|
|
183
|
+
files: ["**/*.{test,spec}.ts?(x)"],
|
|
181
184
|
rules: {
|
|
182
185
|
"no-unused-expressions": "off"
|
|
183
186
|
}
|
|
184
187
|
},
|
|
185
188
|
{
|
|
186
|
-
|
|
189
|
+
name: "luxass:typescript:playground-overrides",
|
|
190
|
+
files: [`**/playground.${GLOB_SRC_EXT}`],
|
|
191
|
+
rules: {
|
|
192
|
+
"no-console": "off"
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
187
196
|
name: "luxass:typescript:javascript-overrides",
|
|
197
|
+
files: ["**/*.js", "**/*.cjs"],
|
|
188
198
|
rules: {
|
|
189
199
|
"ts/no-require-imports": "off",
|
|
190
200
|
"ts/no-var-requires": "off"
|
package/dist/configs/astro.cjs
CHANGED
|
@@ -36,9 +36,7 @@ module.exports = __toCommonJS(astro_exports);
|
|
|
36
36
|
|
|
37
37
|
// src/globs.ts
|
|
38
38
|
var GLOB_SRC_EXT = "?([cm])[jt]s?(x)";
|
|
39
|
-
var GLOB_SRC =
|
|
40
|
-
var GLOB_JSX_EXT = "[jt]sx";
|
|
41
|
-
var GLOB_JSX = `**/*.${GLOB_JSX_EXT}`;
|
|
39
|
+
var GLOB_SRC = `**/*.${GLOB_SRC_EXT}`;
|
|
42
40
|
var GLOB_MARKDOWN = "**/*.md";
|
|
43
41
|
var GLOB_ASTRO = "**/*.astro";
|
|
44
42
|
var GLOB_MARKDOWN_CODE = `${GLOB_MARKDOWN}/${GLOB_SRC}`;
|
|
@@ -49,11 +47,6 @@ var GLOB_TESTS = [
|
|
|
49
47
|
`**/*.bench.${GLOB_SRC_EXT}`,
|
|
50
48
|
`**/*.benchmark.${GLOB_SRC_EXT}`
|
|
51
49
|
];
|
|
52
|
-
var GLOB_NEXTJS_OG = [
|
|
53
|
-
`**/app/**/opengraph-image.${GLOB_JSX_EXT}`,
|
|
54
|
-
`**/app/**/twitter-image.${GLOB_JSX_EXT}`,
|
|
55
|
-
`**/app/**/route.${GLOB_JSX_EXT}`
|
|
56
|
-
];
|
|
57
50
|
var GLOB_NEXTJS_ROUTES = [
|
|
58
51
|
`**/app/**/page.${GLOB_SRC_EXT}`,
|
|
59
52
|
`**/app/**/layout.${GLOB_SRC_EXT}`,
|
|
@@ -78,14 +71,10 @@ async function interop(m) {
|
|
|
78
71
|
async function astro(options) {
|
|
79
72
|
const {
|
|
80
73
|
a11y = false,
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
files = [GLOB_ASTRO],
|
|
75
|
+
overrides = {},
|
|
76
|
+
typescript = true
|
|
83
77
|
} = options;
|
|
84
|
-
await interop([
|
|
85
|
-
"eslint-plugin-astro",
|
|
86
|
-
"astro-eslint-parser",
|
|
87
|
-
...options.a11y ? ["eslint-plugin-jsx-a11y"] : []
|
|
88
|
-
]);
|
|
89
78
|
const [
|
|
90
79
|
pluginAstro,
|
|
91
80
|
parserAstro,
|
|
@@ -93,7 +82,7 @@ async function astro(options) {
|
|
|
93
82
|
] = await Promise.all([
|
|
94
83
|
interop(import("eslint-plugin-astro")),
|
|
95
84
|
interop(import("astro-eslint-parser")),
|
|
96
|
-
...
|
|
85
|
+
...a11y ? [interop(import("eslint-plugin-jsx-a11y"))] : []
|
|
97
86
|
]);
|
|
98
87
|
return [
|
|
99
88
|
{
|
|
@@ -104,7 +93,8 @@ async function astro(options) {
|
|
|
104
93
|
}
|
|
105
94
|
},
|
|
106
95
|
{
|
|
107
|
-
|
|
96
|
+
name: "luxass:astro:rules",
|
|
97
|
+
files,
|
|
108
98
|
languageOptions: {
|
|
109
99
|
// @ts-expect-error hmmm
|
|
110
100
|
globals: {
|
|
@@ -113,21 +103,22 @@ async function astro(options) {
|
|
|
113
103
|
parser: parserAstro,
|
|
114
104
|
parserOptions: {
|
|
115
105
|
extraFileExtensions: [".astro"],
|
|
116
|
-
parser:
|
|
106
|
+
parser: typescript ? await interop(import("@typescript-eslint/parser")) : null,
|
|
117
107
|
sourceType: "module"
|
|
118
108
|
}
|
|
119
109
|
},
|
|
120
|
-
name: "luxass:astro:rules",
|
|
121
110
|
// @ts-expect-error hmmm
|
|
122
111
|
rules: {
|
|
123
112
|
"style/jsx-closing-tag-location": "off",
|
|
124
113
|
"style/jsx-indent": "off",
|
|
125
114
|
"style/jsx-one-expression-per-line": "off",
|
|
126
115
|
...pluginAstro.configs.all.rules,
|
|
116
|
+
"style/multiline-ternary": ["error", "never"],
|
|
127
117
|
...overrides
|
|
128
118
|
}
|
|
129
119
|
},
|
|
130
120
|
{
|
|
121
|
+
name: "luxass:astro:rules:scripts",
|
|
131
122
|
files: [
|
|
132
123
|
"**/*.astro/*.js",
|
|
133
124
|
"*.astro/*.js"
|
|
@@ -140,8 +131,7 @@ async function astro(options) {
|
|
|
140
131
|
parserOptions: {
|
|
141
132
|
sourceType: "module"
|
|
142
133
|
}
|
|
143
|
-
}
|
|
144
|
-
name: "luxass:astro:rules:scripts"
|
|
134
|
+
}
|
|
145
135
|
}
|
|
146
136
|
];
|
|
147
137
|
}
|
package/dist/configs/astro.d.cts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
export { A as AstroOptions, f as astro } from '../types-spTEGSaV.cjs';
|
|
2
2
|
import 'eslint-config-flat-gitignore';
|
|
3
|
-
import '@typescript-eslint/parser';
|
|
4
3
|
import '@antfu/eslint-define-config';
|
|
5
4
|
import '@eslint-types/jsdoc/types';
|
|
6
5
|
import '@eslint-types/typescript-eslint/types';
|
|
@@ -8,7 +7,5 @@ import '@eslint-types/unicorn/types';
|
|
|
8
7
|
import 'eslint-plugin-antfu';
|
|
9
8
|
import '@stylistic/eslint-plugin';
|
|
10
9
|
import 'eslint';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export { astro };
|
|
10
|
+
import '@typescript-eslint/parser';
|
|
11
|
+
import 'eslint-processor-vue-blocks';
|
package/dist/configs/astro.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
export { A as AstroOptions, f as astro } from '../types-spTEGSaV.js';
|
|
2
2
|
import 'eslint-config-flat-gitignore';
|
|
3
|
-
import '@typescript-eslint/parser';
|
|
4
3
|
import '@antfu/eslint-define-config';
|
|
5
4
|
import '@eslint-types/jsdoc/types';
|
|
6
5
|
import '@eslint-types/typescript-eslint/types';
|
|
@@ -8,7 +7,5 @@ import '@eslint-types/unicorn/types';
|
|
|
8
7
|
import 'eslint-plugin-antfu';
|
|
9
8
|
import '@stylistic/eslint-plugin';
|
|
10
9
|
import 'eslint';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export { astro };
|
|
10
|
+
import '@typescript-eslint/parser';
|
|
11
|
+
import 'eslint-processor-vue-blocks';
|
package/dist/configs/astro.mjs
CHANGED
|
@@ -33,17 +33,7 @@ __export(comments_exports, {
|
|
|
33
33
|
comments: () => comments
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(comments_exports);
|
|
36
|
-
|
|
37
|
-
// src/plugins.ts
|
|
38
|
-
var import_eslint_plugin_antfu = __toESM(require("eslint-plugin-antfu"), 1);
|
|
39
|
-
var import_eslint_plugin_eslint_comments = __toESM(require("eslint-plugin-eslint-comments"), 1);
|
|
40
|
-
var pluginImport = __toESM(require("eslint-plugin-i"), 1);
|
|
41
|
-
var import_eslint_plugin_n = __toESM(require("eslint-plugin-n"), 1);
|
|
42
|
-
var import_eslint_plugin_unicorn = __toESM(require("eslint-plugin-unicorn"), 1);
|
|
43
|
-
var import_eslint_plugin_unused_imports = __toESM(require("eslint-plugin-unused-imports"), 1);
|
|
44
|
-
var import_eslint_plugin_perfectionist = __toESM(require("eslint-plugin-perfectionist"), 1);
|
|
45
|
-
|
|
46
|
-
// src/configs/comments.ts
|
|
36
|
+
var import_eslint_plugin_eslint_comments = __toESM(require("@eslint-community/eslint-plugin-eslint-comments"), 1);
|
|
47
37
|
async function comments() {
|
|
48
38
|
return [
|
|
49
39
|
{
|
|
@@ -52,10 +42,17 @@ async function comments() {
|
|
|
52
42
|
"eslint-comments": import_eslint_plugin_eslint_comments.default
|
|
53
43
|
},
|
|
54
44
|
rules: {
|
|
45
|
+
// https://github.com/eslint-community/eslint-plugin-eslint-comments/blob/main/docs/rules/disable-enable-pair.md
|
|
46
|
+
"eslint-comments/disable-enable-pair": "error",
|
|
47
|
+
// https://github.com/eslint-community/eslint-plugin-eslint-comments/blob/main/docs/rules/no-aggregating-enable.md
|
|
55
48
|
"eslint-comments/no-aggregating-enable": "error",
|
|
49
|
+
// https://github.com/eslint-community/eslint-plugin-eslint-comments/blob/main/docs/rules/no-duplicate-disable.md
|
|
56
50
|
"eslint-comments/no-duplicate-disable": "error",
|
|
51
|
+
// https://github.com/eslint-community/eslint-plugin-eslint-comments/blob/main/docs/rules/no-unlimited-disable.md
|
|
57
52
|
"eslint-comments/no-unlimited-disable": "error",
|
|
58
|
-
|
|
53
|
+
// Deprecated in favor of official reportUnusedDisableDirectives
|
|
54
|
+
// https://github.com/eslint-community/eslint-plugin-eslint-comments/issues/133
|
|
55
|
+
"eslint-comments/no-unused-enable": "off"
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
58
|
];
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { k as FlatConfigItem } from '../types-spTEGSaV.cjs';
|
|
2
2
|
import 'eslint-config-flat-gitignore';
|
|
3
|
-
import '@typescript-eslint/parser';
|
|
4
3
|
import '@antfu/eslint-define-config';
|
|
5
4
|
import '@eslint-types/jsdoc/types';
|
|
6
5
|
import '@eslint-types/typescript-eslint/types';
|
|
@@ -8,6 +7,8 @@ import '@eslint-types/unicorn/types';
|
|
|
8
7
|
import 'eslint-plugin-antfu';
|
|
9
8
|
import '@stylistic/eslint-plugin';
|
|
10
9
|
import 'eslint';
|
|
10
|
+
import '@typescript-eslint/parser';
|
|
11
|
+
import 'eslint-processor-vue-blocks';
|
|
11
12
|
|
|
12
13
|
declare function comments(): Promise<FlatConfigItem[]>;
|
|
13
14
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { k as FlatConfigItem } from '../types-spTEGSaV.js';
|
|
2
2
|
import 'eslint-config-flat-gitignore';
|
|
3
|
-
import '@typescript-eslint/parser';
|
|
4
3
|
import '@antfu/eslint-define-config';
|
|
5
4
|
import '@eslint-types/jsdoc/types';
|
|
6
5
|
import '@eslint-types/typescript-eslint/types';
|
|
@@ -8,6 +7,8 @@ import '@eslint-types/unicorn/types';
|
|
|
8
7
|
import 'eslint-plugin-antfu';
|
|
9
8
|
import '@stylistic/eslint-plugin';
|
|
10
9
|
import 'eslint';
|
|
10
|
+
import '@typescript-eslint/parser';
|
|
11
|
+
import 'eslint-processor-vue-blocks';
|
|
11
12
|
|
|
12
13
|
declare function comments(): Promise<FlatConfigItem[]>;
|
|
13
14
|
|