@eslinted/core 0.9.0-rc.4 → 0.9.0-rc.5
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/boundary/input/parsers.d.ts +7 -0
- package/dist/boundary/input/parsers.d.ts.map +1 -0
- package/dist/boundary/input/parsers.js +2 -0
- package/dist/boundary/input/parsers.js.map +1 -0
- package/dist/boundary/input/plugins.d.ts +7 -0
- package/dist/boundary/input/plugins.d.ts.map +1 -0
- package/dist/boundary/input/plugins.js +2 -0
- package/dist/boundary/input/plugins.js.map +1 -0
- package/dist/boundary/input.d.ts +8 -0
- package/dist/boundary/input.d.ts.map +1 -0
- package/dist/boundary/input.js +2 -0
- package/dist/boundary/input.js.map +1 -0
- package/dist/boundary/output/IConfig.d.ts +19 -0
- package/dist/boundary/output/IConfig.d.ts.map +1 -0
- package/dist/boundary/output/IConfig.js +2 -0
- package/dist/boundary/output/IConfig.js.map +1 -0
- package/dist/boundary/output.d.ts +3 -0
- package/dist/boundary/output.d.ts.map +1 -0
- package/dist/boundary/output.js +2 -0
- package/dist/boundary/output.js.map +1 -0
- package/dist/factory/{Factory.d.ts → factory.d.ts} +1 -1
- package/dist/factory/{Factory.js → factory.js} +1 -1
- package/dist/factory/files/Files.d.ts.map +1 -1
- package/dist/factory/files/Files.js +9 -4
- package/dist/factory/files/Files.js.map +1 -1
- package/dist/factory/options/Options.d.ts +1 -1
- package/dist/factory/options/Options.d.ts.map +1 -1
- package/dist/factory/options/Options.js +1 -1
- package/dist/factory/options/Options.js.map +1 -1
- package/dist/factory/options/option/Option.d.ts +6 -20
- package/dist/factory/options/option/Option.d.ts.map +1 -1
- package/dist/factory/options/option/Option.js +33 -23
- package/dist/factory/options/option/Option.js.map +1 -1
- package/dist/factory/options/option/html/index.d.ts.map +1 -1
- package/dist/factory/options/option/html/index.js +7 -2
- package/dist/factory/options/option/html/index.js.map +1 -1
- package/dist/factory/options/option/js/index.d.ts.map +1 -1
- package/dist/factory/options/option/js/index.js +9 -4
- package/dist/factory/options/option/js/index.js.map +1 -1
- package/dist/factory/options/option/json/index.d.ts.map +1 -1
- package/dist/factory/options/option/json/index.js +7 -2
- package/dist/factory/options/option/json/index.js.map +1 -1
- package/dist/factory/options/option/jsonc/index.d.ts.map +1 -1
- package/dist/factory/options/option/jsonc/index.js +7 -2
- package/dist/factory/options/option/jsonc/index.js.map +1 -1
- package/dist/factory/options/option/svelte/index.d.ts.map +1 -1
- package/dist/factory/options/option/svelte/index.js +16 -11
- package/dist/factory/options/option/svelte/index.js.map +1 -1
- package/dist/factory/options/option/ts/index.d.ts.map +1 -1
- package/dist/factory/options/option/ts/index.js +14 -9
- package/dist/factory/options/option/ts/index.js.map +1 -1
- package/dist/factory/options/option/yml/index.d.ts.map +1 -1
- package/dist/factory/options/option/yml/index.js +7 -2
- package/dist/factory/options/option/yml/index.js.map +1 -1
- package/dist/factory/ruleset/Ruleset.d.ts.map +1 -1
- package/dist/factory/ruleset/Ruleset.js +31 -11
- package/dist/factory/ruleset/Ruleset.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/boundary/input/{parsers/parsers.ts → parsers.ts} +2 -2
- package/src/boundary/input/{plugins/plugins.ts → plugins.ts} +2 -2
- package/src/boundary/{input/input.ts → input.ts} +2 -2
- package/src/boundary/output.ts +3 -0
- package/src/factory/factory.ts +1 -1
- package/src/factory/files/Files.ts +12 -4
- package/src/factory/options/option/Option.ts +69 -49
- package/src/factory/options/option/html/index.ts +10 -2
- package/src/factory/options/option/js/index.ts +12 -4
- package/src/factory/options/option/json/index.ts +10 -2
- package/src/factory/options/option/jsonc/index.ts +10 -2
- package/src/factory/options/option/svelte/index.ts +19 -11
- package/src/factory/options/option/ts/index.ts +17 -9
- package/src/factory/options/option/yml/index.ts +10 -2
- package/src/factory/ruleset/Ruleset.ts +46 -14
- package/src/index.ts +7 -6
- package/dist/boundary/scopes/scopes.d.ts +0 -4
- package/dist/boundary/scopes/scopes.d.ts.map +0 -1
- package/dist/boundary/scopes/scopes.js +0 -11
- package/dist/boundary/scopes/scopes.js.map +0 -1
- package/dist/factory/_factory.d.ts +0 -5
- package/dist/factory/_factory.d.ts.map +0 -1
- package/dist/factory/_factory.js +0 -5
- package/dist/factory/_factory.js.map +0 -1
- package/src/boundary/boundary.ts +0 -12
- package/src/boundary/output/output.ts +0 -3
- /package/dist/factory/{Factory.d.ts.map → factory.d.ts.map} +0 -0
- /package/dist/factory/{Factory.js.map → factory.js.map} +0 -0
- /package/src/boundary/output/{config/IConfig.ts → IConfig.ts} +0 -0
- /package/src/boundary/output/{config/interface → interface}/option/IOption.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/option/language/IOLanguage.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/option/language/ecma/IOLanguageEcma.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/option/language/globals/IOLanguageGlobals.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/option/language/source/IOLanguageSource.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/option/linter/IOLinter.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/option/plugins/IOPlugins.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/option/processor/IOProcessor.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/rules/IRule.d.ts +0 -0
- /package/src/boundary/output/{config/interface → interface}/rules/state/RuleSeverity.d.ts +0 -0
- /package/src/factory/options/{Options.ts → options.ts} +0 -0
@@ -6,23 +6,43 @@ export default class Ruleset {
|
|
6
6
|
overrides = null;
|
7
7
|
constructor(scope, ...ruleset) {
|
8
8
|
this.scope = scope;
|
9
|
-
|
9
|
+
try {
|
10
|
+
this.ruleset = [...ruleset];
|
11
|
+
}
|
12
|
+
catch (e) {
|
13
|
+
throw new Error(`linted.factory.Ruleset`, { cause: e });
|
14
|
+
}
|
10
15
|
}
|
11
16
|
get id() {
|
12
|
-
|
13
|
-
|
17
|
+
try {
|
18
|
+
const { scope } = this;
|
19
|
+
return scope;
|
20
|
+
}
|
21
|
+
catch (e) {
|
22
|
+
throw new Error(`linted.factory.Ruleset: id`, { cause: e });
|
23
|
+
}
|
14
24
|
}
|
15
25
|
get records() {
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
26
|
+
try {
|
27
|
+
const { ruleset, overrides } = this;
|
28
|
+
return [
|
29
|
+
...ruleset.map(rules => [rules.id, rules.rules]),
|
30
|
+
...overrides === null ? [] : [[overrides.id, overrides.rules]],
|
31
|
+
];
|
32
|
+
}
|
33
|
+
catch (e) {
|
34
|
+
throw new Error(`linted.factory.Ruleset: records`, { cause: e });
|
35
|
+
}
|
21
36
|
}
|
22
37
|
override(overrides) {
|
23
|
-
|
24
|
-
|
25
|
-
|
38
|
+
try {
|
39
|
+
if (typeof overrides !== "undefined")
|
40
|
+
this.overrides = new Rule("override", overrides);
|
41
|
+
return this;
|
42
|
+
}
|
43
|
+
catch (e) {
|
44
|
+
throw new Error(`linted.factory.Ruleset: override`, { cause: e });
|
45
|
+
}
|
26
46
|
}
|
27
47
|
}
|
28
48
|
//# sourceMappingURL=Ruleset.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Ruleset.js","sourceRoot":"","sources":["../../../src/factory/ruleset/Ruleset.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,MAAM,CAAC,OAAO,OAAO,OAAO;IAKP;IAJH,OAAO,CAAkB;IAClC,SAAS,GAAe,IAAI,CAAC;IAEpC,YACmB,KAAoB,EACrC,GAAG,OAAwB;QADV,UAAK,GAAL,KAAK,CAAe;QAGrC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"Ruleset.js","sourceRoot":"","sources":["../../../src/factory/ruleset/Ruleset.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAElC,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,MAAM,CAAC,OAAO,OAAO,OAAO;IAKP;IAJH,OAAO,CAAkB;IAClC,SAAS,GAAe,IAAI,CAAC;IAEpC,YACmB,KAAoB,EACrC,GAAG,OAAwB;QADV,UAAK,GAAL,KAAK,CAAe;QAGrC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,wBAAwB,EACxB,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAW,EAAE;QACX,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAEvB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,4BAA4B,EAC5B,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAW,OAAO;QAChB,IAAI,CAAC;YACH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAEpC,OAAO;gBACL,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAU,CAAC;gBACzD,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,CAAU,CAAU;aACjF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,iCAAiC,EACjC,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,SAA4B;QAC1C,IAAI,CAAC;YACH,IAAI,OAAO,SAAS,KAAK,WAAW;gBAClC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CACvB,UAAU,EACV,SAAS,CACV,CAAC;YAEJ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,kCAAkC,EAClC,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
import { type Scope } from "./scopes/scopes.js";
|
2
|
-
import type
|
2
|
+
import type Output from "./boundary/output.js";
|
3
|
+
import type Input from "./boundary/input.js";
|
3
4
|
import { Ruleset, Rule } from "./factory/factory.js";
|
4
|
-
export type { Scope,
|
5
|
+
export type { Scope, Output };
|
5
6
|
export { Ruleset, Rule };
|
6
|
-
export default function (plugins:
|
7
|
+
export default function (plugins: Input.Plugins, parsers: Input.Parsers, base: Record<Scope, string[]>, includes: Particord<Scope, string[]>, rulesets: {
|
7
8
|
[S in Scope]: Ruleset<S>;
|
8
|
-
}, overrides: Particord<Scope, IRule>):
|
9
|
+
}, overrides: Particord<Scope, IRule>): Output[];
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAe,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAe,EAAE,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAGL,OAAO,EACP,IAAI,EACL,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACzB,MAAM,CAAC,OAAO,WACZ,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAC7B,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EACpC,QAAQ,EAAE;KAAG,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;CAAE,EACtC,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,GACjC,MAAM,EAAE,CA0FV"}
|
package/dist/index.js
CHANGED
@@ -45,7 +45,7 @@ export default function (plugins, parsers, base, includes, rulesets, overrides)
|
|
45
45
|
.flat();
|
46
46
|
}
|
47
47
|
catch (e) {
|
48
|
-
throw new Error(`linted
|
48
|
+
throw new Error(`linted.main`, { cause: e });
|
49
49
|
}
|
50
50
|
}
|
51
51
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAc,MAAM,oBAAoB,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import type { Scope } from "
|
2
|
-
import type { Options } from "
|
1
|
+
import type { Scope } from "../../scopes/scopes.js";
|
2
|
+
import type { Options } from "../../factory/factory.js";
|
3
3
|
|
4
4
|
type Parsers = {
|
5
5
|
readonly [S in Scope]: ConstructorParameters<typeof Options[S]>[2] extends readonly [unknown, ...unknown[]]
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import type { Scope } from "
|
2
|
-
import type { Options } from "
|
1
|
+
import type { Scope } from "../../scopes/scopes.js";
|
2
|
+
import type { Options } from "../../factory/factory.js";
|
3
3
|
|
4
4
|
type Plugins = {
|
5
5
|
readonly [S in Scope]: InstanceType<typeof Options[S]>["plugins"];
|
package/src/factory/factory.ts
CHANGED
@@ -7,9 +7,17 @@ export default class Files {
|
|
7
7
|
) {}
|
8
8
|
|
9
9
|
public files(scope: Scope): readonly string[] {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
try {
|
11
|
+
return [
|
12
|
+
...this.base[scope],
|
13
|
+
...this.includes[scope] ?? [],
|
14
|
+
];
|
15
|
+
}
|
16
|
+
catch (e) {
|
17
|
+
throw new Error(
|
18
|
+
`linted.factory.Files/scope:${scope}`,
|
19
|
+
{ cause: e },
|
20
|
+
);
|
21
|
+
}
|
14
22
|
}
|
15
23
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { Scope } from "../../../scopes/scopes.js";
|
2
|
-
import type Boundary from "../../../boundary/boundary.js";
|
3
2
|
import type { Ruleset } from "../../factory.js";
|
3
|
+
import type Output from "../../../boundary/output.js";
|
4
4
|
|
5
5
|
export default abstract class Option<
|
6
6
|
S extends Scope,
|
@@ -11,13 +11,17 @@ export default abstract class Option<
|
|
11
11
|
GlobalTypes extends string = never,
|
12
12
|
Processor extends object = never,
|
13
13
|
> {
|
14
|
-
|
14
|
+
private readonly linterOptions = {
|
15
15
|
noInlineConfig: true,
|
16
16
|
reportUnusedDisableDirectives: "error",
|
17
17
|
} as const;
|
18
18
|
|
19
19
|
public abstract readonly scope: literalful<S>;
|
20
|
-
public abstract readonly processor:
|
20
|
+
public abstract readonly processor: Interface<Processor> extends never
|
21
|
+
? object
|
22
|
+
: Interface<Processor> extends Readonly<Record<"processor", string>>
|
23
|
+
? Interface<Processor>
|
24
|
+
: object;
|
21
25
|
|
22
26
|
constructor(
|
23
27
|
public readonly files: readonly string[],
|
@@ -26,62 +30,78 @@ export default abstract class Option<
|
|
26
30
|
public readonly parser: Tuple<unknown, ParserCount>,
|
27
31
|
) {}
|
28
32
|
|
29
|
-
public get configs():
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
public get configs(): Output[] {
|
34
|
+
try {
|
35
|
+
const {
|
36
|
+
scope,
|
37
|
+
ruleset,
|
38
|
+
files,
|
39
|
+
option,
|
40
|
+
} = this;
|
36
41
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
if (ruleset.id !== scope)
|
43
|
+
throw new TypeError(
|
44
|
+
`Option and Ruleset scope mismatch`,
|
45
|
+
{ cause: { option: scope, ruleset: ruleset.id } },
|
46
|
+
);
|
47
|
+
else if (files.length < 1)
|
48
|
+
return [];
|
49
|
+
else {
|
50
|
+
const baseName = `scope:${scope}/rule:${ruleset.id}` as const;
|
46
51
|
|
47
|
-
|
48
|
-
|
49
|
-
|
52
|
+
return ruleset.records.map(
|
53
|
+
([ruleId, rules]) => {
|
54
|
+
const name = `${baseName}+${ruleId}` as const;
|
50
55
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
56
|
+
return {
|
57
|
+
name,
|
58
|
+
files,
|
59
|
+
rules,
|
60
|
+
...option,
|
61
|
+
};
|
62
|
+
},
|
63
|
+
);
|
64
|
+
}
|
65
|
+
}
|
66
|
+
catch (e) {
|
67
|
+
throw new Error(
|
68
|
+
`linted.factory.Option/scope:${this.scope}: configs`,
|
69
|
+
{ cause: e },
|
58
70
|
);
|
59
71
|
}
|
60
72
|
}
|
61
73
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
74
|
+
private get option() {
|
75
|
+
try {
|
76
|
+
const {
|
77
|
+
plugins,
|
78
|
+
linterOptions,
|
79
|
+
languageOptions,
|
80
|
+
processor,
|
81
|
+
} = this;
|
69
82
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
83
|
+
return {
|
84
|
+
linterOptions,
|
85
|
+
languageOptions,
|
86
|
+
plugins,
|
87
|
+
...processor,
|
88
|
+
} satisfies IOption<
|
89
|
+
PluginId,
|
90
|
+
IsEcma,
|
91
|
+
ParserOptions,
|
92
|
+
GlobalTypes,
|
93
|
+
Processor
|
94
|
+
>;
|
95
|
+
}
|
96
|
+
catch (e) {
|
97
|
+
throw new Error(
|
98
|
+
`linted.factory.Option/scope:${this.scope}: option`,
|
99
|
+
{ cause: e },
|
100
|
+
);
|
101
|
+
}
|
82
102
|
}
|
83
103
|
|
84
|
-
|
104
|
+
protected abstract get languageOptions(): IOLanguage<
|
85
105
|
IsEcma,
|
86
106
|
ParserOptions,
|
87
107
|
GlobalTypes
|
@@ -11,8 +11,16 @@ export default class HtmlOption extends Option<
|
|
11
11
|
public readonly processor = {} as const;
|
12
12
|
|
13
13
|
public get languageOptions() {
|
14
|
-
|
14
|
+
try {
|
15
|
+
const [parser] = this.parser;
|
15
16
|
|
16
|
-
|
17
|
+
return { parser } as const;
|
18
|
+
}
|
19
|
+
catch (e) {
|
20
|
+
throw new Error(
|
21
|
+
`linted.factory.options.html: languageOptions`,
|
22
|
+
{ cause: e },
|
23
|
+
);
|
24
|
+
}
|
17
25
|
}
|
18
26
|
}
|
@@ -5,9 +5,17 @@ export default class JsOption extends Option<"js", "@stylistic"> {
|
|
5
5
|
public readonly processor = {};
|
6
6
|
|
7
7
|
public get languageOptions() {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
try {
|
9
|
+
return {
|
10
|
+
ecmaVersion: "latest",
|
11
|
+
sourceType: "module",
|
12
|
+
} as const;
|
13
|
+
}
|
14
|
+
catch (e) {
|
15
|
+
throw new Error(
|
16
|
+
`linted.factory.options.js: languageOptions`,
|
17
|
+
{ cause: e },
|
18
|
+
);
|
19
|
+
}
|
12
20
|
}
|
13
21
|
}
|
@@ -11,8 +11,16 @@ export default class JsonOption extends Option<
|
|
11
11
|
public readonly processor = {} as const;
|
12
12
|
|
13
13
|
public get languageOptions() {
|
14
|
-
|
14
|
+
try {
|
15
|
+
const [parser] = this.parser;
|
15
16
|
|
16
|
-
|
17
|
+
return { parser } as const;
|
18
|
+
}
|
19
|
+
catch (e) {
|
20
|
+
throw new Error(
|
21
|
+
`linted.factory.options.json: languageOptions`,
|
22
|
+
{ cause: e },
|
23
|
+
);
|
24
|
+
}
|
17
25
|
}
|
18
26
|
}
|
@@ -11,8 +11,16 @@ export default class JsoncOption extends Option<
|
|
11
11
|
public readonly processor = {} as const;
|
12
12
|
|
13
13
|
public get languageOptions() {
|
14
|
-
|
14
|
+
try {
|
15
|
+
const [parser] = this.parser;
|
15
16
|
|
16
|
-
|
17
|
+
return { parser } as const;
|
18
|
+
}
|
19
|
+
catch (e) {
|
20
|
+
throw new Error(
|
21
|
+
`linted.factory.options.jsonc: languageOptions`,
|
22
|
+
{ cause: e },
|
23
|
+
);
|
24
|
+
}
|
17
25
|
}
|
18
26
|
}
|
@@ -16,19 +16,27 @@ export default class SvelteOption extends Option<
|
|
16
16
|
public readonly processor = { processor: "svelte/svelte" } as const;
|
17
17
|
|
18
18
|
public get languageOptions() {
|
19
|
-
|
19
|
+
try {
|
20
|
+
const [parser, tsParser] = this.parser;
|
20
21
|
|
21
|
-
|
22
|
-
ecmaVersion: "latest",
|
23
|
-
sourceType: "module",
|
24
|
-
parser,
|
25
|
-
parserOptions: {
|
22
|
+
return {
|
26
23
|
ecmaVersion: "latest",
|
27
24
|
sourceType: "module",
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
25
|
+
parser,
|
26
|
+
parserOptions: {
|
27
|
+
ecmaVersion: "latest",
|
28
|
+
sourceType: "module",
|
29
|
+
project: "tsconfig.json",
|
30
|
+
extraFileExtensions: [".svelte"] as const,
|
31
|
+
parser: tsParser,
|
32
|
+
},
|
33
|
+
} as const;
|
34
|
+
}
|
35
|
+
catch (e) {
|
36
|
+
throw new Error(
|
37
|
+
`linted.factory.options.svelte: languageOptions`,
|
38
|
+
{ cause: e },
|
39
|
+
);
|
40
|
+
}
|
33
41
|
}
|
34
42
|
}
|
@@ -13,17 +13,25 @@ export default class TsOption extends Option<
|
|
13
13
|
public readonly processor = {} as const;
|
14
14
|
|
15
15
|
public get languageOptions() {
|
16
|
-
|
16
|
+
try {
|
17
|
+
const [parser] = this.parser;
|
17
18
|
|
18
|
-
|
19
|
-
ecmaVersion: "latest",
|
20
|
-
sourceType: "module",
|
21
|
-
parser,
|
22
|
-
parserOptions: {
|
19
|
+
return {
|
23
20
|
ecmaVersion: "latest",
|
24
21
|
sourceType: "module",
|
25
|
-
|
26
|
-
|
27
|
-
|
22
|
+
parser,
|
23
|
+
parserOptions: {
|
24
|
+
ecmaVersion: "latest",
|
25
|
+
sourceType: "module",
|
26
|
+
project: "tsconfig.json",
|
27
|
+
},
|
28
|
+
} as const;
|
29
|
+
}
|
30
|
+
catch (e) {
|
31
|
+
throw new Error(
|
32
|
+
`linted.factory.options.ts: languageOptions`,
|
33
|
+
{ cause: e },
|
34
|
+
);
|
35
|
+
}
|
28
36
|
}
|
29
37
|
}
|
@@ -11,8 +11,16 @@ export default class YmlOption extends Option<
|
|
11
11
|
public readonly processor = {} as const;
|
12
12
|
|
13
13
|
public get languageOptions() {
|
14
|
-
|
14
|
+
try {
|
15
|
+
const [parser] = this.parser;
|
15
16
|
|
16
|
-
|
17
|
+
return { parser } as const;
|
18
|
+
}
|
19
|
+
catch (e) {
|
20
|
+
throw new Error(
|
21
|
+
`linted.factory.options.yml: languageOptions`,
|
22
|
+
{ cause: e },
|
23
|
+
);
|
24
|
+
}
|
17
25
|
}
|
18
26
|
}
|
@@ -10,31 +10,63 @@ export default class Ruleset<S extends Scope> {
|
|
10
10
|
private readonly scope: literalful<S>,
|
11
11
|
...ruleset: readonly Rule[]
|
12
12
|
) {
|
13
|
-
|
13
|
+
try {
|
14
|
+
this.ruleset = [...ruleset];
|
15
|
+
}
|
16
|
+
catch (e) {
|
17
|
+
throw new Error(
|
18
|
+
`linted.factory.Ruleset`,
|
19
|
+
{ cause: e },
|
20
|
+
);
|
21
|
+
}
|
14
22
|
}
|
15
23
|
|
16
24
|
public get id() {
|
17
|
-
|
25
|
+
try {
|
26
|
+
const { scope } = this;
|
18
27
|
|
19
|
-
|
28
|
+
return scope;
|
29
|
+
}
|
30
|
+
catch (e) {
|
31
|
+
throw new Error(
|
32
|
+
`linted.factory.Ruleset: id`,
|
33
|
+
{ cause: e },
|
34
|
+
);
|
35
|
+
}
|
20
36
|
}
|
21
37
|
|
22
38
|
public get records() {
|
23
|
-
|
39
|
+
try {
|
40
|
+
const { ruleset, overrides } = this;
|
24
41
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
42
|
+
return [
|
43
|
+
...ruleset.map(rules => [rules.id, rules.rules] as const),
|
44
|
+
...overrides === null ? [] : [[overrides.id, overrides.rules] as const] as const,
|
45
|
+
];
|
46
|
+
}
|
47
|
+
catch (e) {
|
48
|
+
throw new Error(
|
49
|
+
`linted.factory.Ruleset: records`,
|
50
|
+
{ cause: e },
|
51
|
+
);
|
52
|
+
}
|
29
53
|
}
|
30
54
|
|
31
55
|
public override(overrides: undefined | IRule) {
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
56
|
+
try {
|
57
|
+
if (typeof overrides !== "undefined")
|
58
|
+
this.overrides = new Rule(
|
59
|
+
"override",
|
60
|
+
overrides,
|
61
|
+
);
|
37
62
|
|
38
|
-
|
63
|
+
return this;
|
64
|
+
}
|
65
|
+
catch (e) {
|
66
|
+
throw new Error(
|
67
|
+
`linted.factory.Ruleset: override`,
|
68
|
+
{ cause: e },
|
69
|
+
);
|
70
|
+
}
|
39
71
|
}
|
40
72
|
}
|
package/src/index.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import scopes, { type Scope } from "./scopes/scopes.js";
|
2
|
-
import type
|
2
|
+
import type Output from "./boundary/output.js";
|
3
|
+
import type Input from "./boundary/input.js";
|
3
4
|
import {
|
4
5
|
Options,
|
5
6
|
Files,
|
@@ -7,16 +8,16 @@ import {
|
|
7
8
|
Rule,
|
8
9
|
} from "./factory/factory.js";
|
9
10
|
|
10
|
-
export type { Scope,
|
11
|
+
export type { Scope, Output };
|
11
12
|
export { Ruleset, Rule };
|
12
13
|
export default function (
|
13
|
-
plugins:
|
14
|
-
parsers:
|
14
|
+
plugins: Input.Plugins,
|
15
|
+
parsers: Input.Parsers,
|
15
16
|
base: Record<Scope, string[]>,
|
16
17
|
includes: Particord<Scope, string[]>,
|
17
18
|
rulesets: { [S in Scope]: Ruleset<S> },
|
18
19
|
overrides: Particord<Scope, IRule>,
|
19
|
-
):
|
20
|
+
): Output[] {
|
20
21
|
try {
|
21
22
|
const files = new Files(
|
22
23
|
base,
|
@@ -102,7 +103,7 @@ export default function (
|
|
102
103
|
}
|
103
104
|
catch (e) {
|
104
105
|
throw new Error(
|
105
|
-
`linted
|
106
|
+
`linted.main`,
|
106
107
|
{ cause: e },
|
107
108
|
);
|
108
109
|
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../../src/boundary/scopes/scopes.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM,iEAQF,CAAC;AAEX,eAAe,MAAM,CAAC;AACtB,MAAM,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../../src/boundary/scopes/scopes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACb,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;CACG,CAAC;AAEX,eAAe,MAAM,CAAC"}
|