@trebired/code-discipline 0.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 +20 -0
- package/LICENSE +661 -0
- package/README.md +241 -0
- package/dist/checks/index.d.ts +4 -0
- package/dist/checks/index.d.ts.map +1 -0
- package/dist/checks/index.js +22 -0
- package/dist/checks/index.js.map +1 -0
- package/dist/checks/rules/folderize-compound-files.d.ts +5 -0
- package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -0
- package/dist/checks/rules/folderize-compound-files.js +37 -0
- package/dist/checks/rules/folderize-compound-files.js.map +1 -0
- package/dist/checks/rules/max-file-lines.d.ts +5 -0
- package/dist/checks/rules/max-file-lines.d.ts.map +1 -0
- package/dist/checks/rules/max-file-lines.js +30 -0
- package/dist/checks/rules/max-file-lines.js.map +1 -0
- package/dist/checks/types.d.ts +64 -0
- package/dist/checks/types.d.ts.map +1 -0
- package/dist/checks/types.js +2 -0
- package/dist/checks/types.js.map +1 -0
- package/dist/cli/run-cli.d.ts +13 -0
- package/dist/cli/run-cli.d.ts.map +1 -0
- package/dist/cli/run-cli.js +104 -0
- package/dist/cli/run-cli.js.map +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +10 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +49 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/normalize-check-options.d.ts +4 -0
- package/dist/config/normalize-check-options.d.ts.map +1 -0
- package/dist/config/normalize-check-options.js +14 -0
- package/dist/config/normalize-check-options.js.map +1 -0
- package/dist/config/normalize-rule-options.d.ts +14 -0
- package/dist/config/normalize-rule-options.d.ts.map +1 -0
- package/dist/config/normalize-rule-options.js +51 -0
- package/dist/config/normalize-rule-options.js.map +1 -0
- package/dist/config/normalize-source-options.d.ts +16 -0
- package/dist/config/normalize-source-options.d.ts.map +1 -0
- package/dist/config/normalize-source-options.js +24 -0
- package/dist/config/normalize-source-options.js.map +1 -0
- package/dist/config/normalize-sync-imports-options.d.ts +4 -0
- package/dist/config/normalize-sync-imports-options.d.ts.map +1 -0
- package/dist/config/normalize-sync-imports-options.js +34 -0
- package/dist/config/normalize-sync-imports-options.js.map +1 -0
- package/dist/imports/aliases.d.ts +9 -0
- package/dist/imports/aliases.d.ts.map +1 -0
- package/dist/imports/aliases.js +150 -0
- package/dist/imports/aliases.js.map +1 -0
- package/dist/imports/resolve.d.ts +7 -0
- package/dist/imports/resolve.d.ts.map +1 -0
- package/dist/imports/resolve.js +49 -0
- package/dist/imports/resolve.js.map +1 -0
- package/dist/imports/rewrite.d.ts +5 -0
- package/dist/imports/rewrite.d.ts.map +1 -0
- package/dist/imports/rewrite.js +139 -0
- package/dist/imports/rewrite.js.map +1 -0
- package/dist/imports/scan.d.ts +4 -0
- package/dist/imports/scan.d.ts.map +1 -0
- package/dist/imports/scan.js +44 -0
- package/dist/imports/scan.js.map +1 -0
- package/dist/imports/strategies.d.ts +7 -0
- package/dist/imports/strategies.d.ts.map +1 -0
- package/dist/imports/strategies.js +55 -0
- package/dist/imports/strategies.js.map +1 -0
- package/dist/imports/sync-imports.d.ts +4 -0
- package/dist/imports/sync-imports.d.ts.map +1 -0
- package/dist/imports/sync-imports.js +41 -0
- package/dist/imports/sync-imports.js.map +1 -0
- package/dist/imports/types.d.ts +104 -0
- package/dist/imports/types.d.ts.map +1 -0
- package/dist/imports/types.js +2 -0
- package/dist/imports/types.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/constants.d.ts +18 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/constants.js +18 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/errors.d.ts +34 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +64 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/logging-types.d.ts +18 -0
- package/dist/shared/logging-types.d.ts.map +1 -0
- package/dist/shared/logging-types.js +2 -0
- package/dist/shared/logging-types.js.map +1 -0
- package/dist/shared/logging.d.ts +5 -0
- package/dist/shared/logging.d.ts.map +1 -0
- package/dist/shared/logging.js +99 -0
- package/dist/shared/logging.js.map +1 -0
- package/dist/shared/utils.d.ts +24 -0
- package/dist/shared/utils.d.ts.map +1 -0
- package/dist/shared/utils.js +127 -0
- package/dist/shared/utils.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { CODE_DISCIPLINE_CONFIG_FILE } from "../shared/constants.js";
|
|
4
|
+
import { InvalidCodeDisciplineConfigError } from "../shared/errors.js";
|
|
5
|
+
import { pathExists } from "../shared/utils.js";
|
|
6
|
+
function defineCodeDisciplineConfig(config) {
|
|
7
|
+
return config;
|
|
8
|
+
}
|
|
9
|
+
function parseCodeDisciplineConfig(text, filePath) {
|
|
10
|
+
try {
|
|
11
|
+
const parsed = JSON.parse(text);
|
|
12
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
13
|
+
throw new InvalidCodeDisciplineConfigError("Config file must contain a JSON object", { filePath });
|
|
14
|
+
}
|
|
15
|
+
return parsed;
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
if (error instanceof InvalidCodeDisciplineConfigError) {
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
throw new InvalidCodeDisciplineConfigError("Failed to parse code-discipline config", {
|
|
22
|
+
filePath,
|
|
23
|
+
cause: error instanceof Error ? error.message : error,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async function loadCodeDisciplineConfig(projectRoot, configPath) {
|
|
28
|
+
const resolvedPath = configPath
|
|
29
|
+
? path.resolve(projectRoot, configPath)
|
|
30
|
+
: path.join(projectRoot, CODE_DISCIPLINE_CONFIG_FILE);
|
|
31
|
+
if (!await pathExists(resolvedPath)) {
|
|
32
|
+
if (configPath) {
|
|
33
|
+
throw new InvalidCodeDisciplineConfigError("Config file was not found", {
|
|
34
|
+
filePath: resolvedPath,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
config: {},
|
|
39
|
+
configPath: null,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const text = await fs.readFile(resolvedPath, "utf8");
|
|
43
|
+
return {
|
|
44
|
+
config: parseCodeDisciplineConfig(text, resolvedPath),
|
|
45
|
+
configPath: resolvedPath,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export { defineCodeDisciplineConfig, loadCodeDisciplineConfig };
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAG7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,SAAS,0BAA0B,CAAC,MAA4B;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY,EAAE,QAAgB;IAC/D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,gCAAgC,CAAC,wCAAwC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrG,CAAC;QAED,OAAO,MAA8B,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,gCAAgC,CAAC,wCAAwC,EAAE;YACnF,QAAQ;YACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;SACtD,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,WAAmB,EAAE,UAAmB;IAC9E,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC;QACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;IAExD,IAAI,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,gCAAgC,CAAC,2BAA2B,EAAE;gBACtE,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAErD,OAAO;QACL,MAAM,EAAE,yBAAyB,CAAC,IAAI,EAAE,YAAY,CAAC;QACrD,UAAU,EAAE,YAAY;KACzB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CheckCodeDisciplineOptions, NormalizedCheckCodeDisciplineOptions } from "../checks/types.js";
|
|
2
|
+
declare function normalizeCheckCodeDisciplineOptions(options: CheckCodeDisciplineOptions): Promise<NormalizedCheckCodeDisciplineOptions>;
|
|
3
|
+
export { normalizeCheckCodeDisciplineOptions };
|
|
4
|
+
//# sourceMappingURL=normalize-check-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-check-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAI3G,iBAAe,mCAAmC,CAChD,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,oCAAoC,CAAC,CAU/C;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule } from "./normalize-rule-options.js";
|
|
2
|
+
import { normalizeSourceOptions } from "./normalize-source-options.js";
|
|
3
|
+
async function normalizeCheckCodeDisciplineOptions(options) {
|
|
4
|
+
const source = await normalizeSourceOptions(options);
|
|
5
|
+
return {
|
|
6
|
+
...source,
|
|
7
|
+
rules: {
|
|
8
|
+
maxFileLines: normalizeMaxFileLinesRule(options.rules?.maxFileLines),
|
|
9
|
+
folderizeCompoundFiles: normalizeFolderizeCompoundFilesRule(options.rules?.folderizeCompoundFiles),
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export { normalizeCheckCodeDisciplineOptions };
|
|
14
|
+
//# sourceMappingURL=normalize-check-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-check-options.js","sourceRoot":"","sources":["../../src/config/normalize-check-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAC7G,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,UAAU,mCAAmC,CAChD,OAAmC;IAEnC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAErD,OAAO;QACL,GAAG,MAAM;QACT,KAAK,EAAE;YACL,YAAY,EAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC;YACpE,sBAAsB,EAAE,mCAAmC,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC;SACnG;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CodeDisciplineRuleSeverity, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions } from "../checks/types.js";
|
|
2
|
+
declare function normalizeMaxFileLinesRule(rule: MaxFileLinesRuleOptions | undefined): {
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
max: number;
|
|
5
|
+
severity: CodeDisciplineRuleSeverity;
|
|
6
|
+
};
|
|
7
|
+
declare function normalizeFolderizeCompoundFilesRule(rule: FolderizeCompoundFilesRuleOptions | undefined): {
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
separators: string[];
|
|
10
|
+
suffixes: string[];
|
|
11
|
+
severity: CodeDisciplineRuleSeverity;
|
|
12
|
+
};
|
|
13
|
+
export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule };
|
|
14
|
+
//# sourceMappingURL=normalize-rule-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-rule-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,0BAA0B,EAC1B,iCAAiC,EACjC,uBAAuB,EACxB,MAAM,oBAAoB,CAAC;AAM5B,iBAAS,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS;;;;EAuB3E;AAED,iBAAS,mCAAmC,CAAC,IAAI,EAAE,iCAAiC,GAAG,SAAS;;;;;EAsB/F;AAMD,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES, DEFAULT_MAX_FILE_LINES_SEVERITY, } from "../shared/constants.js";
|
|
2
|
+
import { InvalidCodeDisciplineConfigError } from "../shared/errors.js";
|
|
3
|
+
function normalizeSeverity(value) {
|
|
4
|
+
return value === "warn" ? "warn" : "error";
|
|
5
|
+
}
|
|
6
|
+
function normalizeMaxFileLinesRule(rule) {
|
|
7
|
+
const enabled = rule?.enabled ?? false;
|
|
8
|
+
if (!enabled) {
|
|
9
|
+
return {
|
|
10
|
+
enabled: false,
|
|
11
|
+
max: 0,
|
|
12
|
+
severity: normalizeSeverity(rule?.severity ?? DEFAULT_MAX_FILE_LINES_SEVERITY),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (!Number.isFinite(rule?.max)) {
|
|
16
|
+
throw new InvalidCodeDisciplineConfigError("maxFileLines.max must be a finite number when the rule is enabled", {
|
|
17
|
+
rule: "maxFileLines",
|
|
18
|
+
value: rule?.max,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
enabled: true,
|
|
23
|
+
max: Math.max(1, Math.floor(rule.max)),
|
|
24
|
+
severity: normalizeSeverity(rule?.severity ?? DEFAULT_MAX_FILE_LINES_SEVERITY),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function normalizeFolderizeCompoundFilesRule(rule) {
|
|
28
|
+
const separators = uniqueStrings(rule?.separators ?? DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS);
|
|
29
|
+
const suffixes = uniqueStrings(rule?.suffixes ?? DEFAULT_FOLDERIZE_COMPOUND_FILE_SUFFIXES);
|
|
30
|
+
if (separators.length === 0) {
|
|
31
|
+
throw new InvalidCodeDisciplineConfigError("folderizeCompoundFiles.separators must contain at least one separator", {
|
|
32
|
+
rule: "folderizeCompoundFiles",
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
if (suffixes.length === 0) {
|
|
36
|
+
throw new InvalidCodeDisciplineConfigError("folderizeCompoundFiles.suffixes must contain at least one suffix", {
|
|
37
|
+
rule: "folderizeCompoundFiles",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
enabled: rule?.enabled ?? false,
|
|
42
|
+
separators,
|
|
43
|
+
suffixes,
|
|
44
|
+
severity: normalizeSeverity(rule?.severity ?? DEFAULT_FOLDERIZE_COMPOUND_FILES_SEVERITY),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function uniqueStrings(values) {
|
|
48
|
+
return Array.from(new Set(values));
|
|
49
|
+
}
|
|
50
|
+
export { normalizeFolderizeCompoundFilesRule, normalizeMaxFileLinesRule };
|
|
51
|
+
//# sourceMappingURL=normalize-rule-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-rule-options.js","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yCAAyC,EACzC,0CAA0C,EAC1C,wCAAwC,EACxC,+BAA+B,GAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAOvE,SAAS,iBAAiB,CAAC,KAA6C;IACtE,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAC7C,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAyC;IAC1E,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,+BAA+B,CAAC;SAC/E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,gCAAgC,CAAC,mEAAmE,EAAE;YAC9G,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,IAAI,EAAE,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,GAAa,CAAC,CAAC;QACjD,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,+BAA+B,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,mCAAmC,CAAC,IAAmD;IAC9F,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,UAAU,IAAI,0CAA0C,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,IAAI,wCAAwC,CAAC,CAAC;IAE3F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,gCAAgC,CAAC,uEAAuE,EAAE;YAClH,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,gCAAgC,CAAC,kEAAkE,EAAE;YAC7G,IAAI,EAAE,wBAAwB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK;QAC/B,UAAU;QACV,QAAQ;QACR,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,yCAAyC,CAAC;KACzF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type NormalizedSourceOptions = {
|
|
2
|
+
projectRoot: string;
|
|
3
|
+
sourceRoot: string;
|
|
4
|
+
sourceRootRelative: string;
|
|
5
|
+
sourceExtensions: string[];
|
|
6
|
+
excludeDirs: string[];
|
|
7
|
+
};
|
|
8
|
+
declare function normalizeSourceOptions(options: {
|
|
9
|
+
projectRoot: string;
|
|
10
|
+
sourceRoot?: string;
|
|
11
|
+
sourceExtensions?: string[];
|
|
12
|
+
excludeDirs?: string[];
|
|
13
|
+
}): Promise<NormalizedSourceOptions>;
|
|
14
|
+
export { normalizeSourceOptions };
|
|
15
|
+
export type { NormalizedSourceOptions };
|
|
16
|
+
//# sourceMappingURL=normalize-source-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-source-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-source-options.ts"],"names":[],"mappings":"AAMA,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,iBAAe,sBAAsB,CAAC,OAAO,EAAE;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmBnC;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,YAAY,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { DEFAULT_EXCLUDE_DIRS, DEFAULT_SOURCE_EXTENSIONS, DEFAULT_SOURCE_ROOT } from "../shared/constants.js";
|
|
3
|
+
import { InvalidProjectRootError, InvalidSourceRootError } from "../shared/errors.js";
|
|
4
|
+
import { ensureDotExtension, isDirectory, isInsideDirectory, normalizeRelativePath, uniqueStrings } from "../shared/utils.js";
|
|
5
|
+
async function normalizeSourceOptions(options) {
|
|
6
|
+
const projectRoot = path.resolve(options.projectRoot);
|
|
7
|
+
if (!await isDirectory(projectRoot)) {
|
|
8
|
+
throw new InvalidProjectRootError(projectRoot);
|
|
9
|
+
}
|
|
10
|
+
const sourceRootInput = options.sourceRoot ?? DEFAULT_SOURCE_ROOT;
|
|
11
|
+
const sourceRoot = path.isAbsolute(sourceRootInput) ? path.resolve(sourceRootInput) : path.resolve(projectRoot, sourceRootInput);
|
|
12
|
+
if (!await isDirectory(sourceRoot) || !isInsideDirectory(sourceRoot, projectRoot)) {
|
|
13
|
+
throw new InvalidSourceRootError(sourceRoot);
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
projectRoot,
|
|
17
|
+
sourceRoot,
|
|
18
|
+
sourceRootRelative: normalizeRelativePath(path.relative(projectRoot, sourceRoot)),
|
|
19
|
+
sourceExtensions: uniqueStrings((options.sourceExtensions ?? DEFAULT_SOURCE_EXTENSIONS).map(ensureDotExtension)),
|
|
20
|
+
excludeDirs: uniqueStrings(options.excludeDirs ?? DEFAULT_EXCLUDE_DIRS),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export { normalizeSourceOptions };
|
|
24
|
+
//# sourceMappingURL=normalize-source-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-source-options.js","sourceRoot":"","sources":["../../src/config/normalize-source-options.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC9G,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAU9H,KAAK,UAAU,sBAAsB,CAAC,OAKrC;IACC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACjI,IAAI,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,WAAW;QACX,UAAU;QACV,kBAAkB,EAAE,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjF,gBAAgB,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChH,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NormalizedSyncImportsOptions, SyncImportsOptions } from "../imports/types.js";
|
|
2
|
+
declare function normalizeSyncImportsOptions(options: SyncImportsOptions): Promise<NormalizedSyncImportsOptions>;
|
|
3
|
+
export { normalizeSyncImportsOptions };
|
|
4
|
+
//# sourceMappingURL=normalize-sync-imports-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,CA2B7G;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_IMPORTS_REWRITE, DEFAULT_KEEP_RELATIVE, } from "../shared/constants.js";
|
|
3
|
+
import { InvalidTsconfigPathError } from "../shared/errors.js";
|
|
4
|
+
import { isDirectory } from "../shared/utils.js";
|
|
5
|
+
import { normalizeSourceOptions } from "./normalize-source-options.js";
|
|
6
|
+
async function normalizeSyncImportsOptions(options) {
|
|
7
|
+
const source = await normalizeSourceOptions(options);
|
|
8
|
+
const tsconfigInput = options.tsconfigPath ?? path.join(source.projectRoot, "tsconfig.json");
|
|
9
|
+
const tsconfigPath = path.isAbsolute(tsconfigInput) ? path.resolve(tsconfigInput) : path.resolve(source.projectRoot, tsconfigInput);
|
|
10
|
+
if (!await isDirectory(path.dirname(tsconfigPath))) {
|
|
11
|
+
throw new InvalidTsconfigPathError(tsconfigPath);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
...source,
|
|
15
|
+
tsconfigPath,
|
|
16
|
+
alias: {
|
|
17
|
+
prefix: options.alias?.prefix ?? DEFAULT_ALIAS_PREFIX,
|
|
18
|
+
strategy: options.alias?.strategy ?? DEFAULT_ALIAS_STRATEGY,
|
|
19
|
+
randomLength: Math.max(1, Math.floor(options.alias?.randomLength ?? DEFAULT_ALIAS_RANDOM_LENGTH)),
|
|
20
|
+
},
|
|
21
|
+
imports: {
|
|
22
|
+
rewrite: options.imports?.rewrite ?? DEFAULT_IMPORTS_REWRITE,
|
|
23
|
+
keepRelative: options.imports?.keepRelative ?? DEFAULT_KEEP_RELATIVE,
|
|
24
|
+
},
|
|
25
|
+
logging: {
|
|
26
|
+
enabled: options.logging?.enabled ?? Boolean(options.logging?.logger || options.logging?.adapter),
|
|
27
|
+
logger: options.logging?.logger,
|
|
28
|
+
adapter: options.logging?.adapter,
|
|
29
|
+
quiet: options.logging?.quiet ?? false,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export { normalizeSyncImportsOptions };
|
|
34
|
+
//# sourceMappingURL=normalize-sync-imports-options.js.map
|
|
@@ -0,0 +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,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,KAAK,UAAU,2BAA2B,CAAC,OAA2B;IACpE,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,YAAY;QACZ,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,OAAO,EAAE;YACP,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,uBAAuB;YAC5D,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,IAAI,qBAAqB;SACrE;QACD,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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { NormalizedSyncImportsOptions, ScannedSourceFile, SyncAliasesResult, TsconfigJson } from "./types.js";
|
|
2
|
+
import type { NormalizedSyncImportsLogger } from "../shared/logging-types.js";
|
|
3
|
+
declare function readTsconfig(options: NormalizedSyncImportsOptions, logger?: NormalizedSyncImportsLogger): Promise<{
|
|
4
|
+
config: TsconfigJson;
|
|
5
|
+
originalConfig: TsconfigJson;
|
|
6
|
+
}>;
|
|
7
|
+
declare function syncTsconfigAliases(options: NormalizedSyncImportsOptions, sourceFiles: ScannedSourceFile[], logger: NormalizedSyncImportsLogger): Promise<SyncAliasesResult>;
|
|
8
|
+
export { readTsconfig, syncTsconfigAliases };
|
|
9
|
+
//# sourceMappingURL=aliases.d.ts.map
|
|
@@ -0,0 +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,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAqE9E,iBAAe,YAAY,CACzB,OAAO,EAAE,4BAA4B,EACrC,MAAM,CAAC,EAAE,2BAA2B,GACnC,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,2BAA2B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAkE5B;AAED,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { resolveProjectPathTarget } from "./resolve.js";
|
|
4
|
+
import { generateAliasId } from "./strategies.js";
|
|
5
|
+
import { isInsideDirectory, parseTsconfigJson, pathExists, stableSerialize, toStableJson, wait } from "../shared/utils.js";
|
|
6
|
+
const TSCONFIG_READ_RETRY_ATTEMPTS = 20;
|
|
7
|
+
const TSCONFIG_READ_RETRY_DELAY_MS = 50;
|
|
8
|
+
function normalizeTargetPath(projectRoot, targetPath) {
|
|
9
|
+
if (targetPath.includes("*"))
|
|
10
|
+
return null;
|
|
11
|
+
return path.resolve(projectRoot, targetPath);
|
|
12
|
+
}
|
|
13
|
+
function sortPathsRecord(pathsMap) {
|
|
14
|
+
const sorted = {};
|
|
15
|
+
for (const key of Object.keys(pathsMap).sort((left, right) => left.localeCompare(right))) {
|
|
16
|
+
sorted[key] = [...pathsMap[key]].sort((left, right) => left.localeCompare(right));
|
|
17
|
+
}
|
|
18
|
+
return sorted;
|
|
19
|
+
}
|
|
20
|
+
async function extractExistingPaths(options, sourceFilesByPath, existingPaths) {
|
|
21
|
+
const preservedAliasesByPath = new Map();
|
|
22
|
+
const passthroughPaths = {};
|
|
23
|
+
for (const aliasId of Object.keys(existingPaths).sort((left, right) => left.localeCompare(right))) {
|
|
24
|
+
const targets = existingPaths[aliasId];
|
|
25
|
+
let matchedFilePath = null;
|
|
26
|
+
for (const target of targets) {
|
|
27
|
+
const absoluteTarget = normalizeTargetPath(options.projectRoot, target);
|
|
28
|
+
if (!absoluteTarget)
|
|
29
|
+
continue;
|
|
30
|
+
const resolvedTarget = await resolveProjectPathTarget(absoluteTarget, options.sourceExtensions);
|
|
31
|
+
if (resolvedTarget && sourceFilesByPath.has(resolvedTarget)) {
|
|
32
|
+
matchedFilePath = resolvedTarget;
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (matchedFilePath && !preservedAliasesByPath.has(matchedFilePath)) {
|
|
37
|
+
preservedAliasesByPath.set(matchedFilePath, aliasId);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const pointsIntoSourceRoot = targets.some((target) => {
|
|
41
|
+
const absoluteTarget = normalizeTargetPath(options.projectRoot, target);
|
|
42
|
+
return absoluteTarget ? isInsideDirectory(absoluteTarget, options.sourceRoot) : false;
|
|
43
|
+
});
|
|
44
|
+
if (!pointsIntoSourceRoot) {
|
|
45
|
+
passthroughPaths[aliasId] = [...targets];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
preservedAliasesByPath,
|
|
50
|
+
passthroughPaths: sortPathsRecord(passthroughPaths),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
async function readTsconfig(options, logger) {
|
|
54
|
+
if (!await pathExists(options.tsconfigPath)) {
|
|
55
|
+
return {
|
|
56
|
+
config: { compilerOptions: {} },
|
|
57
|
+
originalConfig: { compilerOptions: {} },
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
let lastError;
|
|
61
|
+
for (let attempt = 1; attempt <= TSCONFIG_READ_RETRY_ATTEMPTS; attempt += 1) {
|
|
62
|
+
const text = await fs.readFile(options.tsconfigPath, "utf8");
|
|
63
|
+
try {
|
|
64
|
+
const parsed = parseTsconfigJson(text, options.tsconfigPath);
|
|
65
|
+
if (attempt > 1) {
|
|
66
|
+
logger?.warn("tsconfig-read-recovered", `tsconfig recovered after retries=${attempt - 1}`, {
|
|
67
|
+
tsconfigPath: options.tsconfigPath,
|
|
68
|
+
retries: attempt - 1,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
config: parsed,
|
|
73
|
+
originalConfig: parsed,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
lastError = error;
|
|
78
|
+
if (attempt >= TSCONFIG_READ_RETRY_ATTEMPTS)
|
|
79
|
+
break;
|
|
80
|
+
logger?.warn("tsconfig-read-retry", `tsconfig parse failed retry=${attempt}`, {
|
|
81
|
+
tsconfigPath: options.tsconfigPath,
|
|
82
|
+
retry: attempt,
|
|
83
|
+
maxRetries: TSCONFIG_READ_RETRY_ATTEMPTS - 1,
|
|
84
|
+
});
|
|
85
|
+
await wait(TSCONFIG_READ_RETRY_DELAY_MS);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
throw lastError;
|
|
89
|
+
}
|
|
90
|
+
async function syncTsconfigAliases(options, sourceFiles, logger) {
|
|
91
|
+
const { config, originalConfig } = await readTsconfig(options, logger);
|
|
92
|
+
const sourceFilesByPath = new Map(sourceFiles.map((file) => [file.absolutePath, file]));
|
|
93
|
+
const compilerOptions = { ...(config.compilerOptions ?? {}) };
|
|
94
|
+
const existingPaths = compilerOptions.paths ?? {};
|
|
95
|
+
const existingState = await extractExistingPaths(options, sourceFilesByPath, existingPaths);
|
|
96
|
+
const reservedIds = new Set([
|
|
97
|
+
...Object.keys(existingState.passthroughPaths),
|
|
98
|
+
...Array.from(existingState.preservedAliasesByPath.values()),
|
|
99
|
+
]);
|
|
100
|
+
const aliasRecords = [];
|
|
101
|
+
for (const file of sourceFiles) {
|
|
102
|
+
const preservedAlias = existingState.preservedAliasesByPath.get(file.absolutePath);
|
|
103
|
+
const aliasId = preservedAlias ?? generateAliasId(file, options, Array.from(reservedIds));
|
|
104
|
+
reservedIds.add(aliasId);
|
|
105
|
+
aliasRecords.push({
|
|
106
|
+
id: aliasId,
|
|
107
|
+
absolutePath: file.absolutePath,
|
|
108
|
+
relativeFromProjectRoot: file.relativeFromProjectRoot,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
const managedPaths = {};
|
|
112
|
+
for (const record of aliasRecords) {
|
|
113
|
+
managedPaths[record.id] = [record.relativeFromProjectRoot];
|
|
114
|
+
}
|
|
115
|
+
const nextPaths = sortPathsRecord({
|
|
116
|
+
...existingState.passthroughPaths,
|
|
117
|
+
...managedPaths,
|
|
118
|
+
});
|
|
119
|
+
const nextCompilerOptions = {
|
|
120
|
+
...compilerOptions,
|
|
121
|
+
paths: nextPaths,
|
|
122
|
+
};
|
|
123
|
+
delete nextCompilerOptions.baseUrl;
|
|
124
|
+
const nextConfig = {
|
|
125
|
+
...config,
|
|
126
|
+
compilerOptions: nextCompilerOptions,
|
|
127
|
+
};
|
|
128
|
+
const aliasesChanged = stableSerialize(originalConfig) !== stableSerialize(nextConfig);
|
|
129
|
+
if (aliasesChanged) {
|
|
130
|
+
await fs.writeFile(options.tsconfigPath, toStableJson(nextConfig));
|
|
131
|
+
logger.success("aliases-written", `aliases written count=${aliasRecords.length}`, {
|
|
132
|
+
tsconfigPath: options.tsconfigPath,
|
|
133
|
+
aliasesCount: aliasRecords.length,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
logger.info("aliases-unchanged", `aliases unchanged count=${aliasRecords.length}`, {
|
|
138
|
+
tsconfigPath: options.tsconfigPath,
|
|
139
|
+
aliasesCount: aliasRecords.length,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
aliasesChanged,
|
|
144
|
+
aliasesCount: aliasRecords.length,
|
|
145
|
+
aliasRecords,
|
|
146
|
+
tsconfig: nextConfig,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
export { readTsconfig, syncTsconfigAliases };
|
|
150
|
+
//# sourceMappingURL=aliases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../src/imports/aliases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NormalizedSyncImportsOptions } from "./types.js";
|
|
2
|
+
declare function isRelativeImportSpecifier(specifier: string): boolean;
|
|
3
|
+
declare function resolveFileCandidate(candidatePath: string, sourceExtensions: string[]): Promise<string | null>;
|
|
4
|
+
declare function resolveProjectPathTarget(targetPath: string, sourceExtensions: string[]): Promise<string | null>;
|
|
5
|
+
declare function resolveRelativeImport(specifier: string, sourceFile: string, options: NormalizedSyncImportsOptions): Promise<string | null>;
|
|
6
|
+
export { isRelativeImportSpecifier, resolveFileCandidate, resolveProjectPathTarget, resolveRelativeImport };
|
|
7
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/imports/resolve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAG/D,iBAAS,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,iBAAe,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyB7G;AAED,iBAAe,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE9G;AAED,iBAAe,qBAAqB,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB;AAED,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { isInsideDirectory } from "../shared/utils.js";
|
|
4
|
+
function isRelativeImportSpecifier(specifier) {
|
|
5
|
+
return specifier.startsWith("./") || specifier.startsWith("../");
|
|
6
|
+
}
|
|
7
|
+
async function resolveFileCandidate(candidatePath, sourceExtensions) {
|
|
8
|
+
try {
|
|
9
|
+
const exactStat = await fs.stat(candidatePath);
|
|
10
|
+
if (exactStat.isFile())
|
|
11
|
+
return candidatePath;
|
|
12
|
+
}
|
|
13
|
+
catch { }
|
|
14
|
+
for (const extension of sourceExtensions) {
|
|
15
|
+
const filePath = `${candidatePath}${extension}`;
|
|
16
|
+
try {
|
|
17
|
+
const stat = await fs.stat(filePath);
|
|
18
|
+
if (stat.isFile())
|
|
19
|
+
return filePath;
|
|
20
|
+
}
|
|
21
|
+
catch { }
|
|
22
|
+
}
|
|
23
|
+
for (const extension of sourceExtensions) {
|
|
24
|
+
const indexPath = path.join(candidatePath, `index${extension}`);
|
|
25
|
+
try {
|
|
26
|
+
const stat = await fs.stat(indexPath);
|
|
27
|
+
if (stat.isFile())
|
|
28
|
+
return indexPath;
|
|
29
|
+
}
|
|
30
|
+
catch { }
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
async function resolveProjectPathTarget(targetPath, sourceExtensions) {
|
|
35
|
+
return resolveFileCandidate(targetPath, sourceExtensions);
|
|
36
|
+
}
|
|
37
|
+
async function resolveRelativeImport(specifier, sourceFile, options) {
|
|
38
|
+
if (!isRelativeImportSpecifier(specifier))
|
|
39
|
+
return null;
|
|
40
|
+
const basePath = path.resolve(path.dirname(sourceFile), specifier);
|
|
41
|
+
const resolved = await resolveFileCandidate(basePath, options.sourceExtensions);
|
|
42
|
+
if (!resolved)
|
|
43
|
+
return null;
|
|
44
|
+
if (!isInsideDirectory(resolved, options.sourceRoot))
|
|
45
|
+
return null;
|
|
46
|
+
return resolved;
|
|
47
|
+
}
|
|
48
|
+
export { isRelativeImportSpecifier, resolveFileCandidate, resolveProjectPathTarget, resolveRelativeImport };
|
|
49
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/imports/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,SAAS,yBAAyB,CAAC,SAAiB;IAClD,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,aAAqB,EAAE,gBAA0B;IACnF,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,SAAS,CAAC,MAAM,EAAE;YAAE,OAAO,aAAa,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,aAAa,GAAG,SAAS,EAAE,CAAC;QAEhD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,OAAO,QAAQ,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,MAAM,EAAE;gBAAE,OAAO,SAAS,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,UAAkB,EAAE,gBAA0B;IACpF,OAAO,oBAAoB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,SAAiB,EACjB,UAAkB,EAClB,OAAqC;IAErC,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEhF,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAElE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AliasRecord, NormalizedSyncImportsOptions, RewriteResult, ScannedSourceFile } from "./types.js";
|
|
2
|
+
import type { NormalizedSyncImportsLogger } from "../shared/logging-types.js";
|
|
3
|
+
declare function rewriteSourceImports(sourceFiles: ScannedSourceFile[], aliasRecords: AliasRecord[], options: NormalizedSyncImportsOptions, logger: NormalizedSyncImportsLogger): Promise<RewriteResult>;
|
|
4
|
+
export { rewriteSourceImports };
|
|
5
|
+
//# sourceMappingURL=rewrite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/imports/rewrite.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EAEX,4BAA4B,EAE5B,aAAa,EACb,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAmK9E,iBAAe,oBAAoB,CACjC,WAAW,EAAE,iBAAiB,EAAE,EAChC,YAAY,EAAE,WAAW,EAAE,EAC3B,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,aAAa,CAAC,CAexB;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|