@trebired/code-discipline 0.1.0 → 1.0.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 +14 -10
- package/README.md +141 -147
- package/dist/checks/fix-folderization.d.ts +17 -0
- package/dist/checks/fix-folderization.d.ts.map +1 -0
- package/dist/checks/fix-folderization.js +223 -0
- package/dist/checks/fix-folderization.js.map +1 -0
- package/dist/checks/index.d.ts +21 -2
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +104 -12
- package/dist/checks/index.js.map +1 -1
- package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -1
- package/dist/checks/rules/folderize-compound-files.js +15 -33
- package/dist/checks/rules/folderize-compound-files.js.map +1 -1
- package/dist/checks/rules/folderize-plan.d.ts +16 -0
- package/dist/checks/rules/folderize-plan.d.ts.map +1 -0
- package/dist/checks/rules/folderize-plan.js +80 -0
- package/dist/checks/rules/folderize-plan.js.map +1 -0
- package/dist/checks/rules/max-file-lines.d.ts.map +1 -1
- package/dist/checks/rules/max-file-lines.js +2 -1
- package/dist/checks/rules/max-file-lines.js.map +1 -1
- package/dist/checks/types.d.ts +31 -20
- 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 +40 -16
- package/dist/cli/run-cli.js.map +1 -1
- package/dist/config/normalize-check-options.d.ts.map +1 -1
- package/dist/config/normalize-check-options.js +8 -1
- package/dist/config/normalize-check-options.js.map +1 -1
- package/dist/config/normalize-rule-options.d.ts +21 -7
- package/dist/config/normalize-rule-options.d.ts.map +1 -1
- package/dist/config/normalize-rule-options.js +43 -18
- 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 +18 -6
- package/dist/config/normalize-sync-imports-options.js.map +1 -1
- package/dist/imports/aliases.d.ts +2 -1
- package/dist/imports/aliases.d.ts.map +1 -1
- package/dist/imports/aliases.js +18 -14
- package/dist/imports/aliases.js.map +1 -1
- package/dist/imports/check-sync-imports.d.ts +6 -0
- package/dist/imports/check-sync-imports.d.ts.map +1 -0
- package/dist/imports/check-sync-imports.js +55 -0
- package/dist/imports/check-sync-imports.js.map +1 -0
- package/dist/imports/module-specifiers.d.ts +20 -0
- package/dist/imports/module-specifiers.d.ts.map +1 -0
- package/dist/imports/module-specifiers.js +69 -0
- package/dist/imports/module-specifiers.js.map +1 -0
- package/dist/imports/rewrite.d.ts +3 -2
- package/dist/imports/rewrite.d.ts.map +1 -1
- package/dist/imports/rewrite.js +27 -90
- package/dist/imports/rewrite.js.map +1 -1
- package/dist/imports/sync-imports.d.ts.map +1 -1
- package/dist/imports/sync-imports.js +50 -5
- package/dist/imports/sync-imports.js.map +1 -1
- package/dist/imports/types.d.ts +18 -24
- package/dist/imports/types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/shared/constants.d.ts +4 -6
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +4 -6
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/errors.d.ts +8 -2
- package/dist/shared/errors.d.ts.map +1 -1
- package/dist/shared/errors.js +13 -1
- package/dist/shared/errors.js.map +1 -1
- package/dist/shared/logging-types.d.ts +7 -1
- package/dist/shared/logging-types.d.ts.map +1 -1
- package/dist/shared/logging.d.ts +2 -3
- package/dist/shared/logging.d.ts.map +1 -1
- package/dist/shared/logging.js.map +1 -1
- package/package.json +2 -1
package/dist/checks/index.d.ts
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
import type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult } from "./types.js";
|
|
1
|
+
import type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, FixCodeDisciplineOptions, FixCodeDisciplineResult, NormalizedCheckCodeDisciplineOptions } from "./types.js";
|
|
2
|
+
declare function buildNormalizedSyncOptions(options: NormalizedCheckCodeDisciplineOptions): {
|
|
3
|
+
projectRoot: string;
|
|
4
|
+
sourceRoot: string;
|
|
5
|
+
sourceRootRelative: string;
|
|
6
|
+
sourceExtensions: string[];
|
|
7
|
+
excludeDirs: string[];
|
|
8
|
+
tsconfigPath: string;
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
stop: boolean;
|
|
11
|
+
fix: boolean;
|
|
12
|
+
alias: {
|
|
13
|
+
prefix: string;
|
|
14
|
+
strategy: import("../index.js").AliasStrategyFn | "random" | "relative-path-hash" | "relative-path-slug";
|
|
15
|
+
randomLength: number;
|
|
16
|
+
};
|
|
17
|
+
allowRelative: string[] | import("../index.js").AllowRelativeFn;
|
|
18
|
+
logging: import("../index.js").LoggingOptions;
|
|
19
|
+
};
|
|
2
20
|
declare function checkCodeDiscipline(options: CheckCodeDisciplineOptions): Promise<CheckCodeDisciplineResult>;
|
|
3
|
-
|
|
21
|
+
declare function fixCodeDiscipline(options: FixCodeDisciplineOptions): Promise<FixCodeDisciplineResult>;
|
|
22
|
+
export { buildNormalizedSyncOptions, checkCodeDiscipline, fixCodeDiscipline };
|
|
4
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EAEzB,wBAAwB,EACxB,uBAAuB,EACvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAEpB,iBAAS,0BAA0B,CAAC,OAAO,EAAE,oCAAoC;;;;;;;;;;;;;;;;;EAmBhF;AAyED,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAY1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAiBpG;AAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/checks/index.js
CHANGED
|
@@ -1,22 +1,114 @@
|
|
|
1
1
|
import { normalizeCheckCodeDisciplineOptions } from "../config/normalize-check-options.js";
|
|
2
|
+
import { collectSyncImportViolations } from "../imports/check-sync-imports.js";
|
|
2
3
|
import { scanSourceFiles } from "../imports/scan.js";
|
|
4
|
+
import { resolveLogger } from "../shared/logging.js";
|
|
5
|
+
import { fixFolderization } from "./fix-folderization.js";
|
|
3
6
|
import { runFolderizeCompoundFilesRule } from "./rules/folderize-compound-files.js";
|
|
4
7
|
import { runMaxFileLinesRule } from "./rules/max-file-lines.js";
|
|
5
|
-
|
|
6
|
-
const normalized = await normalizeCheckCodeDisciplineOptions(options);
|
|
7
|
-
const sourceFiles = await scanSourceFiles(normalized);
|
|
8
|
-
const maxFileViolations = await runMaxFileLinesRule(sourceFiles, normalized);
|
|
9
|
-
const folderizeViolations = runFolderizeCompoundFilesRule(sourceFiles, normalized);
|
|
10
|
-
const violations = [...maxFileViolations, ...folderizeViolations]
|
|
11
|
-
.sort((left, right) => left.filePath.localeCompare(right.filePath) || left.rule.localeCompare(right.rule));
|
|
12
|
-
const warnings = violations.filter((violation) => violation.severity === "warn").length;
|
|
13
|
-
const errors = violations.length - warnings;
|
|
8
|
+
function buildNormalizedSyncOptions(options) {
|
|
14
9
|
return {
|
|
15
|
-
|
|
10
|
+
projectRoot: options.projectRoot,
|
|
11
|
+
sourceRoot: options.sourceRoot,
|
|
12
|
+
sourceRootRelative: options.sourceRootRelative,
|
|
13
|
+
sourceExtensions: options.sourceExtensions,
|
|
14
|
+
excludeDirs: options.excludeDirs,
|
|
15
|
+
tsconfigPath: options.rules.syncImports.tsconfigPath ?? `${options.projectRoot}/tsconfig.json`,
|
|
16
|
+
enabled: options.rules.syncImports.enabled ?? false,
|
|
17
|
+
stop: options.rules.syncImports.stop ?? true,
|
|
18
|
+
fix: options.rules.syncImports.fix ?? false,
|
|
19
|
+
alias: {
|
|
20
|
+
prefix: options.rules.syncImports.alias?.prefix ?? "#",
|
|
21
|
+
strategy: options.rules.syncImports.alias?.strategy ?? "random",
|
|
22
|
+
randomLength: options.rules.syncImports.alias?.randomLength ?? 12,
|
|
23
|
+
},
|
|
24
|
+
allowRelative: options.rules.syncImports.allowRelative ?? ["./"],
|
|
25
|
+
logging: options.logging,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function sortViolations(violations) {
|
|
29
|
+
return [...violations].sort((left, right) => left.filePath.localeCompare(right.filePath) || left.rule.localeCompare(right.rule));
|
|
30
|
+
}
|
|
31
|
+
function summarizeViolations(violations) {
|
|
32
|
+
const warnings = violations.filter((violation) => !violation.stop).length;
|
|
33
|
+
const failures = violations.length - warnings;
|
|
34
|
+
return {
|
|
35
|
+
ok: failures === 0,
|
|
16
36
|
warnings,
|
|
17
|
-
|
|
37
|
+
failures,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function logViolation(violation, logger) {
|
|
41
|
+
const metadata = {
|
|
42
|
+
rule: violation.rule,
|
|
43
|
+
filePath: violation.filePath,
|
|
44
|
+
suggestedPath: violation.suggestedPath,
|
|
45
|
+
details: violation.details,
|
|
46
|
+
};
|
|
47
|
+
if (violation.stop) {
|
|
48
|
+
logger.error("discipline-violation", violation.message, metadata);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
logger.warn("discipline-warning", violation.message, metadata);
|
|
52
|
+
}
|
|
53
|
+
function logSummary(label, result, logger) {
|
|
54
|
+
if (result.violations.length > 0) {
|
|
55
|
+
for (const violation of result.violations) {
|
|
56
|
+
logViolation(violation, logger);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (result.ok) {
|
|
60
|
+
logger.success(`discipline-${label}-ok`, `${label} completed`, {
|
|
61
|
+
warnings: result.warnings,
|
|
62
|
+
failures: result.failures,
|
|
63
|
+
violations: result.violations.length,
|
|
64
|
+
});
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
logger.error(`discipline-${label}-failed`, `${label} found blocking violations`, {
|
|
68
|
+
warnings: result.warnings,
|
|
69
|
+
failures: result.failures,
|
|
70
|
+
violations: result.violations.length,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
async function collectViolations(options) {
|
|
74
|
+
const sourceFiles = await scanSourceFiles(options);
|
|
75
|
+
const maxFileViolations = await runMaxFileLinesRule(sourceFiles, options);
|
|
76
|
+
const folderizeViolations = runFolderizeCompoundFilesRule(sourceFiles, options);
|
|
77
|
+
const syncImportViolations = await collectSyncImportViolations(sourceFiles, buildNormalizedSyncOptions(options));
|
|
78
|
+
return sortViolations([
|
|
79
|
+
...maxFileViolations,
|
|
80
|
+
...folderizeViolations,
|
|
81
|
+
...syncImportViolations,
|
|
82
|
+
]);
|
|
83
|
+
}
|
|
84
|
+
async function checkCodeDiscipline(options) {
|
|
85
|
+
const normalized = await normalizeCheckCodeDisciplineOptions(options);
|
|
86
|
+
const logger = resolveLogger(normalized.logging);
|
|
87
|
+
const violations = await collectViolations(normalized);
|
|
88
|
+
const summary = summarizeViolations(violations);
|
|
89
|
+
const result = {
|
|
90
|
+
...summary,
|
|
18
91
|
violations,
|
|
19
92
|
};
|
|
93
|
+
logSummary("check", result, logger);
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
async function fixCodeDiscipline(options) {
|
|
97
|
+
const normalized = await normalizeCheckCodeDisciplineOptions(options);
|
|
98
|
+
const logger = resolveLogger(normalized.logging);
|
|
99
|
+
const sourceFiles = await scanSourceFiles(normalized);
|
|
100
|
+
const result = await fixFolderization(sourceFiles, normalized, logger);
|
|
101
|
+
if (!result.ok || result.violations.length > 0) {
|
|
102
|
+
logSummary("fix", result, logger);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
logger.success("discipline-fix-ok", "fix completed", {
|
|
106
|
+
movedFiles: result.moved_files,
|
|
107
|
+
rewrittenFiles: result.rewritten_files,
|
|
108
|
+
rewrittenImports: result.rewritten_imports,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return result;
|
|
20
112
|
}
|
|
21
|
-
export { checkCodeDiscipline };
|
|
113
|
+
export { buildNormalizedSyncOptions, checkCodeDiscipline, fixCodeDiscipline };
|
|
22
114
|
//# sourceMappingURL=index.js.map
|
package/dist/checks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folderize-compound-files.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/folderize-compound-files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"folderize-compound-files.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/folderize-compound-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,iBAAS,6BAA6B,CACpC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,uBAAuB,EAAE,CAe3B;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|
|
@@ -1,37 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
function matchFolderizedFile(file, options) {
|
|
3
|
-
if (!options.rules.folderizeCompoundFiles.enabled)
|
|
4
|
-
return null;
|
|
5
|
-
const basename = path.basename(file.relativeFromSourceRoot, file.extension);
|
|
6
|
-
for (const separator of options.rules.folderizeCompoundFiles.separators) {
|
|
7
|
-
for (const suffix of options.rules.folderizeCompoundFiles.suffixes) {
|
|
8
|
-
const token = `${separator}${suffix}`;
|
|
9
|
-
if (!basename.endsWith(token))
|
|
10
|
-
continue;
|
|
11
|
-
const stem = basename.slice(0, basename.length - token.length);
|
|
12
|
-
if (!stem)
|
|
13
|
-
continue;
|
|
14
|
-
const suggestedPath = path.posix.join(path.posix.dirname(file.relativeFromProjectRoot), stem, `${suffix}${file.extension}`);
|
|
15
|
-
return {
|
|
16
|
-
rule: "folderize-compound-files",
|
|
17
|
-
severity: options.rules.folderizeCompoundFiles.severity,
|
|
18
|
-
filePath: file.relativeFromProjectRoot,
|
|
19
|
-
message: `file can be grouped under ${suggestedPath}`,
|
|
20
|
-
suggestedPath,
|
|
21
|
-
details: {
|
|
22
|
-
separator,
|
|
23
|
-
suffix,
|
|
24
|
-
stem,
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
1
|
+
import { planFolderizeCompoundFiles } from "./folderize-plan.js";
|
|
31
2
|
function runFolderizeCompoundFilesRule(sourceFiles, options) {
|
|
32
|
-
return sourceFiles
|
|
33
|
-
|
|
34
|
-
.
|
|
3
|
+
return planFolderizeCompoundFiles(sourceFiles, options).map((candidate) => ({
|
|
4
|
+
rule: "folderize-compound-files",
|
|
5
|
+
stop: options.rules.folderizeCompoundFiles.stop,
|
|
6
|
+
fix: options.rules.folderizeCompoundFiles.fix,
|
|
7
|
+
filePath: candidate.relativeFromProjectRoot,
|
|
8
|
+
message: `file can be grouped under ${candidate.suggestedPath}`,
|
|
9
|
+
suggestedPath: candidate.suggestedPath,
|
|
10
|
+
details: {
|
|
11
|
+
mode: candidate.mode,
|
|
12
|
+
prefix: candidate.prefix,
|
|
13
|
+
remainder: candidate.remainder,
|
|
14
|
+
separator: candidate.separator,
|
|
15
|
+
},
|
|
16
|
+
}));
|
|
35
17
|
}
|
|
36
18
|
export { runFolderizeCompoundFilesRule };
|
|
37
19
|
//# sourceMappingURL=folderize-compound-files.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folderize-compound-files.js","sourceRoot":"","sources":["../../../src/checks/rules/folderize-compound-files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"folderize-compound-files.js","sourceRoot":"","sources":["../../../src/checks/rules/folderize-compound-files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEjE,SAAS,6BAA6B,CACpC,WAAgC,EAChC,OAA6C;IAE7C,OAAO,0BAA0B,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI;QAC/C,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG;QAC7C,QAAQ,EAAE,SAAS,CAAC,uBAAuB;QAC3C,OAAO,EAAE,6BAA6B,SAAS,CAAC,aAAa,EAAE;QAC/D,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,OAAO,EAAE;YACP,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { NormalizedCheckCodeDisciplineOptions } from "../types.js";
|
|
2
|
+
import type { ScannedSourceFile } from "../../imports/types.js";
|
|
3
|
+
type FolderizationCandidate = {
|
|
4
|
+
absolutePath: string;
|
|
5
|
+
relativeFromProjectRoot: string;
|
|
6
|
+
suggestedAbsolutePath: string;
|
|
7
|
+
suggestedPath: string;
|
|
8
|
+
prefix: string;
|
|
9
|
+
remainder: string;
|
|
10
|
+
separator: string;
|
|
11
|
+
mode: "same-directory-group" | "repeated-folder-prefix";
|
|
12
|
+
};
|
|
13
|
+
declare function planFolderizeCompoundFiles(sourceFiles: ScannedSourceFile[], options: NormalizedCheckCodeDisciplineOptions): FolderizationCandidate[];
|
|
14
|
+
export { planFolderizeCompoundFiles };
|
|
15
|
+
export type { FolderizationCandidate };
|
|
16
|
+
//# sourceMappingURL=folderize-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folderize-plan.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/folderize-plan.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,KAAK,sBAAsB,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,sBAAsB,GAAG,wBAAwB,CAAC;CACzD,CAAC;AAoDF,iBAAS,0BAA0B,CACjC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,sBAAsB,EAAE,CAiD1B;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,YAAY,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
function findPrefixMatch(file, separators) {
|
|
3
|
+
const basename = path.basename(file.relativeFromSourceRoot, file.extension);
|
|
4
|
+
let bestMatch = null;
|
|
5
|
+
for (const separator of separators) {
|
|
6
|
+
const index = basename.indexOf(separator);
|
|
7
|
+
if (index <= 0)
|
|
8
|
+
continue;
|
|
9
|
+
const prefix = basename.slice(0, index);
|
|
10
|
+
const remainder = basename.slice(index + separator.length);
|
|
11
|
+
if (!prefix || !remainder)
|
|
12
|
+
continue;
|
|
13
|
+
if (!bestMatch || index < bestMatch.index) {
|
|
14
|
+
bestMatch = { prefix, remainder, separator, index };
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return bestMatch;
|
|
18
|
+
}
|
|
19
|
+
function buildSuggestedPath(file, prefix, remainder, mode) {
|
|
20
|
+
const sourceDir = path.dirname(file.absolutePath);
|
|
21
|
+
const projectDir = path.posix.dirname(file.relativeFromProjectRoot);
|
|
22
|
+
const targetFileName = `${remainder}${file.extension}`;
|
|
23
|
+
if (mode === "repeated-folder-prefix") {
|
|
24
|
+
return {
|
|
25
|
+
absolutePath: path.join(sourceDir, targetFileName),
|
|
26
|
+
relativeFromProjectRoot: path.posix.join(projectDir, targetFileName),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
absolutePath: path.join(sourceDir, prefix, targetFileName),
|
|
31
|
+
relativeFromProjectRoot: path.posix.join(projectDir, prefix, targetFileName),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function planFolderizeCompoundFiles(sourceFiles, options) {
|
|
35
|
+
if (!options.rules.folderizeCompoundFiles.enabled)
|
|
36
|
+
return [];
|
|
37
|
+
const separators = options.rules.folderizeCompoundFiles.separators;
|
|
38
|
+
const byDirectoryAndPrefix = new Map();
|
|
39
|
+
const matchesByPath = new Map();
|
|
40
|
+
for (const file of sourceFiles) {
|
|
41
|
+
const match = findPrefixMatch(file, separators);
|
|
42
|
+
if (!match)
|
|
43
|
+
continue;
|
|
44
|
+
matchesByPath.set(file.absolutePath, match);
|
|
45
|
+
const directoryKey = `${path.posix.dirname(file.relativeFromSourceRoot)}::${match.prefix}`;
|
|
46
|
+
const rows = byDirectoryAndPrefix.get(directoryKey) ?? [];
|
|
47
|
+
rows.push(file);
|
|
48
|
+
byDirectoryAndPrefix.set(directoryKey, rows);
|
|
49
|
+
}
|
|
50
|
+
const candidates = [];
|
|
51
|
+
for (const file of sourceFiles) {
|
|
52
|
+
const match = matchesByPath.get(file.absolutePath);
|
|
53
|
+
if (!match)
|
|
54
|
+
continue;
|
|
55
|
+
const directoryName = path.basename(path.dirname(file.absolutePath));
|
|
56
|
+
const directoryKey = `${path.posix.dirname(file.relativeFromSourceRoot)}::${match.prefix}`;
|
|
57
|
+
const groupedCount = byDirectoryAndPrefix.get(directoryKey)?.length ?? 0;
|
|
58
|
+
const mode = directoryName === match.prefix
|
|
59
|
+
? "repeated-folder-prefix"
|
|
60
|
+
: groupedCount >= 2
|
|
61
|
+
? "same-directory-group"
|
|
62
|
+
: null;
|
|
63
|
+
if (!mode)
|
|
64
|
+
continue;
|
|
65
|
+
const suggested = buildSuggestedPath(file, match.prefix, match.remainder, mode);
|
|
66
|
+
candidates.push({
|
|
67
|
+
absolutePath: file.absolutePath,
|
|
68
|
+
relativeFromProjectRoot: file.relativeFromProjectRoot,
|
|
69
|
+
suggestedAbsolutePath: suggested.absolutePath,
|
|
70
|
+
suggestedPath: suggested.relativeFromProjectRoot,
|
|
71
|
+
prefix: match.prefix,
|
|
72
|
+
remainder: match.remainder,
|
|
73
|
+
separator: match.separator,
|
|
74
|
+
mode,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return candidates.sort((left, right) => left.relativeFromProjectRoot.localeCompare(right.relativeFromProjectRoot));
|
|
78
|
+
}
|
|
79
|
+
export { planFolderizeCompoundFiles };
|
|
80
|
+
//# sourceMappingURL=folderize-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folderize-plan.js","sourceRoot":"","sources":["../../../src/checks/rules/folderize-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-file-lines.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/max-file-lines.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAOhE,iBAAe,mBAAmB,CAChC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"max-file-lines.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/max-file-lines.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,oCAAoC,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAOhE,iBAAe,mBAAmB,CAChC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAyBpC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -15,7 +15,8 @@ async function runMaxFileLinesRule(sourceFiles, options) {
|
|
|
15
15
|
continue;
|
|
16
16
|
violations.push({
|
|
17
17
|
rule: "max-file-lines",
|
|
18
|
-
|
|
18
|
+
stop: options.rules.maxFileLines.stop,
|
|
19
|
+
fix: options.rules.maxFileLines.fix,
|
|
19
20
|
filePath: file.relativeFromProjectRoot,
|
|
20
21
|
message: `file has ${lineCount} lines and exceeds the limit of ${options.rules.maxFileLines.max}`,
|
|
21
22
|
details: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max-file-lines.js","sourceRoot":"","sources":["../../../src/checks/rules/max-file-lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAKlC,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,WAAgC,EAChC,OAA6C;IAE7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAEnD,MAAM,UAAU,GAA8B,EAAE,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG;YAAE,SAAS;QAE1D,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,gBAAgB;YACtB,
|
|
1
|
+
{"version":3,"file":"max-file-lines.js","sourceRoot":"","sources":["../../../src/checks/rules/max-file-lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAKlC,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,WAAgC,EAChC,OAA6C;IAE7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAEnD,MAAM,UAAU,GAA8B,EAAE,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAI,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG;YAAE,SAAS;QAE1D,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI;YACrC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG;YACnC,QAAQ,EAAE,IAAI,CAAC,uBAAuB;YACtC,OAAO,EAAE,YAAY,SAAS,mCAAmC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE;YACjG,OAAO,EAAE;gBACP,SAAS;gBACT,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG;aACpC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/checks/types.d.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
type
|
|
3
|
-
type
|
|
1
|
+
import type { LoggingOptions } from "../shared/logging-types.js";
|
|
2
|
+
import type { SourceScanOptions, SyncImportsRuleOptions } from "../imports/types.js";
|
|
3
|
+
type RuleControlOptions = {
|
|
4
4
|
enabled?: boolean;
|
|
5
|
+
stop?: boolean;
|
|
6
|
+
fix?: boolean;
|
|
5
7
|
};
|
|
6
|
-
type MaxFileLinesRuleOptions = {
|
|
7
|
-
enabled?: boolean;
|
|
8
|
+
type MaxFileLinesRuleOptions = RuleControlOptions & {
|
|
8
9
|
max?: number;
|
|
9
|
-
severity?: CodeDisciplineRuleSeverity;
|
|
10
10
|
};
|
|
11
|
-
type FolderizeCompoundFilesRuleOptions = {
|
|
12
|
-
enabled?: boolean;
|
|
11
|
+
type FolderizeCompoundFilesRuleOptions = RuleControlOptions & {
|
|
13
12
|
separators?: string[];
|
|
14
|
-
suffixes?: string[];
|
|
15
|
-
severity?: CodeDisciplineRuleSeverity;
|
|
16
13
|
};
|
|
17
14
|
type CodeDisciplineRules = {
|
|
18
15
|
maxFileLines?: MaxFileLinesRuleOptions;
|
|
@@ -24,31 +21,36 @@ type CheckCodeDisciplineOptions = {
|
|
|
24
21
|
sourceRoot?: string;
|
|
25
22
|
sourceExtensions?: string[];
|
|
26
23
|
excludeDirs?: string[];
|
|
24
|
+
logging?: LoggingOptions;
|
|
27
25
|
rules?: CodeDisciplineRules;
|
|
28
26
|
};
|
|
27
|
+
type FixCodeDisciplineOptions = CheckCodeDisciplineOptions;
|
|
29
28
|
type CodeDisciplineConfig = Omit<CheckCodeDisciplineOptions, "projectRoot">;
|
|
30
|
-
type
|
|
29
|
+
type NormalizedRuleControl = {
|
|
31
30
|
enabled: boolean;
|
|
31
|
+
stop: boolean;
|
|
32
|
+
fix: boolean;
|
|
33
|
+
};
|
|
34
|
+
type NormalizedMaxFileLinesRule = NormalizedRuleControl & {
|
|
32
35
|
max: number;
|
|
33
|
-
severity: CodeDisciplineRuleSeverity;
|
|
34
36
|
};
|
|
35
|
-
type NormalizedFolderizeCompoundFilesRule = {
|
|
36
|
-
enabled: boolean;
|
|
37
|
+
type NormalizedFolderizeCompoundFilesRule = NormalizedRuleControl & {
|
|
37
38
|
separators: string[];
|
|
38
|
-
suffixes: string[];
|
|
39
|
-
severity: CodeDisciplineRuleSeverity;
|
|
40
39
|
};
|
|
41
40
|
type NormalizedCheckCodeDisciplineOptions = SourceScanOptions & {
|
|
42
41
|
sourceRootRelative: string;
|
|
42
|
+
logging: LoggingOptions;
|
|
43
43
|
rules: {
|
|
44
44
|
maxFileLines: NormalizedMaxFileLinesRule;
|
|
45
45
|
folderizeCompoundFiles: NormalizedFolderizeCompoundFilesRule;
|
|
46
|
+
syncImports: SyncImportsRuleOptions;
|
|
46
47
|
};
|
|
47
48
|
};
|
|
48
|
-
type CodeDisciplineRuleName = "max-file-lines" | "folderize-compound-files";
|
|
49
|
+
type CodeDisciplineRuleName = "max-file-lines" | "folderize-compound-files" | "sync-imports";
|
|
49
50
|
type CodeDisciplineViolation = {
|
|
50
51
|
rule: CodeDisciplineRuleName;
|
|
51
|
-
|
|
52
|
+
stop: boolean;
|
|
53
|
+
fix: boolean;
|
|
52
54
|
filePath: string;
|
|
53
55
|
message: string;
|
|
54
56
|
details: Record<string, unknown>;
|
|
@@ -57,8 +59,17 @@ type CodeDisciplineViolation = {
|
|
|
57
59
|
type CheckCodeDisciplineResult = {
|
|
58
60
|
ok: boolean;
|
|
59
61
|
warnings: number;
|
|
60
|
-
|
|
62
|
+
failures: number;
|
|
63
|
+
violations: CodeDisciplineViolation[];
|
|
64
|
+
};
|
|
65
|
+
type FixCodeDisciplineResult = {
|
|
66
|
+
ok: boolean;
|
|
67
|
+
moved_files: number;
|
|
68
|
+
rewritten_files: number;
|
|
69
|
+
rewritten_imports: number;
|
|
70
|
+
warnings: number;
|
|
71
|
+
failures: number;
|
|
61
72
|
violations: CodeDisciplineViolation[];
|
|
62
73
|
};
|
|
63
|
-
export type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, CodeDisciplineRuleName,
|
|
74
|
+
export type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, CodeDisciplineRuleName, CodeDisciplineRules, CodeDisciplineViolation, FixCodeDisciplineOptions, FixCodeDisciplineResult, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, NormalizedCheckCodeDisciplineOptions, NormalizedFolderizeCompoundFilesRule, NormalizedMaxFileLinesRule, NormalizedRuleControl, RuleControlOptions, };
|
|
64
75
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAErF,KAAK,kBAAkB,GAAG;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,KAAK,uBAAuB,GAAG,kBAAkB,GAAG;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,iCAAiC,GAAG,kBAAkB,GAAG;IAC5D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,sBAAsB,CAAC,EAAE,iCAAiC,CAAC;IAC3D,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,KAAK,wBAAwB,GAAG,0BAA0B,CAAC;AAE3D,KAAK,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,EAAE,aAAa,CAAC,CAAC;AAE5E,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,KAAK,0BAA0B,GAAG,qBAAqB,GAAG;IACxD,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,oCAAoC,GAAG,qBAAqB,GAAG;IAClE,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,oCAAoC,GAAG,iBAAiB,GAAG;IAC9D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE;QACL,YAAY,EAAE,0BAA0B,CAAC;QACzC,sBAAsB,EAAE,oCAAoC,CAAC;QAC7D,WAAW,EAAE,sBAAsB,CAAC;KACrC,CAAC;CACH,CAAC;AAEF,KAAK,sBAAsB,GAAG,gBAAgB,GAAG,0BAA0B,GAAG,cAAc,CAAC;AAE7F,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACvC,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACvC,CAAC;AAEF,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,iCAAiC,EACjC,uBAAuB,EACvB,oCAAoC,EACpC,oCAAoC,EACpC,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,GACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAUA,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAUA,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAyEF,iBAAe,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmExF;AAQD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/cli/run-cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { pathToFileURL } from "node:url";
|
|
3
|
-
import { checkCodeDiscipline } from "../checks/index.js";
|
|
3
|
+
import { checkCodeDiscipline, fixCodeDiscipline } from "../checks/index.js";
|
|
4
4
|
import { loadCodeDisciplineConfig } from "../config/index.js";
|
|
5
5
|
import { syncImports } from "../imports/sync-imports.js";
|
|
6
6
|
function renderHelp() {
|
|
@@ -8,8 +8,9 @@ function renderHelp() {
|
|
|
8
8
|
"Usage: code-discipline <command> [--config <path>]",
|
|
9
9
|
"",
|
|
10
10
|
"Commands:",
|
|
11
|
-
" check run
|
|
12
|
-
" sync sync tsconfig aliases and
|
|
11
|
+
" check run read-only discipline validation",
|
|
12
|
+
" sync sync tsconfig aliases and import paths when syncImports.fix is true",
|
|
13
|
+
" fix apply folderization moves when folderizeCompoundFiles.fix is true",
|
|
13
14
|
"",
|
|
14
15
|
].join("\n");
|
|
15
16
|
}
|
|
@@ -32,21 +33,35 @@ function parseArgs(args) {
|
|
|
32
33
|
return { configPath, extra };
|
|
33
34
|
}
|
|
34
35
|
function buildSyncImportsOptions(projectRoot, config) {
|
|
35
|
-
const
|
|
36
|
+
const syncRule = config.rules?.syncImports ?? {};
|
|
36
37
|
return {
|
|
37
38
|
projectRoot,
|
|
38
39
|
sourceRoot: syncRule.sourceRoot ?? config.sourceRoot,
|
|
39
40
|
tsconfigPath: syncRule.tsconfigPath,
|
|
40
41
|
sourceExtensions: syncRule.sourceExtensions ?? config.sourceExtensions,
|
|
41
42
|
excludeDirs: syncRule.excludeDirs ?? config.excludeDirs,
|
|
43
|
+
enabled: syncRule.enabled,
|
|
44
|
+
stop: syncRule.stop,
|
|
45
|
+
fix: syncRule.fix,
|
|
42
46
|
alias: syncRule.alias,
|
|
43
|
-
|
|
44
|
-
logging: syncRule.logging,
|
|
47
|
+
allowRelative: syncRule.allowRelative,
|
|
48
|
+
logging: config.logging ?? syncRule.logging,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function buildCheckOptions(projectRoot, config) {
|
|
52
|
+
return {
|
|
53
|
+
projectRoot,
|
|
54
|
+
sourceRoot: config.sourceRoot,
|
|
55
|
+
sourceExtensions: config.sourceExtensions,
|
|
56
|
+
excludeDirs: config.excludeDirs,
|
|
57
|
+
logging: config.logging,
|
|
58
|
+
rules: config.rules,
|
|
45
59
|
};
|
|
46
60
|
}
|
|
47
61
|
function formatViolation(violation) {
|
|
62
|
+
const label = violation.stop ? "FAIL" : "WARN";
|
|
48
63
|
const suggested = violation.suggestedPath ? ` suggested=${violation.suggestedPath}` : "";
|
|
49
|
-
return `${
|
|
64
|
+
return `${label} ${violation.rule} ${violation.filePath} ${violation.message}${suggested}`;
|
|
50
65
|
}
|
|
51
66
|
async function runCli(argv, options = {}) {
|
|
52
67
|
const cwd = options.cwd ?? process.cwd();
|
|
@@ -64,13 +79,7 @@ async function runCli(argv, options = {}) {
|
|
|
64
79
|
}
|
|
65
80
|
const { config } = await loadCodeDisciplineConfig(cwd, parsed.configPath);
|
|
66
81
|
if (command === "check") {
|
|
67
|
-
const result = await checkCodeDiscipline(
|
|
68
|
-
projectRoot: cwd,
|
|
69
|
-
sourceRoot: config.sourceRoot,
|
|
70
|
-
sourceExtensions: config.sourceExtensions,
|
|
71
|
-
excludeDirs: config.excludeDirs,
|
|
72
|
-
rules: config.rules,
|
|
73
|
-
});
|
|
82
|
+
const result = await checkCodeDiscipline(buildCheckOptions(cwd, config));
|
|
74
83
|
if (result.violations.length === 0) {
|
|
75
84
|
stdout("No discipline violations found.\n");
|
|
76
85
|
return { exitCode: 0 };
|
|
@@ -78,13 +87,28 @@ async function runCli(argv, options = {}) {
|
|
|
78
87
|
for (const violation of result.violations) {
|
|
79
88
|
stdout(`${formatViolation(violation)}\n`);
|
|
80
89
|
}
|
|
81
|
-
stdout(`Summary: ${result.
|
|
90
|
+
stdout(`Summary: ${result.failures} failures, ${result.warnings} warnings.\n`);
|
|
82
91
|
return { exitCode: result.ok ? 0 : 1 };
|
|
83
92
|
}
|
|
84
93
|
if (command === "sync") {
|
|
85
94
|
const result = await syncImports(buildSyncImportsOptions(cwd, config));
|
|
86
95
|
stdout(`${JSON.stringify(result)}\n`);
|
|
87
|
-
return { exitCode: 0 };
|
|
96
|
+
return { exitCode: result.ok ? 0 : 1 };
|
|
97
|
+
}
|
|
98
|
+
if (command === "fix") {
|
|
99
|
+
const result = await fixCodeDiscipline(buildCheckOptions(cwd, config));
|
|
100
|
+
if (result.violations.length > 0) {
|
|
101
|
+
for (const violation of result.violations) {
|
|
102
|
+
stdout(`${formatViolation(violation)}\n`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
stdout(`${JSON.stringify({
|
|
106
|
+
ok: result.ok,
|
|
107
|
+
moved_files: result.moved_files,
|
|
108
|
+
rewritten_files: result.rewritten_files,
|
|
109
|
+
rewritten_imports: result.rewritten_imports,
|
|
110
|
+
})}\n`);
|
|
111
|
+
return { exitCode: result.ok ? 0 : 1 };
|
|
88
112
|
}
|
|
89
113
|
stderr(`Unknown command: ${command}\n`);
|
|
90
114
|
stderr(renderHelp());
|
package/dist/cli/run-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
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,CAiB/C;AAED,OAAO,EAAE,mCAAmC,EAAE,CAAC"}
|