@trebired/code-discipline 1.5.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +165 -271
- package/dist/checks/fix-folderization.d.ts.map +1 -1
- package/dist/checks/fix-folderization.js +8 -14
- package/dist/checks/fix-folderization.js.map +1 -1
- package/dist/checks/index.d.ts +4 -3
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +107 -76
- package/dist/checks/index.js.map +1 -1
- package/dist/checks/rule-slugs.d.ts +15 -0
- package/dist/checks/rule-slugs.d.ts.map +1 -0
- package/dist/checks/rule-slugs.js +62 -0
- package/dist/checks/rule-slugs.js.map +1 -0
- package/dist/checks/rules/dry.d.ts +7 -0
- package/dist/checks/rules/dry.d.ts.map +1 -0
- package/dist/checks/rules/dry.js +913 -0
- package/dist/checks/rules/dry.js.map +1 -0
- package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -1
- package/dist/checks/rules/folderize-compound-files.js +0 -1
- package/dist/checks/rules/folderize-compound-files.js.map +1 -1
- package/dist/checks/rules/max-file-lines.d.ts.map +1 -1
- package/dist/checks/rules/max-file-lines.js +0 -1
- package/dist/checks/rules/max-file-lines.js.map +1 -1
- package/dist/checks/rules/max-function-lines.d.ts.map +1 -1
- package/dist/checks/rules/max-function-lines.js +0 -1
- package/dist/checks/rules/max-function-lines.js.map +1 -1
- package/dist/checks/types.d.ts +49 -26
- package/dist/checks/types.d.ts.map +1 -1
- package/dist/cli/run-cli.d.ts.map +1 -1
- package/dist/cli/run-cli.js +22 -31
- package/dist/cli/run-cli.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -3
- package/dist/cli.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +122 -16
- package/dist/config/index.js.map +1 -1
- package/dist/config/normalize-check-options.d.ts +2 -2
- package/dist/config/normalize-check-options.d.ts.map +1 -1
- package/dist/config/normalize-check-options.js +6 -2
- package/dist/config/normalize-check-options.js.map +1 -1
- package/dist/config/normalize-rule-options.d.ts +9 -9
- package/dist/config/normalize-rule-options.d.ts.map +1 -1
- package/dist/config/normalize-rule-options.js +58 -15
- package/dist/config/normalize-rule-options.js.map +1 -1
- package/dist/config/normalize-sync-imports-options.d.ts.map +1 -1
- package/dist/config/normalize-sync-imports-options.js +8 -12
- package/dist/config/normalize-sync-imports-options.js.map +1 -1
- package/dist/imports/aliases.d.ts.map +1 -1
- package/dist/imports/aliases.js +6 -2
- package/dist/imports/aliases.js.map +1 -1
- package/dist/imports/check-sync-imports.d.ts.map +1 -1
- package/dist/imports/check-sync-imports.js +18 -2
- package/dist/imports/check-sync-imports.js.map +1 -1
- package/dist/imports/sync-imports.d.ts.map +1 -1
- package/dist/imports/sync-imports.js +23 -18
- package/dist/imports/sync-imports.js.map +1 -1
- package/dist/imports/types.d.ts +12 -6
- package/dist/imports/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/run.d.ts +15 -18
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +9 -38
- package/dist/run.js.map +1 -1
- package/dist/runtime/orchestrate.d.ts +2 -3
- package/dist/runtime/orchestrate.d.ts.map +1 -1
- package/dist/runtime/orchestrate.js +0 -10
- package/dist/runtime/orchestrate.js.map +1 -1
- package/dist/runtime/runtime-imports-sync.d.ts +12 -3
- package/dist/runtime/runtime-imports-sync.d.ts.map +1 -1
- package/dist/runtime/runtime-imports-sync.js +34 -32
- package/dist/runtime/runtime-imports-sync.js.map +1 -1
- package/dist/runtime/tsconfig-paths.d.ts +1 -1
- package/dist/runtime/tsconfig-paths.d.ts.map +1 -1
- package/dist/runtime/tsconfig-paths.js +1 -1
- package/dist/runtime/tsconfig-paths.js.map +1 -1
- package/dist/shared/constants.d.ts +1 -2
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +1 -2
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/discipline-types.d.ts +3 -6
- package/dist/shared/discipline-types.d.ts.map +1 -1
- package/dist/shared/logging.d.ts.map +1 -1
- package/dist/shared/logging.js +25 -39
- package/dist/shared/logging.js.map +1 -1
- package/dist/shared/utils.d.ts +2 -1
- package/dist/shared/utils.d.ts.map +1 -1
- package/dist/shared/utils.js +14 -1
- package/dist/shared/utils.js.map +1 -1
- package/package.json +2 -2
package/dist/config/index.js
CHANGED
|
@@ -1,27 +1,114 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
1
2
|
import path from "node:path";
|
|
2
3
|
import { pathToFileURL } from "node:url";
|
|
4
|
+
import ts from "typescript";
|
|
5
|
+
import { applyTextReplacements, collectModuleSpecifiers } from "../imports/module-specifiers.js";
|
|
3
6
|
import { InvalidCodeDisciplineConfigError } from "../shared/errors.js";
|
|
4
|
-
import { pathExists } from "../shared/utils.js";
|
|
7
|
+
import { isFile, pathExists } from "../shared/utils.js";
|
|
5
8
|
const DEFAULT_CONFIG_FILENAMES = [
|
|
6
|
-
"discipline.
|
|
7
|
-
"discipline.
|
|
8
|
-
"discipline.
|
|
9
|
-
"code-discipline.
|
|
10
|
-
"code-discipline.
|
|
11
|
-
"code-discipline.
|
|
9
|
+
"tb.code-discipline.ts",
|
|
10
|
+
"tb.code-discipline.mts",
|
|
11
|
+
"tb.code-discipline.mjs",
|
|
12
|
+
"tb.code-discipline.js",
|
|
13
|
+
"tb.code-discipline.cts",
|
|
14
|
+
"tb.code-discipline.cjs",
|
|
15
|
+
];
|
|
16
|
+
const NODE_TRANSPILE_EXTENSIONS = new Set([
|
|
17
|
+
".js",
|
|
18
|
+
".jsx",
|
|
19
|
+
".mjs",
|
|
20
|
+
".mts",
|
|
21
|
+
".ts",
|
|
22
|
+
".tsx",
|
|
23
|
+
]);
|
|
24
|
+
const CONFIG_RESOLUTION_EXTENSIONS = [
|
|
25
|
+
".ts",
|
|
26
|
+
".tsx",
|
|
27
|
+
".mts",
|
|
28
|
+
".js",
|
|
29
|
+
".jsx",
|
|
30
|
+
".mjs",
|
|
31
|
+
".cts",
|
|
32
|
+
".cjs",
|
|
12
33
|
];
|
|
13
34
|
function defineCodeDisciplineConfig(config) {
|
|
14
35
|
return config;
|
|
15
36
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
37
|
+
function isBunRuntime() {
|
|
38
|
+
return typeof Bun !== "undefined";
|
|
39
|
+
}
|
|
40
|
+
function shouldTranspileConfigForNode(filePath) {
|
|
41
|
+
return !isBunRuntime() && NODE_TRANSPILE_EXTENSIONS.has(path.extname(filePath).toLowerCase());
|
|
42
|
+
}
|
|
43
|
+
async function createNativeImportUrl(filePath) {
|
|
44
|
+
const stat = await fs.stat(filePath);
|
|
45
|
+
const url = pathToFileURL(filePath);
|
|
46
|
+
url.searchParams.set("mtime", String(Math.floor(stat.mtimeMs)));
|
|
47
|
+
return url.href;
|
|
48
|
+
}
|
|
49
|
+
async function resolveLocalConfigImport(importerPath, specifier) {
|
|
50
|
+
if (!specifier.startsWith(".") && !path.isAbsolute(specifier)) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const basePath = path.isAbsolute(specifier)
|
|
54
|
+
? path.resolve(specifier)
|
|
55
|
+
: path.resolve(path.dirname(importerPath), specifier);
|
|
56
|
+
const candidates = [basePath];
|
|
57
|
+
if (!path.extname(basePath)) {
|
|
58
|
+
for (const extension of CONFIG_RESOLUTION_EXTENSIONS) {
|
|
59
|
+
candidates.push(`${basePath}${extension}`);
|
|
60
|
+
}
|
|
61
|
+
for (const extension of CONFIG_RESOLUTION_EXTENSIONS) {
|
|
62
|
+
candidates.push(path.join(basePath, `index${extension}`));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const candidate of candidates) {
|
|
66
|
+
if (await isFile(candidate)) {
|
|
67
|
+
return candidate;
|
|
68
|
+
}
|
|
22
69
|
}
|
|
23
|
-
|
|
24
|
-
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
async function compileNodeConfigModuleToUrl(filePath, cache) {
|
|
73
|
+
const resolvedPath = await fs.realpath(filePath);
|
|
74
|
+
const cached = cache.get(resolvedPath);
|
|
75
|
+
if (cached)
|
|
76
|
+
return cached;
|
|
77
|
+
const pending = (async () => {
|
|
78
|
+
const sourceText = await fs.readFile(resolvedPath, "utf8");
|
|
79
|
+
const transpiled = ts.transpileModule(sourceText, {
|
|
80
|
+
fileName: resolvedPath,
|
|
81
|
+
compilerOptions: {
|
|
82
|
+
allowJs: true,
|
|
83
|
+
esModuleInterop: true,
|
|
84
|
+
jsx: ts.JsxEmit.ReactJSX,
|
|
85
|
+
module: ts.ModuleKind.ESNext,
|
|
86
|
+
target: ts.ScriptTarget.ES2022,
|
|
87
|
+
verbatimModuleSyntax: false,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
const replacements = [];
|
|
91
|
+
for (const occurrence of collectModuleSpecifiers(transpiled.outputText, resolvedPath)) {
|
|
92
|
+
const localImportPath = await resolveLocalConfigImport(resolvedPath, occurrence.specifier);
|
|
93
|
+
if (!localImportPath)
|
|
94
|
+
continue;
|
|
95
|
+
const extension = path.extname(localImportPath).toLowerCase();
|
|
96
|
+
const importUrl = shouldTranspileConfigForNode(localImportPath) && extension !== ".cjs"
|
|
97
|
+
? await compileNodeConfigModuleToUrl(localImportPath, cache)
|
|
98
|
+
: await createNativeImportUrl(localImportPath);
|
|
99
|
+
replacements.push({
|
|
100
|
+
start: occurrence.start,
|
|
101
|
+
end: occurrence.end,
|
|
102
|
+
value: importUrl,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const rewritten = applyTextReplacements(transpiled.outputText, replacements).text;
|
|
106
|
+
return `data:text/javascript;base64,${Buffer.from(rewritten, "utf8").toString("base64")}`;
|
|
107
|
+
})();
|
|
108
|
+
cache.set(resolvedPath, pending);
|
|
109
|
+
return pending;
|
|
110
|
+
}
|
|
111
|
+
function validateLoadedConfig(config, resolvedPath) {
|
|
25
112
|
if (!config || typeof config !== "object" || Array.isArray(config)) {
|
|
26
113
|
throw new InvalidCodeDisciplineConfigError("Config module must default-export a config object", {
|
|
27
114
|
filePath: resolvedPath,
|
|
@@ -32,6 +119,25 @@ async function loadCodeDisciplineConfigModule(projectRoot, configPath) {
|
|
|
32
119
|
configPath: resolvedPath,
|
|
33
120
|
};
|
|
34
121
|
}
|
|
122
|
+
async function importCodeDisciplineConfigModule(resolvedPath) {
|
|
123
|
+
if (!shouldTranspileConfigForNode(resolvedPath)) {
|
|
124
|
+
const imported = await import(await createNativeImportUrl(resolvedPath));
|
|
125
|
+
return imported.default;
|
|
126
|
+
}
|
|
127
|
+
const cache = new Map();
|
|
128
|
+
const moduleUrl = await compileNodeConfigModuleToUrl(resolvedPath, cache);
|
|
129
|
+
const imported = await import(moduleUrl);
|
|
130
|
+
return imported.default;
|
|
131
|
+
}
|
|
132
|
+
async function loadCodeDisciplineConfigModule(projectRoot, configPath) {
|
|
133
|
+
const resolvedPath = path.resolve(projectRoot, configPath);
|
|
134
|
+
if (!await pathExists(resolvedPath)) {
|
|
135
|
+
throw new InvalidCodeDisciplineConfigError("Config module was not found", {
|
|
136
|
+
filePath: resolvedPath,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return validateLoadedConfig(await importCodeDisciplineConfigModule(resolvedPath), resolvedPath);
|
|
140
|
+
}
|
|
35
141
|
async function findCodeDisciplineConfigModule(projectRoot) {
|
|
36
142
|
for (const filename of DEFAULT_CONFIG_FILENAMES) {
|
|
37
143
|
const resolvedPath = path.resolve(projectRoot, filename);
|
|
@@ -52,5 +158,5 @@ async function loadResolvedCodeDisciplineConfig(projectRoot, configPath) {
|
|
|
52
158
|
}
|
|
53
159
|
return loadCodeDisciplineConfigModule(projectRoot, resolvedPath);
|
|
54
160
|
}
|
|
55
|
-
export { DEFAULT_CONFIG_FILENAMES, defineCodeDisciplineConfig, findCodeDisciplineConfigModule, loadCodeDisciplineConfigModule, loadResolvedCodeDisciplineConfig };
|
|
161
|
+
export { DEFAULT_CONFIG_FILENAMES, defineCodeDisciplineConfig, findCodeDisciplineConfigModule, loadCodeDisciplineConfigModule, loadResolvedCodeDisciplineConfig, };
|
|
56
162
|
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,wBAAwB,GAAG;IAC/B,uBAAuB;IACvB,wBAAwB;IACxB,wBAAwB;IACxB,uBAAuB;IACvB,wBAAwB;IACxB,wBAAwB;CACzB,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IACxC,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG;IACnC,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAOF,SAAS,0BAA0B,CAAC,MAA4B;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,OAAO,GAAG,KAAK,WAAW,CAAC;AACpC,CAAC;AAED,SAAS,4BAA4B,CAAC,QAAgB;IACpD,OAAO,CAAC,YAAY,EAAE,IAAI,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAChG,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IACnD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACpC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,YAAoB,EACpB,SAAiB;IAEjB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACzB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE9B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,KAAK,MAAM,SAAS,IAAI,4BAA4B,EAAE,CAAC;YACrD,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,SAAS,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,4BAA4B,EAAE,CAAC;YACrD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,QAAgB,EAChB,KAAmC;IAEnC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;QAC1B,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE;YAChD,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE;gBACf,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,IAAI;gBACrB,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ;gBACxB,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;gBAC5B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;gBAC9B,oBAAoB,EAAE,KAAK;aAC5B;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,KAAK,MAAM,UAAU,IAAI,uBAAuB,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;YACtF,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;YAC3F,IAAI,CAAC,eAAe;gBAAE,SAAS;YAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,4BAA4B,CAAC,eAAe,CAAC,IAAI,SAAS,KAAK,MAAM;gBACrF,CAAC,CAAC,MAAM,4BAA4B,CAAC,eAAe,EAAE,KAAK,CAAC;gBAC5D,CAAC,CAAC,MAAM,qBAAqB,CAAC,eAAe,CAAC,CAAC;YAEjD,YAAY,CAAC,IAAI,CAAC;gBAChB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,GAAG,EAAE,UAAU,CAAC,GAAG;gBACnB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC;QAClF,OAAO,+BAA+B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5F,CAAC,CAAC,EAAE,CAAC;IAEL,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAe,EACf,YAAoB;IAEpB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,gCAAgC,CAAC,mDAAmD,EAAE;YAC9F,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAA8B;QACtC,UAAU,EAAE,YAAY;KACzB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gCAAgC,CAAC,YAAoB;IAClE,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,qBAAqB,CAAC,YAAY,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,4BAA4B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,8BAA8B,CAAC,WAAmB,EAAE,UAAkB;IACnF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAE3D,IAAI,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,gCAAgC,CAAC,6BAA6B,EAAE;YACxE,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,oBAAoB,CACzB,MAAM,gCAAgC,CAAC,YAAY,CAAC,EACpD,YAAY,CACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,8BAA8B,CAAC,WAAmB;IAC/D,KAAK,MAAM,QAAQ,IAAI,wBAAwB,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACzD,IAAI,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACnC,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,gCAAgC,CAAC,WAAmB,EAAE,UAAmB;IACtF,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC;QACvC,CAAC,CAAC,MAAM,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,gCAAgC,CAAC,4CAA4C,EAAE;YACvF,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,8BAA8B,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AACnE,CAAC;AAED,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,gCAAgC,GACjC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CheckCodeDisciplineOptions, NormalizedCheckCodeDisciplineOptions } from "../checks/types.js";
|
|
2
|
-
declare function normalizeCheckCodeDisciplineOptions(options: CheckCodeDisciplineOptions): Promise<NormalizedCheckCodeDisciplineOptions>;
|
|
1
|
+
import type { CheckCodeDisciplineOptions, CodeDisciplineMode, FixCodeDisciplineOptions, NormalizedCheckCodeDisciplineOptions } from "../checks/types.js";
|
|
2
|
+
declare function normalizeCheckCodeDisciplineOptions(options: CheckCodeDisciplineOptions | FixCodeDisciplineOptions, mode: CodeDisciplineMode): Promise<NormalizedCheckCodeDisciplineOptions>;
|
|
3
3
|
export { normalizeCheckCodeDisciplineOptions };
|
|
4
4
|
//# sourceMappingURL=normalize-check-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-check-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"normalize-check-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,wBAAwB,EACxB,oCAAoC,EACrC,MAAM,oBAAoB,CAAC;AAW5B,iBAAe,mCAAmC,CAChD,OAAO,EAAE,0BAA0B,GAAG,wBAAwB,EAC9D,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,oCAAoC,CAAC,CAqB/C;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { normalizeOnlyRules } from "../checks/rule-slugs.js";
|
|
2
|
+
import { normalizeDryRule, normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule, } from "./normalize-rule-options.js";
|
|
2
3
|
import { normalizeSourceOptions } from "./normalize-source-options.js";
|
|
3
|
-
async function normalizeCheckCodeDisciplineOptions(options) {
|
|
4
|
+
async function normalizeCheckCodeDisciplineOptions(options, mode) {
|
|
4
5
|
const source = await normalizeSourceOptions(options);
|
|
5
6
|
return {
|
|
6
7
|
...source,
|
|
8
|
+
configPath: options.configPath,
|
|
7
9
|
logging: {
|
|
8
10
|
enabled: options.logging?.enabled ?? Boolean(options.logging?.logger || options.logging?.adapter),
|
|
9
11
|
logger: options.logging?.logger,
|
|
10
12
|
adapter: options.logging?.adapter,
|
|
11
13
|
quiet: options.logging?.quiet ?? false,
|
|
12
14
|
},
|
|
15
|
+
onlyRules: normalizeOnlyRules(mode, options.onlyRules, options.rules),
|
|
13
16
|
rules: {
|
|
17
|
+
dry: normalizeDryRule(options.rules?.dry),
|
|
14
18
|
maxFileLines: normalizeMaxFileLinesRule(options.rules?.maxFileLines),
|
|
15
19
|
maxFunctionLines: normalizeMaxFunctionLinesRule(options.rules?.maxFunctionLines),
|
|
16
20
|
folderizeCompoundFiles: normalizeFolderizeCompoundFilesRule(options.rules?.folderizeCompoundFiles),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-check-options.js","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize-check-options.js","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,mCAAmC,EACnC,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,UAAU,mCAAmC,CAChD,OAA8D,EAC9D,IAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;YACjG,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO;YACjC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK;SACvC;QACD,SAAS,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC;QACrE,KAAK,EAAE;YACL,GAAG,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;YACzC,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;YACpE,gBAAgB,EAAE,6BAA6B,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC;YAChF,sBAAsB,EAAE,mCAAmC,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC;YAClG,WAAW,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;SAClE;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import type { FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, MaxFunctionLinesRuleOptions } from "../checks/types.js";
|
|
2
|
-
import type { SyncImportsRuleOptions } from "../imports/types.js";
|
|
3
|
-
import type { CodeDisciplineSeverity } from "../shared/discipline-types.js";
|
|
1
|
+
import type { CodeDisciplineSyncImportsRuleOptions, DryRuleOptions, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, MaxFunctionLinesRuleOptions, NormalizedDryRule } from "../checks/types.js";
|
|
4
2
|
declare function normalizeMaxFileLinesRule(rule: MaxFileLinesRuleOptions | undefined): {
|
|
5
|
-
severity: CodeDisciplineSeverity;
|
|
6
3
|
max: number;
|
|
7
4
|
};
|
|
8
5
|
declare function normalizeMaxFunctionLinesRule(rule: MaxFunctionLinesRuleOptions | undefined): {
|
|
9
|
-
severity: CodeDisciplineSeverity;
|
|
10
6
|
max: number;
|
|
11
7
|
};
|
|
12
8
|
declare function normalizeFolderizeCompoundFilesRule(rule: FolderizeCompoundFilesRuleOptions | undefined): {
|
|
13
|
-
severity: CodeDisciplineSeverity;
|
|
14
9
|
fix: boolean;
|
|
15
10
|
separators: string[];
|
|
16
11
|
};
|
|
17
|
-
declare function normalizeSyncImportsRule(rule:
|
|
18
|
-
severity: CodeDisciplineSeverity;
|
|
12
|
+
declare function normalizeSyncImportsRule(rule: CodeDisciplineSyncImportsRuleOptions | undefined): {
|
|
19
13
|
fix: boolean;
|
|
14
|
+
sourceRoot: string;
|
|
20
15
|
tsconfigPath: string;
|
|
16
|
+
sourceExtensions: string[];
|
|
17
|
+
excludeDirs: string[];
|
|
21
18
|
alias: {
|
|
22
19
|
prefix?: string;
|
|
23
20
|
strategy?: "random" | "relative-path-hash" | "relative-path-slug" | import("../index.js").AliasStrategyFn;
|
|
24
21
|
randomLength?: number;
|
|
25
22
|
};
|
|
26
23
|
allowRelative: string[] | import("../index.js").AllowRelativeFn;
|
|
24
|
+
packageJsonImports: import("../index.js").PackageJsonImportsSyncOptions;
|
|
25
|
+
logging: import("../index.js").LoggingOptions;
|
|
27
26
|
};
|
|
28
|
-
|
|
27
|
+
declare function normalizeDryRule(rule: DryRuleOptions | undefined): NormalizedDryRule | undefined;
|
|
28
|
+
export { normalizeDryRule, normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule };
|
|
29
29
|
//# sourceMappingURL=normalize-rule-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-rule-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize-rule-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,oCAAoC,EACpC,cAAc,EACd,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAsB5B,iBAAS,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS;;EAgB3E;AAED,iBAAS,6BAA6B,CAAC,IAAI,EAAE,2BAA2B,GAAG,SAAS;;EAgBnF;AAED,iBAAS,mCAAmC,CAAC,IAAI,EAAE,iCAAiC,GAAG,SAAS;;;EAiB/F;AAED,iBAAS,wBAAwB,CAAC,IAAI,EAAE,oCAAoC,GAAG,SAAS;;;;;;;;;;;;;;EAwBvF;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAyCzF;AAMD,OAAO,EAAE,gBAAgB,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_ALLOW_RELATIVE, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_RULE_FIX,
|
|
1
|
+
import { DEFAULT_ALLOW_RELATIVE, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_RULE_FIX, } from "../shared/constants.js";
|
|
2
2
|
import { InvalidCodeDisciplineConfigError } from "../shared/errors.js";
|
|
3
3
|
function assertRemovedKeys(ruleName, source, keys) {
|
|
4
4
|
for (const key of keys) {
|
|
@@ -10,20 +10,20 @@ function assertRemovedKeys(ruleName, source, keys) {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
throw new InvalidCodeDisciplineConfigError(`${ruleName}.severity must be "error" or "warning"`, {
|
|
13
|
+
function assertSeverityRemoved(ruleName, rule) {
|
|
14
|
+
if ("severity" in rule) {
|
|
15
|
+
throw new InvalidCodeDisciplineConfigError(`${ruleName}.severity is no longer supported`, {
|
|
17
16
|
rule: ruleName,
|
|
18
|
-
|
|
17
|
+
key: "severity",
|
|
19
18
|
});
|
|
20
19
|
}
|
|
21
|
-
return severity;
|
|
22
20
|
}
|
|
23
21
|
function normalizeMaxFileLinesRule(rule) {
|
|
24
22
|
if (!rule)
|
|
25
23
|
return undefined;
|
|
26
|
-
|
|
24
|
+
const source = rule;
|
|
25
|
+
assertRemovedKeys("maxFileLines", source, ["enabled", "stop", "fix"]);
|
|
26
|
+
assertSeverityRemoved("maxFileLines", source);
|
|
27
27
|
if (!Number.isFinite(rule?.max)) {
|
|
28
28
|
throw new InvalidCodeDisciplineConfigError("maxFileLines.max must be a finite number when the rule is configured", {
|
|
29
29
|
rule: "maxFileLines",
|
|
@@ -31,14 +31,15 @@ function normalizeMaxFileLinesRule(rule) {
|
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
return {
|
|
34
|
-
severity: normalizeSeverity("maxFileLines", rule),
|
|
35
34
|
max: Math.max(1, Math.floor(rule.max)),
|
|
36
35
|
};
|
|
37
36
|
}
|
|
38
37
|
function normalizeMaxFunctionLinesRule(rule) {
|
|
39
38
|
if (!rule)
|
|
40
39
|
return undefined;
|
|
41
|
-
|
|
40
|
+
const source = rule;
|
|
41
|
+
assertRemovedKeys("maxFunctionLines", source, ["enabled", "stop", "fix"]);
|
|
42
|
+
assertSeverityRemoved("maxFunctionLines", source);
|
|
42
43
|
if (!Number.isFinite(rule?.max)) {
|
|
43
44
|
throw new InvalidCodeDisciplineConfigError("maxFunctionLines.max must be a finite number when the rule is configured", {
|
|
44
45
|
rule: "maxFunctionLines",
|
|
@@ -46,14 +47,15 @@ function normalizeMaxFunctionLinesRule(rule) {
|
|
|
46
47
|
});
|
|
47
48
|
}
|
|
48
49
|
return {
|
|
49
|
-
severity: normalizeSeverity("maxFunctionLines", rule),
|
|
50
50
|
max: Math.max(1, Math.floor(rule.max)),
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
53
|
function normalizeFolderizeCompoundFilesRule(rule) {
|
|
54
54
|
if (!rule)
|
|
55
55
|
return undefined;
|
|
56
|
-
|
|
56
|
+
const source = rule;
|
|
57
|
+
assertRemovedKeys("folderizeCompoundFiles", source, ["enabled", "stop", "suffixes"]);
|
|
58
|
+
assertSeverityRemoved("folderizeCompoundFiles", source);
|
|
57
59
|
const separators = uniqueStrings(rule?.separators ?? DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS);
|
|
58
60
|
if (separators.length === 0) {
|
|
59
61
|
throw new InvalidCodeDisciplineConfigError("folderizeCompoundFiles.separators must contain at least one separator", {
|
|
@@ -61,7 +63,6 @@ function normalizeFolderizeCompoundFilesRule(rule) {
|
|
|
61
63
|
});
|
|
62
64
|
}
|
|
63
65
|
return {
|
|
64
|
-
severity: normalizeSeverity("folderizeCompoundFiles", rule),
|
|
65
66
|
fix: Boolean(rule.fix ?? DEFAULT_RULE_FIX),
|
|
66
67
|
separators,
|
|
67
68
|
};
|
|
@@ -71,6 +72,7 @@ function normalizeSyncImportsRule(rule) {
|
|
|
71
72
|
return undefined;
|
|
72
73
|
const source = (rule ?? {});
|
|
73
74
|
assertRemovedKeys("syncImports", source, ["enabled", "stop", "rewrite", "keepRelative"]);
|
|
75
|
+
assertSeverityRemoved("syncImports", source);
|
|
74
76
|
if ("imports" in source) {
|
|
75
77
|
throw new InvalidCodeDisciplineConfigError("syncImports.imports is no longer supported; use allowRelative directly under syncImports", {
|
|
76
78
|
rule: "syncImports",
|
|
@@ -78,15 +80,56 @@ function normalizeSyncImportsRule(rule) {
|
|
|
78
80
|
});
|
|
79
81
|
}
|
|
80
82
|
return {
|
|
81
|
-
severity: normalizeSeverity("syncImports", rule),
|
|
82
83
|
fix: Boolean(rule?.fix ?? DEFAULT_RULE_FIX),
|
|
84
|
+
sourceRoot: rule?.sourceRoot,
|
|
83
85
|
tsconfigPath: rule?.tsconfigPath,
|
|
86
|
+
sourceExtensions: rule?.sourceExtensions,
|
|
87
|
+
excludeDirs: rule?.excludeDirs,
|
|
84
88
|
alias: rule?.alias,
|
|
85
89
|
allowRelative: rule?.allowRelative ?? DEFAULT_ALLOW_RELATIVE,
|
|
90
|
+
packageJsonImports: rule?.packageJsonImports,
|
|
91
|
+
logging: rule?.logging,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function normalizeDryRule(rule) {
|
|
95
|
+
if (!rule)
|
|
96
|
+
return undefined;
|
|
97
|
+
const source = rule;
|
|
98
|
+
assertRemovedKeys("dry", source, ["enabled", "stop"]);
|
|
99
|
+
assertSeverityRemoved("dry", source);
|
|
100
|
+
if (!Array.isArray(rule.helpers) || rule.helpers.length === 0) {
|
|
101
|
+
throw new InvalidCodeDisciplineConfigError("dry.helpers must contain at least one helper", {
|
|
102
|
+
rule: "dry",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const helpers = rule.helpers.map((helper, index) => {
|
|
106
|
+
const from = String(helper?.from ?? "").trim();
|
|
107
|
+
const exportName = String(helper?.exportName ?? "").trim();
|
|
108
|
+
if (!from) {
|
|
109
|
+
throw new InvalidCodeDisciplineConfigError("dry.helpers[].from must be a non-empty string", {
|
|
110
|
+
rule: "dry",
|
|
111
|
+
index,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
if (!exportName) {
|
|
115
|
+
throw new InvalidCodeDisciplineConfigError("dry.helpers[].exportName must be a non-empty string", {
|
|
116
|
+
rule: "dry",
|
|
117
|
+
index,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
from,
|
|
122
|
+
exportName,
|
|
123
|
+
key: helper?.key ? String(helper.key).trim() : undefined,
|
|
124
|
+
};
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
fix: Boolean(rule.fix ?? DEFAULT_RULE_FIX),
|
|
128
|
+
helpers,
|
|
86
129
|
};
|
|
87
130
|
}
|
|
88
131
|
function uniqueStrings(values) {
|
|
89
132
|
return Array.from(new Set(values));
|
|
90
133
|
}
|
|
91
|
-
export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule };
|
|
134
|
+
export { normalizeDryRule, normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule, normalizeMaxFunctionLinesRule, normalizeSyncImportsRule };
|
|
92
135
|
//# sourceMappingURL=normalize-rule-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-rule-options.js","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,0CAA0C,EAC1C,gBAAgB,
|
|
1
|
+
{"version":3,"file":"normalize-rule-options.js","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-sync-imports-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize-sync-imports-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI5F,iBAAe,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CA+C7G;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_ALLOW_RELATIVE, DEFAULT_RULE_FIX,
|
|
2
|
+
import { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_ALLOW_RELATIVE, DEFAULT_RULE_FIX, } from "../shared/constants.js";
|
|
3
3
|
import { InvalidCodeDisciplineConfigError, InvalidTsconfigPathError } from "../shared/errors.js";
|
|
4
4
|
import { isDirectory } from "../shared/utils.js";
|
|
5
5
|
import { normalizeSourceOptions } from "./normalize-source-options.js";
|
|
6
|
-
function normalizeSeverity(value) {
|
|
7
|
-
const severity = value ?? DEFAULT_RULE_SEVERITY;
|
|
8
|
-
if (severity !== "error" && severity !== "warning") {
|
|
9
|
-
throw new InvalidCodeDisciplineConfigError('syncImports.severity must be "error" or "warning"', {
|
|
10
|
-
key: "severity",
|
|
11
|
-
value: severity,
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
return severity;
|
|
15
|
-
}
|
|
16
6
|
async function normalizeSyncImportsOptions(options) {
|
|
17
7
|
if ("imports" in options) {
|
|
18
8
|
throw new InvalidCodeDisciplineConfigError("syncImports.imports is no longer supported; use allowRelative instead", {
|
|
@@ -26,6 +16,11 @@ async function normalizeSyncImportsOptions(options) {
|
|
|
26
16
|
});
|
|
27
17
|
}
|
|
28
18
|
}
|
|
19
|
+
if ("severity" in options) {
|
|
20
|
+
throw new InvalidCodeDisciplineConfigError("syncImports.severity is no longer supported", {
|
|
21
|
+
key: "severity",
|
|
22
|
+
});
|
|
23
|
+
}
|
|
29
24
|
const source = await normalizeSourceOptions(options);
|
|
30
25
|
const tsconfigInput = options.tsconfigPath ?? path.join(source.projectRoot, "tsconfig.json");
|
|
31
26
|
const tsconfigPath = path.isAbsolute(tsconfigInput) ? path.resolve(tsconfigInput) : path.resolve(source.projectRoot, tsconfigInput);
|
|
@@ -34,8 +29,8 @@ async function normalizeSyncImportsOptions(options) {
|
|
|
34
29
|
}
|
|
35
30
|
return {
|
|
36
31
|
...source,
|
|
32
|
+
configPath: options.configPath,
|
|
37
33
|
tsconfigPath,
|
|
38
|
-
severity: normalizeSeverity(options.severity),
|
|
39
34
|
fix: options.fix ?? DEFAULT_RULE_FIX,
|
|
40
35
|
alias: {
|
|
41
36
|
prefix: options.alias?.prefix ?? DEFAULT_ALIAS_PREFIX,
|
|
@@ -43,6 +38,7 @@ async function normalizeSyncImportsOptions(options) {
|
|
|
43
38
|
randomLength: Math.max(1, Math.floor(options.alias?.randomLength ?? DEFAULT_ALIAS_RANDOM_LENGTH)),
|
|
44
39
|
},
|
|
45
40
|
allowRelative: options.allowRelative ?? DEFAULT_ALLOW_RELATIVE,
|
|
41
|
+
packageJsonImports: options.packageJsonImports,
|
|
46
42
|
logging: {
|
|
47
43
|
enabled: options.logging?.enabled ?? Boolean(options.logging?.logger || options.logging?.adapter),
|
|
48
44
|
logger: options.logging?.logger,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-sync-imports-options.js","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"normalize-sync-imports-options.js","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,UAAU,2BAA2B,CAAC,OAA2B;IACpE,IAAI,SAAS,IAAK,OAAmC,EAAE,CAAC;QACtD,MAAM,IAAI,gCAAgC,CAAC,uEAAuE,EAAE;YAClH,GAAG,EAAE,SAAS;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAU,EAAE,CAAC;QAC1E,IAAI,GAAG,IAAK,OAAmC,EAAE,CAAC;YAChD,MAAM,IAAI,gCAAgC,CAAC,eAAe,GAAG,yBAAyB,EAAE;gBACtF,GAAG;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,UAAU,IAAK,OAAmC,EAAE,CAAC;QACvD,MAAM,IAAI,gCAAgC,CAAC,6CAA6C,EAAE;YACxF,GAAG,EAAE,UAAU;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC7F,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACpI,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY;QACZ,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,gBAAgB;QACpC,KAAK,EAAE;YACL,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,oBAAoB;YACrD,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,IAAI,sBAAsB;YAC3D,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,2BAA2B,CAAC,CAAC;SAClG;QACD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,sBAAsB;QAC9D,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;YACjG,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO;YACjC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,KAAK;SACvC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AA0EjF,iBAAe,YAAY,CACzB,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,cAAc,EAAE,YAAY,CAAA;CAAE,CAAC,CAuCjE;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,iBAAiB,EAAE,EAChC,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,iBAAiB,CAAC,CAiB5B;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,iBAAiB,EAAE,EAChC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/imports/aliases.js
CHANGED
|
@@ -2,9 +2,13 @@ import fs from "node:fs/promises";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { resolveProjectPathTarget } from "./resolve.js";
|
|
4
4
|
import { generateAliasId } from "./strategies.js";
|
|
5
|
-
import { isInsideDirectory, parseTsconfigJson, pathExists, stableSerialize, toStableJson, wait } from "../shared/utils.js";
|
|
5
|
+
import { isInsideDirectory, parseTsconfigJson, pathExists, stableSerialize, toPosixPath, toStableJson, wait } from "../shared/utils.js";
|
|
6
6
|
const TSCONFIG_READ_RETRY_ATTEMPTS = 20;
|
|
7
7
|
const TSCONFIG_READ_RETRY_DELAY_MS = 50;
|
|
8
|
+
function toTsconfigPathTarget(relativeFromProjectRoot) {
|
|
9
|
+
const normalized = toPosixPath(relativeFromProjectRoot).replace(/^\.\/+/, "");
|
|
10
|
+
return normalized.startsWith("./") ? normalized : `./${normalized}`;
|
|
11
|
+
}
|
|
8
12
|
function normalizeTargetPath(projectRoot, targetPath) {
|
|
9
13
|
if (targetPath.includes("*"))
|
|
10
14
|
return null;
|
|
@@ -127,7 +131,7 @@ async function planTsconfigAliases(options, sourceFiles, logger) {
|
|
|
127
131
|
}
|
|
128
132
|
const managedPaths = {};
|
|
129
133
|
for (const record of aliasRecords) {
|
|
130
|
-
managedPaths[record.id] = [record.relativeFromProjectRoot];
|
|
134
|
+
managedPaths[record.id] = [toTsconfigPathTarget(record.relativeFromProjectRoot)];
|
|
131
135
|
}
|
|
132
136
|
const nextPaths = sortPathsRecord({
|
|
133
137
|
...existingState.passthroughPaths,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-sync-imports.d.ts","sourceRoot":"","sources":["../../src/imports/check-sync-imports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"check-sync-imports.d.ts","sourceRoot":"","sources":["../../src/imports/check-sync-imports.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAM7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAElF,iBAAe,2BAA2B,CACxC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,8BAA8B,GACtC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAiEpC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { collectPackageJsonImportsSyncState } from "../runtime/runtime-imports-sync.js";
|
|
3
4
|
import { planTsconfigAliases } from "./aliases.js";
|
|
4
5
|
import { collectModuleSpecifiers } from "./module-specifiers.js";
|
|
5
6
|
import { resolveRelativeImport } from "./resolve.js";
|
|
@@ -11,7 +12,6 @@ async function collectSyncImportViolations(sourceFiles, options, logger) {
|
|
|
11
12
|
if (aliasPlan.aliasesChanged) {
|
|
12
13
|
violations.push({
|
|
13
14
|
rule: "sync-imports",
|
|
14
|
-
severity: options.severity,
|
|
15
15
|
fix: options.fix,
|
|
16
16
|
filePath: path.relative(options.projectRoot, options.tsconfigPath) || "tsconfig.json",
|
|
17
17
|
message: "tsconfig paths are out of sync with the current source tree",
|
|
@@ -20,6 +20,23 @@ async function collectSyncImportViolations(sourceFiles, options, logger) {
|
|
|
20
20
|
},
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
+
const packageJsonSyncState = await collectPackageJsonImportsSyncState({
|
|
24
|
+
configPath: options.configPath,
|
|
25
|
+
options: options.packageJsonImports,
|
|
26
|
+
projectRoot: options.projectRoot,
|
|
27
|
+
tsconfigPath: options.tsconfigPath,
|
|
28
|
+
});
|
|
29
|
+
if (packageJsonSyncState?.changed) {
|
|
30
|
+
violations.push({
|
|
31
|
+
rule: "sync-imports",
|
|
32
|
+
fix: options.fix,
|
|
33
|
+
filePath: path.relative(options.projectRoot, packageJsonSyncState.packageJsonPath) || "package.json",
|
|
34
|
+
message: "package.json imports are out of sync with tsconfig paths",
|
|
35
|
+
details: {
|
|
36
|
+
importsCount: packageJsonSyncState.importsCount,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
23
40
|
for (const file of sourceFiles) {
|
|
24
41
|
const text = await fs.readFile(file.absolutePath, "utf8");
|
|
25
42
|
for (const occurrence of collectModuleSpecifiers(text, file.absolutePath)) {
|
|
@@ -35,7 +52,6 @@ async function collectSyncImportViolations(sourceFiles, options, logger) {
|
|
|
35
52
|
continue;
|
|
36
53
|
violations.push({
|
|
37
54
|
rule: "sync-imports",
|
|
38
|
-
severity: options.severity,
|
|
39
55
|
fix: options.fix,
|
|
40
56
|
filePath: file.relativeFromProjectRoot,
|
|
41
57
|
message: `relative import ${occurrence.specifier} should be rewritten to ${aliasId}`,
|