@useinsider/eslint-config 1.12.2 → 1.13.0-beta.2
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/base.d.ts +1 -1
- package/dist/chunk-CKQMccvm.cjs +28 -0
- package/dist/config-ByQJiSMj.cjs +9 -0
- package/dist/config-ByQJiSMj.cjs.map +1 -0
- package/dist/config-Css2Pu_R.js +9 -0
- package/dist/config-Css2Pu_R.js.map +1 -0
- package/dist/configs/javascript/index.d.ts +8 -1
- package/dist/configs/strict/index.d.ts +15 -1
- package/dist/configs/typescript/index.d.ts +1 -2
- package/dist/configs/typescript-dom/index.d.ts +1195 -1
- package/dist/configs/vue2/index.d.ts +1206 -1
- package/dist/configs/vue2-typescript/index.d.ts +1 -1
- package/dist/configs/vue3/index.d.ts +1206 -1
- package/dist/configs/vue3-typescript/index.d.ts +1 -1
- package/dist/javascript-BTduhgPC.cjs +16 -0
- package/dist/javascript-BTduhgPC.cjs.map +1 -0
- package/dist/javascript-DrnVnn8x.js +13 -0
- package/dist/javascript-DrnVnn8x.js.map +1 -0
- package/dist/javascript-dom-BGO7V06H.cjs +11 -0
- package/dist/javascript-dom-BGO7V06H.cjs.map +1 -0
- package/dist/javascript-dom-DUniYlu6.js +9 -0
- package/dist/javascript-dom-DUniYlu6.js.map +1 -0
- package/dist/javascript-node-CFSgAg1n.cjs +11 -0
- package/dist/javascript-node-CFSgAg1n.cjs.map +1 -0
- package/dist/javascript-node-CcgaOykE.js +9 -0
- package/dist/javascript-node-CcgaOykE.js.map +1 -0
- package/dist/jest-B0jgh-Ns.js +16 -0
- package/dist/jest-B0jgh-Ns.js.map +1 -0
- package/dist/jest-Ct_2c2e5.cjs +18 -0
- package/dist/jest-Ct_2c2e5.cjs.map +1 -0
- package/dist/jsdoc-based-ts-B40HFdNC.js +6 -0
- package/dist/jsdoc-based-ts-B40HFdNC.js.map +1 -0
- package/dist/jsdoc-based-ts-De6bAjFn.cjs +6 -0
- package/dist/jsdoc-based-ts-De6bAjFn.cjs.map +1 -0
- package/dist/main.cjs +139 -167
- package/dist/main.cjs.map +1 -1
- package/dist/main.js +130 -164
- package/dist/main.js.map +1 -1
- package/dist/merge-9BZzhd4u.cjs +15 -0
- package/dist/merge-9BZzhd4u.cjs.map +1 -0
- package/dist/merge-DEya5rmo.js +9 -0
- package/dist/merge-DEya5rmo.js.map +1 -0
- package/dist/mergeAllConfig-B2TWh9bP.cjs +14 -0
- package/dist/mergeAllConfig-B2TWh9bP.cjs.map +1 -0
- package/dist/mergeAllConfig-BbXVeKTg.js +9 -0
- package/dist/mergeAllConfig-BbXVeKTg.js.map +1 -0
- package/dist/removePluginsFromConfigs-BvvgY3b5.cjs +66 -0
- package/dist/removePluginsFromConfigs-BvvgY3b5.cjs.map +1 -0
- package/dist/removePluginsFromConfigs-DXGEhx1r.js +55 -0
- package/dist/removePluginsFromConfigs-DXGEhx1r.js.map +1 -0
- package/dist/strict-BfeS2xp_.js +18 -0
- package/dist/strict-BfeS2xp_.js.map +1 -0
- package/dist/strict-TbDHFSQX.cjs +19 -0
- package/dist/strict-TbDHFSQX.cjs.map +1 -0
- package/dist/stylistic-BD98baD9.cjs +489 -0
- package/dist/stylistic-BD98baD9.cjs.map +1 -0
- package/dist/stylistic-CVYJnZ8f.js +451 -0
- package/dist/stylistic-CVYJnZ8f.js.map +1 -0
- package/dist/typescript-0_O11nWX.cjs +34 -0
- package/dist/typescript-0_O11nWX.cjs.map +1 -0
- package/dist/typescript-CQ_Hr2QM.js +29 -0
- package/dist/typescript-CQ_Hr2QM.js.map +1 -0
- package/dist/typescript-dom-970fDiUU.cjs +14 -0
- package/dist/typescript-dom-970fDiUU.cjs.map +1 -0
- package/dist/typescript-dom-Bv_Zz0xP.js +12 -0
- package/dist/typescript-dom-Bv_Zz0xP.js.map +1 -0
- package/dist/typescript-node-D1A44bTs.js +9 -0
- package/dist/typescript-node-D1A44bTs.js.map +1 -0
- package/dist/typescript-node-D9_lMhx2.cjs +11 -0
- package/dist/typescript-node-D9_lMhx2.cjs.map +1 -0
- package/dist/utils/mergeAllConfig.d.ts +1 -1
- package/dist/utils/silenceRules.d.ts +1 -1
- package/dist/vue-By1Xn7IP.js +210 -0
- package/dist/vue-By1Xn7IP.js.map +1 -0
- package/dist/vue-uaPZkygC.cjs +215 -0
- package/dist/vue-uaPZkygC.cjs.map +1 -0
- package/dist/vue2-8ymY78UQ.js +24 -0
- package/dist/vue2-8ymY78UQ.js.map +1 -0
- package/dist/vue2-C94Kq0T6.cjs +30 -0
- package/dist/vue2-C94Kq0T6.cjs.map +1 -0
- package/dist/vue2-Xpr87v0K.cjs +24 -0
- package/dist/vue2-Xpr87v0K.cjs.map +1 -0
- package/dist/vue2-oH2qFl6d.js +13 -0
- package/dist/vue2-oH2qFl6d.js.map +1 -0
- package/dist/vue2-typescript-B_jQOM2b.cjs +58 -0
- package/dist/vue2-typescript-B_jQOM2b.cjs.map +1 -0
- package/dist/vue2-typescript-D0PJDNVJ.js +50 -0
- package/dist/vue2-typescript-D0PJDNVJ.js.map +1 -0
- package/dist/vue3-BJZAtjCx.cjs +30 -0
- package/dist/vue3-BJZAtjCx.cjs.map +1 -0
- package/dist/vue3-DvAMqq2z.js +24 -0
- package/dist/vue3-DvAMqq2z.js.map +1 -0
- package/dist/vue3-typescript-B-MIQF7E.js +40 -0
- package/dist/vue3-typescript-B-MIQF7E.js.map +1 -0
- package/dist/vue3-typescript-DAo2WlD3.cjs +48 -0
- package/dist/vue3-typescript-DAo2WlD3.cjs.map +1 -0
- package/package.json +32 -33
- package/dist/index-2o2VBvVN.cjs +0 -17
- package/dist/index-2o2VBvVN.cjs.map +0 -1
- package/dist/index-B5e6DfQZ.js +0 -14
- package/dist/index-B5e6DfQZ.js.map +0 -1
- package/dist/index-B7KV8_ac.cjs +0 -44
- package/dist/index-B7KV8_ac.cjs.map +0 -1
- package/dist/index-B8_S3w5d.cjs +0 -28
- package/dist/index-B8_S3w5d.cjs.map +0 -1
- package/dist/index-BCvaWfkS.js +0 -14
- package/dist/index-BCvaWfkS.js.map +0 -1
- package/dist/index-BIRTKnfa.js +0 -44
- package/dist/index-BIRTKnfa.js.map +0 -1
- package/dist/index-BabnpV1R.js +0 -28
- package/dist/index-BabnpV1R.js.map +0 -1
- package/dist/index-CI6TkV4e.js +0 -14
- package/dist/index-CI6TkV4e.js.map +0 -1
- package/dist/index-CQpRB59U.cjs +0 -19
- package/dist/index-CQpRB59U.cjs.map +0 -1
- package/dist/index-CeOu2y8a.js +0 -28
- package/dist/index-CeOu2y8a.js.map +0 -1
- package/dist/index-CiVlnmEB.cjs +0 -14
- package/dist/index-CiVlnmEB.cjs.map +0 -1
- package/dist/index-Cj9TcRjV.cjs +0 -14
- package/dist/index-Cj9TcRjV.cjs.map +0 -1
- package/dist/index-Cpdbh3sr.js +0 -17
- package/dist/index-Cpdbh3sr.js.map +0 -1
- package/dist/index-CsUJY3F4.cjs +0 -28
- package/dist/index-CsUJY3F4.cjs.map +0 -1
- package/dist/index-D-kLe1Lx.cjs +0 -54
- package/dist/index-D-kLe1Lx.cjs.map +0 -1
- package/dist/index-D4MPQx8Q.cjs +0 -9
- package/dist/index-D4MPQx8Q.cjs.map +0 -1
- package/dist/index-DJL4a_Kw.js +0 -15
- package/dist/index-DJL4a_Kw.js.map +0 -1
- package/dist/index-DPseTvz6.cjs +0 -10
- package/dist/index-DPseTvz6.cjs.map +0 -1
- package/dist/index-DVAtSM0f.cjs +0 -28
- package/dist/index-DVAtSM0f.cjs.map +0 -1
- package/dist/index-DWmPpTAr.js +0 -54
- package/dist/index-DWmPpTAr.js.map +0 -1
- package/dist/index-DbPDbm1S.js +0 -10
- package/dist/index-DbPDbm1S.js.map +0 -1
- package/dist/index-DePBHdMb.cjs +0 -15
- package/dist/index-DePBHdMb.cjs.map +0 -1
- package/dist/index-Ds-dL7rp.cjs +0 -11
- package/dist/index-Ds-dL7rp.cjs.map +0 -1
- package/dist/index-FNO0uAiM.js +0 -9
- package/dist/index-FNO0uAiM.js.map +0 -1
- package/dist/index-M1K64ssP.js +0 -28
- package/dist/index-M1K64ssP.js.map +0 -1
- package/dist/index-Os0JbUht.js +0 -11
- package/dist/index-Os0JbUht.js.map +0 -1
- package/dist/index-Vp4HLGO-.cjs +0 -14
- package/dist/index-Vp4HLGO-.cjs.map +0 -1
- package/dist/index-WUeklnFb.js +0 -19
- package/dist/index-WUeklnFb.js.map +0 -1
- package/dist/removePluginsFromConfigs-ByipAus1.js +0 -59
- package/dist/removePluginsFromConfigs-ByipAus1.js.map +0 -1
- package/dist/removePluginsFromConfigs-D8PUzDVg.cjs +0 -58
- package/dist/removePluginsFromConfigs-D8PUzDVg.cjs.map +0 -1
- package/dist/stylistic-B7JRcUO4.js +0 -419
- package/dist/stylistic-B7JRcUO4.js.map +0 -1
- package/dist/stylistic-BdRMGyUe.cjs +0 -418
- package/dist/stylistic-BdRMGyUe.cjs.map +0 -1
- package/dist/vue-B3lDYr4H.js +0 -211
- package/dist/vue-B3lDYr4H.js.map +0 -1
- package/dist/vue-BXgQgBC3.cjs +0 -210
- package/dist/vue-BXgQgBC3.cjs.map +0 -1
- package/dist/vue2-C307LTUQ.js +0 -19
- package/dist/vue2-C307LTUQ.js.map +0 -1
- package/dist/vue2-CRyjxVnh.cjs +0 -18
- package/dist/vue2-CRyjxVnh.cjs.map +0 -1
package/dist/main.js
CHANGED
|
@@ -1,191 +1,157 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as merge } from "./merge-DEya5rmo.js";
|
|
2
|
+
import { t as mergeAll } from "./mergeAllConfig-BbXVeKTg.js";
|
|
3
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
4
|
import { createRequire } from "node:module";
|
|
3
5
|
import { resolve } from "node:path";
|
|
4
6
|
import { fileURLToPath } from "node:url";
|
|
5
7
|
import { installPackage } from "@antfu/install-pkg";
|
|
6
8
|
import semver from "semver";
|
|
7
|
-
import { merge as merge$1 } from "ts-deepmerge";
|
|
8
9
|
import { warn } from "node:console";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
];
|
|
16
|
-
const require2 = createRequire(import.meta.url);
|
|
10
|
+
//#region src/utils/ensureDependencies.ts
|
|
11
|
+
var turnOff = false;
|
|
12
|
+
var scanned = false;
|
|
13
|
+
var silencedDependencies = /* @__PURE__ */ new Set();
|
|
14
|
+
var fixedDependencies = ["eslint", "globals"];
|
|
15
|
+
var require = createRequire(import.meta.url);
|
|
17
16
|
function getPackageJSONPath(currentDir) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (currentDir === process.cwd()) {
|
|
23
|
-
throw new Error(`Unable to locate package.json in ${currentDir}`);
|
|
24
|
-
}
|
|
25
|
-
const parentDir = resolve(currentDir, "..");
|
|
26
|
-
return getPackageJSONPath(parentDir);
|
|
17
|
+
const fileLocation = resolve(currentDir, "package.json");
|
|
18
|
+
if (existsSync(fileLocation)) return fileLocation;
|
|
19
|
+
if (currentDir === process.cwd()) throw new Error(`Unable to locate package.json in ${currentDir}`);
|
|
20
|
+
return getPackageJSONPath(resolve(currentDir, ".."));
|
|
27
21
|
}
|
|
28
22
|
function getPackageJSON(fileLocation) {
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
const packageJsonContent = readFileSync(fileLocation, "utf8");
|
|
24
|
+
return JSON.parse(packageJsonContent);
|
|
31
25
|
}
|
|
32
26
|
function getExpectedDependencies() {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const packageJson = getPackageJSON(path);
|
|
38
|
-
return packageJson.dependencies;
|
|
27
|
+
return getPackageJSON(getPackageJSONPath(fileURLToPath(new URL(
|
|
28
|
+
/* @vite-ignore */
|
|
29
|
+
import.meta.url
|
|
30
|
+
)))).dependencies;
|
|
39
31
|
}
|
|
40
32
|
function getDependencyVersionFromConsumer(depName, baseDir = process.cwd()) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return void 0;
|
|
48
|
-
}
|
|
33
|
+
try {
|
|
34
|
+
const pkgContent = readFileSync(require.resolve(`${depName}/package.json`, { paths: [baseDir] }), "utf8");
|
|
35
|
+
return JSON.parse(pkgContent).version;
|
|
36
|
+
} catch {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
49
39
|
}
|
|
50
40
|
async function ensureDependencies() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\W+/, "")}`);
|
|
70
|
-
console.info("Missing dependencies detected:");
|
|
71
|
-
console.info(missingDependencies.map((dependency) => ` - ${dependency}`).join("\n"));
|
|
72
|
-
console.info("\nInstalling dependencies:");
|
|
73
|
-
await installPackage(missingDependencies, { dev: true, additionalArgs: ["-E"] });
|
|
74
|
-
process.exit(1);
|
|
41
|
+
if (turnOff || scanned) return;
|
|
42
|
+
scanned = true;
|
|
43
|
+
const missingDependencyEntries = Object.entries(getExpectedDependencies()).filter(([expectedDependency, expectedVersion]) => {
|
|
44
|
+
if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) return false;
|
|
45
|
+
const installedVersion = getDependencyVersionFromConsumer(expectedDependency);
|
|
46
|
+
if (!installedVersion) return true;
|
|
47
|
+
return semver.lt(installedVersion, expectedVersion);
|
|
48
|
+
});
|
|
49
|
+
if (!missingDependencyEntries.length) return;
|
|
50
|
+
const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\W+/, "")}`);
|
|
51
|
+
console.info("Missing dependencies detected:");
|
|
52
|
+
console.info(missingDependencies.map((dependency) => ` - ${dependency}`).join("\n"));
|
|
53
|
+
console.info("\nInstalling dependencies:");
|
|
54
|
+
await installPackage(missingDependencies, {
|
|
55
|
+
dev: true,
|
|
56
|
+
additionalArgs: ["-E"]
|
|
57
|
+
});
|
|
58
|
+
process.exit(1);
|
|
75
59
|
}
|
|
76
60
|
function silenceDependencyWarning(input) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
if (typeof input === "boolean") {
|
|
62
|
+
turnOff = input;
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
silencedDependencies.clear();
|
|
66
|
+
input.forEach((dependency) => silencedDependencies.add(String(dependency)));
|
|
83
67
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
68
|
+
//#endregion
|
|
69
|
+
//#region src/utils/silenceRules.ts
|
|
70
|
+
var globallySilencedRules = /* @__PURE__ */ new Set();
|
|
71
|
+
/**
|
|
72
|
+
* Silence rules globally.
|
|
73
|
+
* This will affect all configs scopes.
|
|
74
|
+
*/
|
|
88
75
|
function silenceRules(rules) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
76
|
+
rules.forEach((rule) => {
|
|
77
|
+
globallySilencedRules.add(rule);
|
|
78
|
+
});
|
|
92
79
|
}
|
|
93
80
|
function silenceRule(config) {
|
|
94
|
-
|
|
95
|
-
|
|
81
|
+
const [, ...restConfig] = Array.isArray(config) ? config : [];
|
|
82
|
+
return ["warn", ...restConfig];
|
|
96
83
|
}
|
|
97
84
|
function filterSilencedRules(rules, silencedRules) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
warn(`Unknown rule "${rule}". Please remove it from the silenced rules list.`);
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
return Object.entries(rules).reduce((newRules, [key, value]) => {
|
|
114
|
-
if (value) {
|
|
115
|
-
newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;
|
|
116
|
-
}
|
|
117
|
-
return newRules;
|
|
118
|
-
}, {});
|
|
119
|
-
}
|
|
120
|
-
function mergeAll(...configs) {
|
|
121
|
-
return configs.flat().reduce((acc, scope) => merge(acc, scope), {});
|
|
85
|
+
let targetSilencedRules = silencedRules || globallySilencedRules;
|
|
86
|
+
if (Array.isArray(targetSilencedRules)) targetSilencedRules = new Set(targetSilencedRules);
|
|
87
|
+
if (!rules || !targetSilencedRules.size) return rules;
|
|
88
|
+
if (silencedRules) targetSilencedRules.forEach((rule) => {
|
|
89
|
+
if (rules[rule]) return;
|
|
90
|
+
warn(`Unknown rule "${rule}". Please remove it from the silenced rules list.`);
|
|
91
|
+
});
|
|
92
|
+
return Object.entries(rules).reduce((newRules, [key, value]) => {
|
|
93
|
+
if (value) newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;
|
|
94
|
+
return newRules;
|
|
95
|
+
}, {});
|
|
122
96
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/main.ts
|
|
99
|
+
var configMap = {
|
|
100
|
+
async config() {
|
|
101
|
+
return import("./config-Css2Pu_R.js");
|
|
102
|
+
},
|
|
103
|
+
async javascript() {
|
|
104
|
+
return import("./javascript-DrnVnn8x.js");
|
|
105
|
+
},
|
|
106
|
+
async "javascript-node"() {
|
|
107
|
+
return import("./javascript-node-CcgaOykE.js");
|
|
108
|
+
},
|
|
109
|
+
async "javascript-dom"() {
|
|
110
|
+
return import("./javascript-dom-DUniYlu6.js");
|
|
111
|
+
},
|
|
112
|
+
async typescript() {
|
|
113
|
+
return import("./typescript-CQ_Hr2QM.js");
|
|
114
|
+
},
|
|
115
|
+
async "typescript-node"() {
|
|
116
|
+
return import("./typescript-node-D1A44bTs.js");
|
|
117
|
+
},
|
|
118
|
+
async "typescript-dom"() {
|
|
119
|
+
return import("./typescript-dom-Bv_Zz0xP.js");
|
|
120
|
+
},
|
|
121
|
+
async vue3() {
|
|
122
|
+
return import("./vue3-DvAMqq2z.js");
|
|
123
|
+
},
|
|
124
|
+
async "vue3-typescript"() {
|
|
125
|
+
return import("./vue3-typescript-B-MIQF7E.js");
|
|
126
|
+
},
|
|
127
|
+
async vue2() {
|
|
128
|
+
return import("./vue2-8ymY78UQ.js");
|
|
129
|
+
},
|
|
130
|
+
async "vue2-typescript"() {
|
|
131
|
+
return import("./vue2-typescript-D0PJDNVJ.js");
|
|
132
|
+
},
|
|
133
|
+
async jest() {
|
|
134
|
+
return import("./jest-B0jgh-Ns.js");
|
|
135
|
+
},
|
|
136
|
+
async "jsdoc-based-ts"() {
|
|
137
|
+
return import("./jsdoc-based-ts-B40HFdNC.js");
|
|
138
|
+
},
|
|
139
|
+
async strict() {
|
|
140
|
+
return import("./strict-BfeS2xp_.js");
|
|
141
|
+
}
|
|
166
142
|
};
|
|
167
143
|
async function useInsider(config) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
if (config.silenceRules) {
|
|
178
|
-
mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);
|
|
179
|
-
} else {
|
|
180
|
-
mergedConfig.rules = filterSilencedRules(mergedConfig.rules);
|
|
181
|
-
}
|
|
182
|
-
return mergedConfig;
|
|
144
|
+
await ensureDependencies();
|
|
145
|
+
const configs = config.preset.map(async (scope) => typeof configMap[scope] === "function" && (await configMap[scope]()).default).filter(Boolean);
|
|
146
|
+
const resolvedConfigAll = (await Promise.all(configs)).reduce((acc, scope) => merge(acc, scope), {});
|
|
147
|
+
delete resolvedConfigAll.files;
|
|
148
|
+
const mergedConfig = merge(resolvedConfigAll, config.config);
|
|
149
|
+
if (!mergedConfig) return Promise.reject(/* @__PURE__ */ new Error("No config found"));
|
|
150
|
+
if (config.silenceRules) mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);
|
|
151
|
+
else mergedConfig.rules = filterSilencedRules(mergedConfig.rules);
|
|
152
|
+
return mergedConfig;
|
|
183
153
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
silenceRules,
|
|
189
|
-
useInsider
|
|
190
|
-
};
|
|
191
|
-
//# sourceMappingURL=main.js.map
|
|
154
|
+
//#endregion
|
|
155
|
+
export { merge, mergeAll, silenceDependencyWarning, silenceRules, useInsider };
|
|
156
|
+
|
|
157
|
+
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../src/utils/ensureDependencies.ts","../src/utils/merge.ts","../src/utils/silenceRules.ts","../src/utils/mergeAllConfig.ts","../src/main.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { installPackage } from '@antfu/install-pkg';\nimport semver from 'semver';\n\nlet turnOff = false;\nlet scanned = false;\nconst silencedDependencies = new Set<string>();\nconst fixedDependencies = [\n 'eslint',\n 'globals',\n];\nconst require = createRequire(import.meta.url);\n\nfunction getPackageJSONPath (currentDir: string) {\n const fileLocation = resolve(currentDir, 'package.json');\n\n if (existsSync(fileLocation)) {\n return fileLocation;\n }\n\n if (currentDir === process.cwd()) {\n throw new Error(`Unable to locate package.json in ${currentDir}`);\n }\n\n const parentDir = resolve(currentDir, '..');\n\n return getPackageJSONPath(parentDir);\n}\n\nfunction getPackageJSON (fileLocation: string) {\n const packageJsonContent = readFileSync(fileLocation, 'utf8');\n\n return JSON.parse(packageJsonContent) as Record<string, Record<string, string>>;\n}\n\nfunction getExpectedDependencies (): Record<string, string> {\n const path = getPackageJSONPath(fileURLToPath(new URL(/* @vite-ignore */ import.meta.url)));\n const packageJson = getPackageJSON(path);\n\n return packageJson.dependencies;\n}\n\nfunction getDependencyVersionFromConsumer (depName: string, baseDir: string = process.cwd()): string | undefined {\n try {\n const pkgJsonPath = require.resolve(`${depName}/package.json`, { paths: [baseDir] });\n const pkgContent = readFileSync(pkgJsonPath, 'utf8');\n const pkg: { version?: string } = JSON.parse(pkgContent) as Record<string, Record<string, string>>;\n\n return pkg.version;\n } catch {\n return undefined;\n }\n}\n\nexport async function ensureDependencies () {\n if (turnOff || scanned) {\n return;\n }\n\n scanned = true;\n\n const expectedDependencies = Object.entries(getExpectedDependencies());\n const missingDependencyEntries = expectedDependencies.filter(\n ([expectedDependency, expectedVersion]) => {\n if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) {\n return false;\n }\n\n const installedVersion = getDependencyVersionFromConsumer(expectedDependency);\n\n if (!installedVersion) {\n return true;\n }\n\n return semver.lt(installedVersion, expectedVersion);\n }\n );\n\n if (!missingDependencyEntries.length) {\n return;\n }\n\n const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\\W+/, '')}`);\n\n // eslint-disable-next-line no-console\n console.info('Missing dependencies detected:');\n // eslint-disable-next-line no-console\n console.info(missingDependencies.map(dependency => ` - ${dependency}`).join('\\n'));\n // eslint-disable-next-line no-console\n console.info('\\nInstalling dependencies:');\n\n await installPackage(missingDependencies, { dev: true, additionalArgs: ['-E'] });\n\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n}\n\nexport function silenceDependencyWarning (\n /**\n * Pass `true` to silence all dependency warnings.\n */\n all: boolean\n): void;\n\nexport function silenceDependencyWarning (dependencies: string[]): void;\n\nexport function silenceDependencyWarning (input: boolean | string[]) {\n if (typeof input === 'boolean') {\n turnOff = input;\n\n return;\n }\n\n silencedDependencies.clear();\n input.forEach(dependency => silencedDependencies.add(String(dependency)));\n}\n","import { merge as tsMerge } from 'ts-deepmerge';\n\nexport function merge<Arguments extends NonNullable<unknown>[]> (...args: Arguments): Arguments[number] {\n return tsMerge.withOptions({ mergeArrays: false }, ...args) as unknown as Arguments;\n}\n","import { warn } from 'node:console';\nimport type { Linter } from 'eslint';\n\nconst globallySilencedRules = new Set<string>();\n\n/**\n * Silence rules globally.\n * This will affect all configs scopes.\n */\nexport function silenceRules (rules: string[]) {\n rules.forEach(rule => {\n globallySilencedRules.add(rule);\n });\n}\n\nfunction silenceRule (config: Linter.RuleEntry) {\n const [, ...restConfig] = Array.isArray(config) ? config : [];\n\n return ['warn', ...restConfig as Record<string, unknown>[]] as Linter.RuleSeverityAndOptions;\n}\n\nexport function filterSilencedRules (\n rules: Partial<Linter.RulesRecord> | Readonly<Linter.RulesRecord> | undefined,\n silencedRules?: string[] | Set<string>\n) {\n let targetSilencedRules = silencedRules || globallySilencedRules;\n\n if (Array.isArray(targetSilencedRules)) {\n targetSilencedRules = new Set(targetSilencedRules);\n }\n\n if (!rules || !targetSilencedRules.size) {\n return rules;\n }\n\n if (silencedRules) {\n targetSilencedRules.forEach(rule => {\n if (rules[rule]) {\n return;\n }\n\n warn(`Unknown rule \"${rule}\". Please remove it from the silenced rules list.`);\n });\n }\n\n return Object.entries(rules).reduce((newRules, [key, value]) => {\n if (value) {\n newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;\n }\n\n return newRules;\n }, {} as Linter.RulesRecord);\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { vi, describe, test, expect, afterEach } = import.meta.vitest;\n\n const mocks = vi.hoisted(() => ({\n warn: vi.fn(),\n }));\n\n vi.mock('node:console', () => mocks);\n\n afterEach(() => {\n globallySilencedRules.clear();\n });\n\n describe('silenceRules', () => {\n test('should register given rule keys as silenced', () => {\n const rule = '@stylistic/type-generic-spacing';\n\n expect(globallySilencedRules.has(rule)).toBe(false);\n silenceRules([rule]);\n expect(globallySilencedRules.has(rule)).toBe(true);\n });\n });\n\n describe('filterSilencedRules', () => {\n test('should return the same rules object if no rules are silenced', () => {\n const rules = {\n 'no-console': 'warn',\n 'no-debugger': 'warn',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toBe(rules);\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-console']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'no-console': ['warn'],\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n });\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-bitwise', 'new-cap']);\n\n const rules = {\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'max-len': 'off',\n 'new-cap': ['warn'],\n 'no-alert': ['error'],\n 'no-bitwise': ['warn', {\n allow: ['~'],\n }],\n });\n });\n\n test('should not warn about unknown rules', () => {\n silenceRules(['no-console', 'no-bitwise']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules);\n\n expect(mocks.warn).not.toHaveBeenCalled();\n expect(mocks.warn).not.toHaveBeenCalled();\n });\n\n test('should warn about unknown rules', () => {\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules, ['no-console', 'no-bitwise']);\n\n expect(mocks.warn).toHaveBeenCalledTimes(1);\n expect(mocks.warn).toHaveBeenCalledWith(\n 'Unknown rule \"no-bitwise\". Please remove it from the silenced rules list.'\n );\n });\n\n test.each([\n [['@typescript-eslint/no-unsafe-call'], ['warn']],\n [new Set(['@typescript-eslint/no-unsafe-call']), ['warn']],\n [[], 'error'],\n ])(\n '#%# should filter scope-related rules and ignore globally silenced rules',\n (silencedRules, expectation) => {\n silenceRules(['@typescript-eslint/no-unsafe-assignment']);\n\n const rules = {\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules, silencedRules)).toStrictEqual({\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': expectation,\n });\n }\n );\n });\n}\n","import type { Linter } from 'eslint';\nimport { merge } from './merge';\n\nexport function mergeAll (...configs: Linter.Config[][]) {\n return configs.flat().reduce((acc, scope) => merge(acc, scope), {} as Linter.Config);\n}\n","import type { Linter } from 'eslint';\nimport { ensureDependencies } from './utils/ensureDependencies';\nimport { merge } from './utils/merge';\nimport { filterSilencedRules } from './utils/silenceRules';\n\nconst configMap = {\n async config () {\n return import('./configs/config');\n },\n async javascript () {\n return import('./configs/javascript');\n },\n async 'javascript-node' () {\n return import('./configs/javascript-node');\n },\n async 'javascript-dom' () {\n return import('./configs/javascript-dom');\n },\n async typescript () {\n return import('./configs/typescript');\n },\n async 'typescript-node' () {\n return import('./configs/typescript-node');\n },\n async 'typescript-dom' () {\n return import('./configs/typescript-dom');\n },\n async vue3 () {\n return import('./configs/vue3');\n },\n async 'vue3-typescript' () {\n return import('./configs/vue3-typescript');\n },\n async vue2 () {\n return import('./configs/vue2');\n },\n async 'vue2-typescript' () {\n return import('./configs/vue2-typescript');\n },\n async jest () {\n return import('./configs/jest');\n },\n async 'jsdoc-based-ts' () {\n return import('./configs/jsdoc-based-ts');\n },\n async strict () {\n return import('./configs/strict');\n },\n} satisfies Record<string, () => Promise<{ default: Linter.Config }>>;\n\ninterface Config {\n /** Precedence order will affect how rules applied */\n preset: (keyof typeof configMap)[];\n config: Linter.Config;\n silenceRules?: string[];\n}\n\nexport async function useInsider (config: Config): Promise<Linter.Config> {\n await ensureDependencies();\n\n const configs = config.preset\n .map(async scope => typeof configMap[scope] === 'function' && (await configMap[scope]()).default)\n .filter(Boolean);\n\n const resolvedConfigs = await Promise.all(configs);\n const resolvedConfigAll = resolvedConfigs.reduce((acc, scope) => merge(acc, scope), {}) as Linter.Config;\n\n delete resolvedConfigAll.files;\n\n const mergedConfig = merge(resolvedConfigAll, config.config);\n\n if (!mergedConfig) {\n return Promise.reject(new Error('No config found'));\n }\n\n if (config.silenceRules) {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);\n } else {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules);\n }\n\n return mergedConfig;\n}\n\nexport { merge } from './utils/merge';\n\nexport { mergeAll } from './utils/mergeAllConfig';\n\nexport { silenceDependencyWarning } from './utils/ensureDependencies';\n\nexport { silenceRules } from './utils/silenceRules';\n"],"names":["require","tsMerge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","names":[],"sources":["../src/utils/ensureDependencies.ts","../src/utils/silenceRules.ts","../src/main.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { installPackage } from '@antfu/install-pkg';\nimport semver from 'semver';\n\nlet turnOff = false;\nlet scanned = false;\nconst silencedDependencies = new Set<string>();\nconst fixedDependencies = [\n 'eslint',\n 'globals',\n];\nconst require = createRequire(import.meta.url);\n\nfunction getPackageJSONPath (currentDir: string) {\n const fileLocation = resolve(currentDir, 'package.json');\n\n if (existsSync(fileLocation)) {\n return fileLocation;\n }\n\n if (currentDir === process.cwd()) {\n throw new Error(`Unable to locate package.json in ${currentDir}`);\n }\n\n const parentDir = resolve(currentDir, '..');\n\n return getPackageJSONPath(parentDir);\n}\n\nfunction getPackageJSON (fileLocation: string) {\n const packageJsonContent = readFileSync(fileLocation, 'utf8');\n\n return JSON.parse(packageJsonContent) as Record<string, Record<string, string>>;\n}\n\nfunction getExpectedDependencies (): Record<string, string> {\n const path = getPackageJSONPath(fileURLToPath(new URL(/* @vite-ignore */ import.meta.url)));\n const packageJson = getPackageJSON(path);\n\n return packageJson.dependencies;\n}\n\nfunction getDependencyVersionFromConsumer (depName: string, baseDir: string = process.cwd()): string | undefined {\n try {\n const pkgJsonPath = require.resolve(`${depName}/package.json`, { paths: [baseDir] });\n const pkgContent = readFileSync(pkgJsonPath, 'utf8');\n const pkg: { version?: string } = JSON.parse(pkgContent) as Record<string, Record<string, string>>;\n\n return pkg.version;\n } catch {\n return undefined;\n }\n}\n\nexport async function ensureDependencies () {\n if (turnOff || scanned) {\n return;\n }\n\n scanned = true;\n\n const expectedDependencies = Object.entries(getExpectedDependencies());\n const missingDependencyEntries = expectedDependencies.filter(\n ([expectedDependency, expectedVersion]) => {\n if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) {\n return false;\n }\n\n const installedVersion = getDependencyVersionFromConsumer(expectedDependency);\n\n if (!installedVersion) {\n return true;\n }\n\n return semver.lt(installedVersion, expectedVersion);\n }\n );\n\n if (!missingDependencyEntries.length) {\n return;\n }\n\n const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\\W+/, '')}`);\n\n // eslint-disable-next-line no-console\n console.info('Missing dependencies detected:');\n // eslint-disable-next-line no-console\n console.info(missingDependencies.map(dependency => ` - ${dependency}`).join('\\n'));\n // eslint-disable-next-line no-console\n console.info('\\nInstalling dependencies:');\n\n await installPackage(missingDependencies, { dev: true, additionalArgs: ['-E'] });\n\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n}\n\nexport function silenceDependencyWarning (\n /**\n * Pass `true` to silence all dependency warnings.\n */\n all: boolean\n): void;\n\nexport function silenceDependencyWarning (dependencies: string[]): void;\n\nexport function silenceDependencyWarning (input: boolean | string[]) {\n if (typeof input === 'boolean') {\n turnOff = input;\n\n return;\n }\n\n silencedDependencies.clear();\n input.forEach(dependency => silencedDependencies.add(String(dependency)));\n}\n","import { warn } from 'node:console';\nimport type { Linter } from 'eslint';\n\nconst globallySilencedRules = new Set<string>();\n\n/**\n * Silence rules globally.\n * This will affect all configs scopes.\n */\nexport function silenceRules (rules: string[]) {\n rules.forEach(rule => {\n globallySilencedRules.add(rule);\n });\n}\n\nfunction silenceRule (config: Linter.RuleEntry) {\n const [, ...restConfig] = Array.isArray(config) ? config : [];\n\n return ['warn', ...restConfig as Record<string, unknown>[]] as Linter.RuleSeverityAndOptions;\n}\n\nexport function filterSilencedRules (\n rules: Partial<Linter.RulesRecord> | Readonly<Linter.RulesRecord> | undefined,\n silencedRules?: string[] | Set<string>\n) {\n let targetSilencedRules = silencedRules || globallySilencedRules;\n\n if (Array.isArray(targetSilencedRules)) {\n targetSilencedRules = new Set(targetSilencedRules);\n }\n\n if (!rules || !targetSilencedRules.size) {\n return rules;\n }\n\n if (silencedRules) {\n targetSilencedRules.forEach(rule => {\n if (rules[rule]) {\n return;\n }\n\n warn(`Unknown rule \"${rule}\". Please remove it from the silenced rules list.`);\n });\n }\n\n return Object.entries(rules).reduce((newRules, [key, value]) => {\n if (value) {\n newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;\n }\n\n return newRules;\n }, {} as Linter.RulesRecord);\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { vi, describe, test, expect, afterEach } = import.meta.vitest;\n\n const mocks = vi.hoisted(() => ({\n warn: vi.fn(),\n }));\n\n vi.mock('node:console', () => mocks);\n\n afterEach(() => {\n globallySilencedRules.clear();\n });\n\n describe('silenceRules', () => {\n test('should register given rule keys as silenced', () => {\n const rule = '@stylistic/type-generic-spacing';\n\n expect(globallySilencedRules.has(rule)).toBe(false);\n silenceRules([rule]);\n expect(globallySilencedRules.has(rule)).toBe(true);\n });\n });\n\n describe('filterSilencedRules', () => {\n test('should return the same rules object if no rules are silenced', () => {\n const rules = {\n 'no-console': 'warn',\n 'no-debugger': 'warn',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toBe(rules);\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-console']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'no-console': ['warn'],\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n });\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-bitwise', 'new-cap']);\n\n const rules = {\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'max-len': 'off',\n 'new-cap': ['warn'],\n 'no-alert': ['error'],\n 'no-bitwise': ['warn', {\n allow: ['~'],\n }],\n });\n });\n\n test('should not warn about unknown rules', () => {\n silenceRules(['no-console', 'no-bitwise']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules);\n\n expect(mocks.warn).not.toHaveBeenCalled();\n expect(mocks.warn).not.toHaveBeenCalled();\n });\n\n test('should warn about unknown rules', () => {\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules, ['no-console', 'no-bitwise']);\n\n expect(mocks.warn).toHaveBeenCalledTimes(1);\n expect(mocks.warn).toHaveBeenCalledWith(\n 'Unknown rule \"no-bitwise\". Please remove it from the silenced rules list.'\n );\n });\n\n test.each([\n [['@typescript-eslint/no-unsafe-call'], ['warn']],\n [new Set(['@typescript-eslint/no-unsafe-call']), ['warn']],\n [[], 'error'],\n ])(\n '#%# should filter scope-related rules and ignore globally silenced rules',\n (silencedRules, expectation) => {\n silenceRules(['@typescript-eslint/no-unsafe-assignment']);\n\n const rules = {\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules, silencedRules)).toStrictEqual({\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': expectation,\n });\n }\n );\n });\n}\n","import type { Linter } from 'eslint';\nimport { ensureDependencies } from './utils/ensureDependencies';\nimport { merge } from './utils/merge';\nimport { filterSilencedRules } from './utils/silenceRules';\n\nconst configMap = {\n async config () {\n return import('./configs/config');\n },\n async javascript () {\n return import('./configs/javascript');\n },\n async 'javascript-node' () {\n return import('./configs/javascript-node');\n },\n async 'javascript-dom' () {\n return import('./configs/javascript-dom');\n },\n async typescript () {\n return import('./configs/typescript');\n },\n async 'typescript-node' () {\n return import('./configs/typescript-node');\n },\n async 'typescript-dom' () {\n return import('./configs/typescript-dom');\n },\n async vue3 () {\n return import('./configs/vue3');\n },\n async 'vue3-typescript' () {\n return import('./configs/vue3-typescript');\n },\n async vue2 () {\n return import('./configs/vue2');\n },\n async 'vue2-typescript' () {\n return import('./configs/vue2-typescript');\n },\n async jest () {\n return import('./configs/jest');\n },\n async 'jsdoc-based-ts' () {\n return import('./configs/jsdoc-based-ts');\n },\n async strict () {\n return import('./configs/strict');\n },\n} satisfies Record<string, () => Promise<{ default: Linter.Config }>>;\n\ninterface Config {\n /** Precedence order will affect how rules applied */\n preset: (keyof typeof configMap)[];\n config: Linter.Config;\n silenceRules?: string[];\n}\n\nexport async function useInsider (config: Config): Promise<Linter.Config> {\n await ensureDependencies();\n\n const configs = config.preset\n .map(async scope => typeof configMap[scope] === 'function' && (await configMap[scope]()).default)\n .filter(Boolean);\n\n const resolvedConfigs = await Promise.all(configs);\n const resolvedConfigAll = resolvedConfigs.reduce((acc, scope) => merge(acc, scope), {}) as Linter.Config;\n\n delete resolvedConfigAll.files;\n\n const mergedConfig = merge(resolvedConfigAll, config.config);\n\n if (!mergedConfig) {\n return Promise.reject(new Error('No config found'));\n }\n\n if (config.silenceRules) {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);\n } else {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules);\n }\n\n return mergedConfig;\n}\n\nexport { merge } from './utils/merge';\n\nexport { mergeAll } from './utils/mergeAllConfig';\n\nexport { silenceDependencyWarning } from './utils/ensureDependencies';\n\nexport { silenceRules } from './utils/silenceRules';\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require("./chunk-CKQMccvm.cjs");
|
|
2
|
+
let ts_deepmerge = require("ts-deepmerge");
|
|
3
|
+
//#region src/utils/merge.ts
|
|
4
|
+
function merge(...args) {
|
|
5
|
+
return ts_deepmerge.merge.withOptions({ mergeArrays: false }, ...args);
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
Object.defineProperty(exports, "merge", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function() {
|
|
11
|
+
return merge;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=merge-9BZzhd4u.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-9BZzhd4u.cjs","names":[],"sources":["../src/utils/merge.ts"],"sourcesContent":["import { merge as tsMerge } from 'ts-deepmerge';\n\nexport function merge<Arguments extends NonNullable<unknown>[]> (...args: Arguments): Arguments[number] {\n return tsMerge.withOptions({ mergeArrays: false }, ...args);\n}\n"],"mappings":";;;AAEA,SAAgB,MAAiD,GAAG,MAAe;CAC/E,OAAO,aAAA,MAAQ,YAAY,EAAE,aAAa,OAAO,EAAE,GAAG,KAAK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-DEya5rmo.js","names":[],"sources":["../src/utils/merge.ts"],"sourcesContent":["import { merge as tsMerge } from 'ts-deepmerge';\n\nexport function merge<Arguments extends NonNullable<unknown>[]> (...args: Arguments): Arguments[number] {\n return tsMerge.withOptions({ mergeArrays: false }, ...args);\n}\n"],"mappings":";;AAEA,SAAgB,QAAiD,GAAG,MAAe;CAC/E,OAAO,MAAQ,YAAY,EAAE,aAAa,OAAO,EAAE,GAAG,KAAK"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const require_merge = require("./merge-9BZzhd4u.cjs");
|
|
2
|
+
//#region src/utils/mergeAllConfig.ts
|
|
3
|
+
function mergeAll(...configs) {
|
|
4
|
+
return configs.flat().reduce((acc, scope) => require_merge.merge(acc, scope), {});
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
Object.defineProperty(exports, "mergeAll", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function() {
|
|
10
|
+
return mergeAll;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=mergeAllConfig-B2TWh9bP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeAllConfig-B2TWh9bP.cjs","names":[],"sources":["../src/utils/mergeAllConfig.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport { merge } from './merge';\n\nexport function mergeAll (...configs: Linter.Config[][]) {\n return configs.flat().reduce((acc, scope) => merge(acc, scope), {} as Linter.Config);\n}\n"],"mappings":";;AAGA,SAAgB,SAAU,GAAG,SAA0B;CACnD,OAAO,QAAQ,MAAM,CAAC,QAAQ,KAAK,UAAU,cAAA,MAAM,KAAK,MAAM,EAAE,EAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { t as merge } from "./merge-DEya5rmo.js";
|
|
2
|
+
//#region src/utils/mergeAllConfig.ts
|
|
3
|
+
function mergeAll(...configs) {
|
|
4
|
+
return configs.flat().reduce((acc, scope) => merge(acc, scope), {});
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
export { mergeAll as t };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=mergeAllConfig-BbXVeKTg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeAllConfig-BbXVeKTg.js","names":[],"sources":["../src/utils/mergeAllConfig.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport { merge } from './merge';\n\nexport function mergeAll (...configs: Linter.Config[][]) {\n return configs.flat().reduce((acc, scope) => merge(acc, scope), {} as Linter.Config);\n}\n"],"mappings":";;AAGA,SAAgB,SAAU,GAAG,SAA0B;CACnD,OAAO,QAAQ,MAAM,CAAC,QAAQ,KAAK,UAAU,MAAM,KAAK,MAAM,EAAE,EAAmB,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var typescript_default = { rules: {
|
|
2
|
+
indent: "off",
|
|
3
|
+
"no-undef": "off",
|
|
4
|
+
"no-shadow": "off",
|
|
5
|
+
"@typescript-eslint/comma-dangle": "off",
|
|
6
|
+
"no-extra-parens": "off",
|
|
7
|
+
"@typescript-eslint/no-extra-parens": "off",
|
|
8
|
+
"@typescript-eslint/space-before-function-paren": "off",
|
|
9
|
+
"no-unused-vars": "off",
|
|
10
|
+
"no-useless-constructor": "off",
|
|
11
|
+
"@typescript-eslint/indent": "off",
|
|
12
|
+
semi: "off",
|
|
13
|
+
"@typescript-eslint/semi": "off",
|
|
14
|
+
"react/jsx-filename-extension": "off",
|
|
15
|
+
"no-use-before-define": "off",
|
|
16
|
+
"@typescript-eslint/lines-between-class-members": "off",
|
|
17
|
+
"@typescript-eslint/comma-spacing": "off",
|
|
18
|
+
"@typescript-eslint/space-before-blocks": "off",
|
|
19
|
+
"@typescript-eslint/object-curly-spacing": "off",
|
|
20
|
+
"no-redeclare": "off",
|
|
21
|
+
"@typescript-eslint/func-call-spacing": "off",
|
|
22
|
+
"@typescript-eslint/no-shadow": "error",
|
|
23
|
+
"@typescript-eslint/no-unused-vars": ["error"],
|
|
24
|
+
"@typescript-eslint/no-useless-constructor": ["error"],
|
|
25
|
+
"@typescript-eslint/array-type": ["error", {
|
|
26
|
+
default: "array",
|
|
27
|
+
readonly: "array"
|
|
28
|
+
}],
|
|
29
|
+
"@typescript-eslint/no-misused-promises": ["error", { checksVoidReturn: { arguments: false } }],
|
|
30
|
+
"@typescript-eslint/no-use-before-define": ["error"],
|
|
31
|
+
"@typescript-eslint/consistent-type-imports": ["error", {
|
|
32
|
+
fixStyle: "inline-type-imports",
|
|
33
|
+
disallowTypeAnnotations: false
|
|
34
|
+
}],
|
|
35
|
+
"@typescript-eslint/naming-convention": ["error", {
|
|
36
|
+
selector: ["typeLike"],
|
|
37
|
+
format: ["PascalCase"],
|
|
38
|
+
custom: {
|
|
39
|
+
regex: "^((I|T|E|G|C)[A-Z][a-z]|[A-Z]{1,2}$)",
|
|
40
|
+
match: false
|
|
41
|
+
}
|
|
42
|
+
}]
|
|
43
|
+
} };
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/utils/removePluginsFromConfigs.ts
|
|
46
|
+
function removePluginsFromConfigs(configs) {
|
|
47
|
+
return configs.map((config) => {
|
|
48
|
+
const { plugins, ...rest } = config;
|
|
49
|
+
return rest;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
Object.defineProperty(exports, "removePluginsFromConfigs", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
get: function() {
|
|
56
|
+
return removePluginsFromConfigs;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(exports, "typescript_default", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
get: function() {
|
|
62
|
+
return typescript_default;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=removePluginsFromConfigs-BvvgY3b5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removePluginsFromConfigs-BvvgY3b5.cjs","names":[],"sources":["../src/rules/typescript.ts","../src/utils/removePluginsFromConfigs.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nconst overriddenRules: Linter.RulesRecord = {\n indent: 'off',\n 'no-undef': 'off',\n 'no-shadow': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n 'no-extra-parens': 'off',\n '@typescript-eslint/no-extra-parens': 'off',\n '@typescript-eslint/space-before-function-paren': 'off',\n 'no-unused-vars': 'off',\n 'no-useless-constructor': 'off',\n '@typescript-eslint/indent': 'off',\n semi: 'off',\n '@typescript-eslint/semi': 'off',\n 'react/jsx-filename-extension': 'off',\n 'no-use-before-define': 'off',\n '@typescript-eslint/lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/space-before-blocks': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n 'no-redeclare': 'off',\n // https://eslint.style/rules/ts/function-call-spacing\n '@typescript-eslint/func-call-spacing': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n '@typescript-eslint/no-shadow': 'error',\n '@typescript-eslint/no-unused-vars': ['error'],\n '@typescript-eslint/no-useless-constructor': ['error'],\n '@typescript-eslint/array-type': ['error', { default: 'array', readonly: 'array' }],\n '@typescript-eslint/no-misused-promises': ['error', {\n checksVoidReturn: { arguments: false },\n }],\n '@typescript-eslint/no-use-before-define': ['error'],\n '@typescript-eslint/consistent-type-imports': ['error', {\n fixStyle: 'inline-type-imports',\n disallowTypeAnnotations: false,\n }],\n '@typescript-eslint/naming-convention': ['error', {\n selector: ['typeLike'],\n format: ['PascalCase'],\n custom: {\n regex: '^((I|T|E|G|C)[A-Z][a-z]|[A-Z]{1,2}$)',\n match: false,\n },\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport function removePluginsFromConfigs (configs: Linter.Config[]): Linter.Config[] {\n return configs.map(config => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { plugins, ...rest } = config;\n\n return rest;\n });\n}\n"],"mappings":"AA0BA,IAAA,qBAAe,EACX,OAAO;CAxBP,QAAQ;CACR,YAAY;CACZ,aAAa;CACb,mCAAmC;CACnC,mBAAmB;CACnB,sCAAsC;CACtC,kDAAkD;CAClD,kBAAkB;CAClB,0BAA0B;CAC1B,6BAA6B;CAC7B,MAAM;CACN,2BAA2B;CAC3B,gCAAgC;CAChC,wBAAwB;CACxB,kDAAkD;CAClD,oCAAoC;CACpC,0CAA0C;CAC1C,2CAA2C;CAC3C,gBAAgB;CAEhB,wCAAwC;CAMpC,gCAAgC;CAChC,qCAAqC,CAAC,QAAQ;CAC9C,6CAA6C,CAAC,QAAQ;CACtD,iCAAiC,CAAC,SAAS;EAAE,SAAS;EAAS,UAAU;EAAS,CAAC;CACnF,0CAA0C,CAAC,SAAS,EAChD,kBAAkB,EAAE,WAAW,OAAO,EACzC,CAAC;CACF,2CAA2C,CAAC,QAAQ;CACpD,8CAA8C,CAAC,SAAS;EACpD,UAAU;EACV,yBAAyB;EAC5B,CAAC;CACF,wCAAwC,CAAC,SAAS;EAC9C,UAAU,CAAC,WAAW;EACtB,QAAQ,CAAC,aAAa;EACtB,QAAQ;GACJ,OAAO;GACP,OAAO;GACV;EACJ,CAAC;CACL,EACa;;;AChDlB,SAAgB,yBAA0B,SAAwB;CAC9D,OAAO,QAAQ,KAAI,WAAS;EAExB,MAAM,EAAE,SAAS,GAAG,SAAS;EAE7B,OAAO;GACT"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
var typescript_default = { rules: {
|
|
2
|
+
indent: "off",
|
|
3
|
+
"no-undef": "off",
|
|
4
|
+
"no-shadow": "off",
|
|
5
|
+
"@typescript-eslint/comma-dangle": "off",
|
|
6
|
+
"no-extra-parens": "off",
|
|
7
|
+
"@typescript-eslint/no-extra-parens": "off",
|
|
8
|
+
"@typescript-eslint/space-before-function-paren": "off",
|
|
9
|
+
"no-unused-vars": "off",
|
|
10
|
+
"no-useless-constructor": "off",
|
|
11
|
+
"@typescript-eslint/indent": "off",
|
|
12
|
+
semi: "off",
|
|
13
|
+
"@typescript-eslint/semi": "off",
|
|
14
|
+
"react/jsx-filename-extension": "off",
|
|
15
|
+
"no-use-before-define": "off",
|
|
16
|
+
"@typescript-eslint/lines-between-class-members": "off",
|
|
17
|
+
"@typescript-eslint/comma-spacing": "off",
|
|
18
|
+
"@typescript-eslint/space-before-blocks": "off",
|
|
19
|
+
"@typescript-eslint/object-curly-spacing": "off",
|
|
20
|
+
"no-redeclare": "off",
|
|
21
|
+
"@typescript-eslint/func-call-spacing": "off",
|
|
22
|
+
"@typescript-eslint/no-shadow": "error",
|
|
23
|
+
"@typescript-eslint/no-unused-vars": ["error"],
|
|
24
|
+
"@typescript-eslint/no-useless-constructor": ["error"],
|
|
25
|
+
"@typescript-eslint/array-type": ["error", {
|
|
26
|
+
default: "array",
|
|
27
|
+
readonly: "array"
|
|
28
|
+
}],
|
|
29
|
+
"@typescript-eslint/no-misused-promises": ["error", { checksVoidReturn: { arguments: false } }],
|
|
30
|
+
"@typescript-eslint/no-use-before-define": ["error"],
|
|
31
|
+
"@typescript-eslint/consistent-type-imports": ["error", {
|
|
32
|
+
fixStyle: "inline-type-imports",
|
|
33
|
+
disallowTypeAnnotations: false
|
|
34
|
+
}],
|
|
35
|
+
"@typescript-eslint/naming-convention": ["error", {
|
|
36
|
+
selector: ["typeLike"],
|
|
37
|
+
format: ["PascalCase"],
|
|
38
|
+
custom: {
|
|
39
|
+
regex: "^((I|T|E|G|C)[A-Z][a-z]|[A-Z]{1,2}$)",
|
|
40
|
+
match: false
|
|
41
|
+
}
|
|
42
|
+
}]
|
|
43
|
+
} };
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/utils/removePluginsFromConfigs.ts
|
|
46
|
+
function removePluginsFromConfigs(configs) {
|
|
47
|
+
return configs.map((config) => {
|
|
48
|
+
const { plugins, ...rest } = config;
|
|
49
|
+
return rest;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { typescript_default as n, removePluginsFromConfigs as t };
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=removePluginsFromConfigs-DXGEhx1r.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removePluginsFromConfigs-DXGEhx1r.js","names":[],"sources":["../src/rules/typescript.ts","../src/utils/removePluginsFromConfigs.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nconst overriddenRules: Linter.RulesRecord = {\n indent: 'off',\n 'no-undef': 'off',\n 'no-shadow': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n 'no-extra-parens': 'off',\n '@typescript-eslint/no-extra-parens': 'off',\n '@typescript-eslint/space-before-function-paren': 'off',\n 'no-unused-vars': 'off',\n 'no-useless-constructor': 'off',\n '@typescript-eslint/indent': 'off',\n semi: 'off',\n '@typescript-eslint/semi': 'off',\n 'react/jsx-filename-extension': 'off',\n 'no-use-before-define': 'off',\n '@typescript-eslint/lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/space-before-blocks': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n 'no-redeclare': 'off',\n // https://eslint.style/rules/ts/function-call-spacing\n '@typescript-eslint/func-call-spacing': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n '@typescript-eslint/no-shadow': 'error',\n '@typescript-eslint/no-unused-vars': ['error'],\n '@typescript-eslint/no-useless-constructor': ['error'],\n '@typescript-eslint/array-type': ['error', { default: 'array', readonly: 'array' }],\n '@typescript-eslint/no-misused-promises': ['error', {\n checksVoidReturn: { arguments: false },\n }],\n '@typescript-eslint/no-use-before-define': ['error'],\n '@typescript-eslint/consistent-type-imports': ['error', {\n fixStyle: 'inline-type-imports',\n disallowTypeAnnotations: false,\n }],\n '@typescript-eslint/naming-convention': ['error', {\n selector: ['typeLike'],\n format: ['PascalCase'],\n custom: {\n regex: '^((I|T|E|G|C)[A-Z][a-z]|[A-Z]{1,2}$)',\n match: false,\n },\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport function removePluginsFromConfigs (configs: Linter.Config[]): Linter.Config[] {\n return configs.map(config => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { plugins, ...rest } = config;\n\n return rest;\n });\n}\n"],"mappings":"AA0BA,IAAA,qBAAe,EACX,OAAO;CAxBP,QAAQ;CACR,YAAY;CACZ,aAAa;CACb,mCAAmC;CACnC,mBAAmB;CACnB,sCAAsC;CACtC,kDAAkD;CAClD,kBAAkB;CAClB,0BAA0B;CAC1B,6BAA6B;CAC7B,MAAM;CACN,2BAA2B;CAC3B,gCAAgC;CAChC,wBAAwB;CACxB,kDAAkD;CAClD,oCAAoC;CACpC,0CAA0C;CAC1C,2CAA2C;CAC3C,gBAAgB;CAEhB,wCAAwC;CAMpC,gCAAgC;CAChC,qCAAqC,CAAC,QAAQ;CAC9C,6CAA6C,CAAC,QAAQ;CACtD,iCAAiC,CAAC,SAAS;EAAE,SAAS;EAAS,UAAU;EAAS,CAAC;CACnF,0CAA0C,CAAC,SAAS,EAChD,kBAAkB,EAAE,WAAW,OAAO,EACzC,CAAC;CACF,2CAA2C,CAAC,QAAQ;CACpD,8CAA8C,CAAC,SAAS;EACpD,UAAU;EACV,yBAAyB;EAC5B,CAAC;CACF,wCAAwC,CAAC,SAAS;EAC9C,UAAU,CAAC,WAAW;EACtB,QAAQ,CAAC,aAAa;EACtB,QAAQ;GACJ,OAAO;GACP,OAAO;GACV;EACJ,CAAC;CACL,EACa;;;AChDlB,SAAgB,yBAA0B,SAAwB;CAC9D,OAAO,QAAQ,KAAI,WAAS;EAExB,MAAM,EAAE,SAAS,GAAG,SAAS;EAE7B,OAAO;GACT"}
|