@trebired/code-discipline 1.2.0 → 1.4.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.
Files changed (62) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +127 -86
  3. package/dist/checks/fix-folderization.d.ts +2 -1
  4. package/dist/checks/fix-folderization.d.ts.map +1 -1
  5. package/dist/checks/fix-folderization.js +16 -12
  6. package/dist/checks/fix-folderization.js.map +1 -1
  7. package/dist/checks/index.d.ts +1 -2
  8. package/dist/checks/index.d.ts.map +1 -1
  9. package/dist/checks/index.js +43 -20
  10. package/dist/checks/index.js.map +1 -1
  11. package/dist/checks/rules/folderize-compound-files.d.ts +2 -1
  12. package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -1
  13. package/dist/checks/rules/folderize-compound-files.js +3 -1
  14. package/dist/checks/rules/folderize-compound-files.js.map +1 -1
  15. package/dist/checks/rules/folderize-plan.js +1 -1
  16. package/dist/checks/rules/folderize-plan.js.map +1 -1
  17. package/dist/checks/rules/max-file-lines.d.ts +2 -1
  18. package/dist/checks/rules/max-file-lines.d.ts.map +1 -1
  19. package/dist/checks/rules/max-file-lines.js +3 -3
  20. package/dist/checks/rules/max-file-lines.js.map +1 -1
  21. package/dist/checks/types.d.ts +17 -38
  22. package/dist/checks/types.d.ts.map +1 -1
  23. package/dist/cli/run-cli.d.ts.map +1 -1
  24. package/dist/cli/run-cli.js +27 -36
  25. package/dist/cli/run-cli.js.map +1 -1
  26. package/dist/config/index.d.ts +3 -3
  27. package/dist/config/index.d.ts.map +1 -1
  28. package/dist/config/index.js +14 -35
  29. package/dist/config/index.js.map +1 -1
  30. package/dist/config/normalize-rule-options.d.ts +5 -8
  31. package/dist/config/normalize-rule-options.d.ts.map +1 -1
  32. package/dist/config/normalize-rule-options.js +24 -23
  33. package/dist/config/normalize-rule-options.js.map +1 -1
  34. package/dist/config/normalize-sync-imports-options.d.ts.map +1 -1
  35. package/dist/config/normalize-sync-imports-options.js +13 -4
  36. package/dist/config/normalize-sync-imports-options.js.map +1 -1
  37. package/dist/imports/check-sync-imports.d.ts +1 -1
  38. package/dist/imports/check-sync-imports.d.ts.map +1 -1
  39. package/dist/imports/check-sync-imports.js +2 -4
  40. package/dist/imports/check-sync-imports.js.map +1 -1
  41. package/dist/imports/sync-imports.d.ts.map +1 -1
  42. package/dist/imports/sync-imports.js +26 -20
  43. package/dist/imports/sync-imports.js.map +1 -1
  44. package/dist/imports/types.d.ts +6 -4
  45. package/dist/imports/types.d.ts.map +1 -1
  46. package/dist/index.d.ts +6 -3
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +3 -2
  49. package/dist/index.js.map +1 -1
  50. package/dist/run.d.ts +48 -0
  51. package/dist/run.d.ts.map +1 -0
  52. package/dist/run.js +105 -0
  53. package/dist/run.js.map +1 -0
  54. package/dist/shared/constants.d.ts +2 -3
  55. package/dist/shared/constants.d.ts.map +1 -1
  56. package/dist/shared/constants.js +2 -3
  57. package/dist/shared/constants.js.map +1 -1
  58. package/dist/shared/discipline-types.d.ts +19 -0
  59. package/dist/shared/discipline-types.d.ts.map +1 -0
  60. package/dist/shared/discipline-types.js +2 -0
  61. package/dist/shared/discipline-types.js.map +1 -0
  62. package/package.json +1 -1
@@ -32,7 +32,7 @@ function buildSuggestedPath(file, prefix, remainder, mode) {
32
32
  };
33
33
  }
34
34
  function planFolderizeCompoundFiles(sourceFiles, options) {
35
- if (!options.rules.folderizeCompoundFiles.enabled)
35
+ if (!options.rules.folderizeCompoundFiles)
36
36
  return [];
37
37
  const separators = options.rules.folderizeCompoundFiles.separators;
38
38
  const byDirectoryAndPrefix = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"folderize-plan.js","sourceRoot":"","sources":["../../../src/checks/rules/folderize-plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"folderize-plan.js","sourceRoot":"","sources":["../../../src/checks/rules/folderize-plan.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import type { CodeDisciplineViolation, NormalizedCheckCodeDisciplineOptions } from "../types.js";
1
+ import type { NormalizedCheckCodeDisciplineOptions } from "../types.js";
2
2
  import type { ScannedSourceFile } from "../../imports/types.js";
3
+ import type { CodeDisciplineViolation } from "../../shared/discipline-types.js";
3
4
  declare function runMaxFileLinesRule(sourceFiles: ScannedSourceFile[], options: NormalizedCheckCodeDisciplineOptions): Promise<CodeDisciplineViolation[]>;
4
5
  export { runMaxFileLinesRule };
5
6
  //# sourceMappingURL=max-file-lines.d.ts.map
@@ -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,CAyBpC;AAED,OAAO,EAAE,mBAAmB,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,oCAAoC,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAOhF,iBAAe,mBAAmB,CAChC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAyBpC;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -5,7 +5,7 @@ function countLines(text) {
5
5
  return text.split(/\r?\n/).length;
6
6
  }
7
7
  async function runMaxFileLinesRule(sourceFiles, options) {
8
- if (!options.rules.maxFileLines.enabled)
8
+ if (!options.rules.maxFileLines)
9
9
  return [];
10
10
  const violations = [];
11
11
  for (const file of sourceFiles) {
@@ -15,8 +15,8 @@ async function runMaxFileLinesRule(sourceFiles, options) {
15
15
  continue;
16
16
  violations.push({
17
17
  rule: "max-file-lines",
18
- stop: options.rules.maxFileLines.stop,
19
- fix: options.rules.maxFileLines.fix,
18
+ severity: options.rules.maxFileLines.severity,
19
+ fix: false,
20
20
  filePath: file.relativeFromProjectRoot,
21
21
  message: `file has ${lineCount} lines and exceeds the limit of ${options.rules.maxFileLines.max}`,
22
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,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"}
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;AAMlC,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;QAAE,OAAO,EAAE,CAAC;IAE3C,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,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ;YAC7C,GAAG,EAAE,KAAK;YACV,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"}
@@ -1,14 +1,14 @@
1
1
  import type { LoggingOptions } from "../shared/logging-types.js";
2
2
  import type { SourceScanOptions, SyncImportsRuleOptions } from "../imports/types.js";
3
- type RuleControlOptions = {
4
- enabled?: boolean;
5
- stop?: boolean;
6
- fix?: boolean;
3
+ import type { CodeDisciplineResult, CodeDisciplineSeverity } from "../shared/discipline-types.js";
4
+ type SeverityRuleOptions = {
5
+ severity?: CodeDisciplineSeverity;
7
6
  };
8
- type MaxFileLinesRuleOptions = RuleControlOptions & {
7
+ type MaxFileLinesRuleOptions = SeverityRuleOptions & {
9
8
  max?: number;
10
9
  };
11
- type FolderizeCompoundFilesRuleOptions = RuleControlOptions & {
10
+ type FolderizeCompoundFilesRuleOptions = SeverityRuleOptions & {
11
+ fix?: boolean;
12
12
  separators?: string[];
13
13
  };
14
14
  type CodeDisciplineRules = {
@@ -26,50 +26,29 @@ type CheckCodeDisciplineOptions = {
26
26
  };
27
27
  type FixCodeDisciplineOptions = CheckCodeDisciplineOptions;
28
28
  type CodeDisciplineConfig = Omit<CheckCodeDisciplineOptions, "projectRoot">;
29
- type NormalizedRuleControl = {
30
- enabled: boolean;
31
- stop: boolean;
32
- fix: boolean;
33
- };
34
- type NormalizedMaxFileLinesRule = NormalizedRuleControl & {
29
+ type NormalizedMaxFileLinesRule = {
30
+ severity: CodeDisciplineSeverity;
35
31
  max: number;
36
32
  };
37
- type NormalizedFolderizeCompoundFilesRule = NormalizedRuleControl & {
33
+ type NormalizedFolderizeCompoundFilesRule = {
34
+ severity: CodeDisciplineSeverity;
35
+ fix: boolean;
38
36
  separators: string[];
39
37
  };
40
38
  type NormalizedCheckCodeDisciplineOptions = SourceScanOptions & {
41
39
  sourceRootRelative: string;
42
40
  logging: LoggingOptions;
43
41
  rules: {
44
- maxFileLines: NormalizedMaxFileLinesRule;
45
- folderizeCompoundFiles: NormalizedFolderizeCompoundFilesRule;
46
- syncImports: SyncImportsRuleOptions;
42
+ maxFileLines?: NormalizedMaxFileLinesRule;
43
+ folderizeCompoundFiles?: NormalizedFolderizeCompoundFilesRule;
44
+ syncImports?: SyncImportsRuleOptions;
47
45
  };
48
46
  };
49
- type CodeDisciplineRuleName = "max-file-lines" | "folderize-compound-files" | "sync-imports";
50
- type CodeDisciplineViolation = {
51
- rule: CodeDisciplineRuleName;
52
- stop: boolean;
53
- fix: boolean;
54
- filePath: string;
55
- message: string;
56
- details: Record<string, unknown>;
57
- suggestedPath?: string;
58
- };
59
- type CheckCodeDisciplineResult = {
60
- ok: boolean;
61
- warnings: number;
62
- failures: number;
63
- violations: CodeDisciplineViolation[];
64
- };
65
- type FixCodeDisciplineResult = {
66
- ok: boolean;
47
+ type CheckCodeDisciplineResult = CodeDisciplineResult;
48
+ type FixCodeDisciplineResult = CodeDisciplineResult & {
67
49
  moved_files: number;
68
50
  rewritten_files: number;
69
51
  rewritten_imports: number;
70
- warnings: number;
71
- failures: number;
72
- violations: CodeDisciplineViolation[];
73
52
  };
74
- export type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, CodeDisciplineRuleName, CodeDisciplineRules, CodeDisciplineViolation, FixCodeDisciplineOptions, FixCodeDisciplineResult, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, NormalizedCheckCodeDisciplineOptions, NormalizedFolderizeCompoundFilesRule, NormalizedMaxFileLinesRule, NormalizedRuleControl, RuleControlOptions, };
53
+ export type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, CodeDisciplineRules, FixCodeDisciplineOptions, FixCodeDisciplineResult, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, NormalizedCheckCodeDisciplineOptions, NormalizedFolderizeCompoundFilesRule, NormalizedMaxFileLinesRule, SeverityRuleOptions, };
75
54
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checks/types.ts"],"names":[],"mappings":"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"}
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;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAElG,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC,CAAC;AAEF,KAAK,uBAAuB,GAAG,mBAAmB,GAAG;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,iCAAiC,GAAG,mBAAmB,GAAG;IAC7D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,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,0BAA0B,GAAG;IAChC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,KAAK,oCAAoC,GAAG;IAC1C,QAAQ,EAAE,sBAAsB,CAAC;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,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,CAAC,EAAE,0BAA0B,CAAC;QAC1C,sBAAsB,CAAC,EAAE,oCAAoC,CAAC;QAC9D,WAAW,CAAC,EAAE,sBAAsB,CAAC;KACtC,CAAC;CACH,CAAC;AAEF,KAAK,yBAAyB,GAAG,oBAAoB,CAAC;AAEtD,KAAK,uBAAuB,GAAG,oBAAoB,GAAG;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,iCAAiC,EACjC,uBAAuB,EACvB,oCAAoC,EACpC,oCAAoC,EACpC,0BAA0B,EAC1B,mBAAmB,GACpB,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;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"}
1
+ {"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAQA,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;AA+CF,iBAAe,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmFxF;AAQD,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC"}
@@ -1,17 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import { pathToFileURL } from "node:url";
3
- import { checkCodeDiscipline, fixCodeDiscipline } from "../checks/index.js";
4
- import { loadCodeDisciplineConfig } from "../config/index.js";
5
- import { syncImports } from "../imports/sync-imports.js";
3
+ import { codeDiscipline } from "../run.js";
4
+ import { loadCodeDisciplineConfigModule } from "../config/index.js";
6
5
  function renderHelp() {
7
6
  return [
8
- "Usage: code-discipline <command> [--config <path>]",
7
+ "Usage: code-discipline <command> --config <path>",
9
8
  "",
10
9
  "Commands:",
11
10
  " check run read-only discipline validation",
12
11
  " sync sync tsconfig aliases and import paths when syncImports.fix is true",
13
12
  " fix apply folderization moves when folderizeCompoundFiles.fix is true",
14
13
  "",
14
+ "Config:",
15
+ " --config <path> must point to a module that default-exports the config object.",
16
+ "",
15
17
  ].join("\n");
16
18
  }
17
19
  function parseArgs(args) {
@@ -32,34 +34,8 @@ function parseArgs(args) {
32
34
  }
33
35
  return { configPath, extra };
34
36
  }
35
- function buildSyncImportsOptions(projectRoot, config) {
36
- const syncRule = config.rules?.syncImports ?? {};
37
- return {
38
- projectRoot,
39
- sourceRoot: syncRule.sourceRoot ?? config.sourceRoot,
40
- tsconfigPath: syncRule.tsconfigPath,
41
- sourceExtensions: syncRule.sourceExtensions ?? config.sourceExtensions,
42
- excludeDirs: syncRule.excludeDirs ?? config.excludeDirs,
43
- enabled: syncRule.enabled,
44
- stop: syncRule.stop,
45
- fix: syncRule.fix,
46
- alias: syncRule.alias,
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,
59
- };
60
- }
61
37
  function formatViolation(violation) {
62
- const label = violation.stop ? "FAIL" : "WARN";
38
+ const label = violation.severity === "error" ? "ERROR" : "WARNING";
63
39
  const suggested = violation.suggestedPath ? ` suggested=${violation.suggestedPath}` : "";
64
40
  return `${label} ${violation.rule} ${violation.filePath} ${violation.message}${suggested}`;
65
41
  }
@@ -77,9 +53,16 @@ async function runCli(argv, options = {}) {
77
53
  if (parsed.extra.length > 0) {
78
54
  throw new Error(`Unexpected arguments: ${parsed.extra.join(" ")}`);
79
55
  }
80
- const { config } = await loadCodeDisciplineConfig(cwd, parsed.configPath);
56
+ if (!parsed.configPath) {
57
+ throw new Error("Missing required --config <path> option");
58
+ }
59
+ const { config } = await loadCodeDisciplineConfigModule(cwd, parsed.configPath);
81
60
  if (command === "check") {
82
- const result = await checkCodeDiscipline(buildCheckOptions(cwd, config));
61
+ const result = await codeDiscipline({
62
+ ...config,
63
+ mode: "check",
64
+ projectRoot: cwd,
65
+ });
83
66
  if (result.violations.length === 0) {
84
67
  stdout("No discipline violations found.\n");
85
68
  return { exitCode: 0 };
@@ -87,16 +70,24 @@ async function runCli(argv, options = {}) {
87
70
  for (const violation of result.violations) {
88
71
  stdout(`${formatViolation(violation)}\n`);
89
72
  }
90
- stdout(`Summary: ${result.failures} failures, ${result.warnings} warnings.\n`);
73
+ stdout(`Summary: ${result.errors} errors, ${result.warnings} warnings.\n`);
91
74
  return { exitCode: result.ok ? 0 : 1 };
92
75
  }
93
76
  if (command === "sync") {
94
- const result = await syncImports(buildSyncImportsOptions(cwd, config));
77
+ const result = await codeDiscipline({
78
+ ...config,
79
+ mode: "sync",
80
+ projectRoot: cwd,
81
+ });
95
82
  stdout(`${JSON.stringify(result)}\n`);
96
83
  return { exitCode: result.ok ? 0 : 1 };
97
84
  }
98
85
  if (command === "fix") {
99
- const result = await fixCodeDiscipline(buildCheckOptions(cwd, config));
86
+ const result = await codeDiscipline({
87
+ ...config,
88
+ mode: "fix",
89
+ projectRoot: cwd,
90
+ });
100
91
  if (result.violations.length > 0) {
101
92
  for (const violation of result.violations) {
102
93
  stdout(`${formatViolation(violation)}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-cli.js","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import type { CodeDisciplineConfig } from "../checks/types.js";
2
2
  type LoadedCodeDisciplineConfig = {
3
3
  config: CodeDisciplineConfig;
4
- configPath: string | null;
4
+ configPath: string;
5
5
  };
6
6
  declare function defineCodeDisciplineConfig(config: CodeDisciplineConfig): CodeDisciplineConfig;
7
- declare function loadCodeDisciplineConfig(projectRoot: string, configPath?: string): Promise<LoadedCodeDisciplineConfig>;
8
- export { defineCodeDisciplineConfig, loadCodeDisciplineConfig };
7
+ declare function loadCodeDisciplineConfigModule(projectRoot: string, configPath: string): Promise<LoadedCodeDisciplineConfig>;
8
+ export { defineCodeDisciplineConfig, loadCodeDisciplineConfigModule };
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAK/D,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,iBAAS,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAEtF;AAsBD,iBAAe,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAwBrH;AAED,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAS,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAEtF;AAED,iBAAe,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAsB1H;AAED,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,CAAC"}
@@ -1,49 +1,28 @@
1
- import fs from "node:fs/promises";
2
1
  import path from "node:path";
3
- import { CODE_DISCIPLINE_CONFIG_FILE } from "../shared/constants.js";
2
+ import { pathToFileURL } from "node:url";
4
3
  import { InvalidCodeDisciplineConfigError } from "../shared/errors.js";
5
4
  import { pathExists } from "../shared/utils.js";
6
5
  function defineCodeDisciplineConfig(config) {
7
6
  return config;
8
7
  }
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,
8
+ async function loadCodeDisciplineConfigModule(projectRoot, configPath) {
9
+ const resolvedPath = path.resolve(projectRoot, configPath);
10
+ if (!await pathExists(resolvedPath)) {
11
+ throw new InvalidCodeDisciplineConfigError("Config module was not found", {
12
+ filePath: resolvedPath,
24
13
  });
25
14
  }
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
- };
15
+ const imported = await import(pathToFileURL(resolvedPath).href);
16
+ const config = imported.default;
17
+ if (!config || typeof config !== "object" || Array.isArray(config)) {
18
+ throw new InvalidCodeDisciplineConfigError("Config module must default-export a config object", {
19
+ filePath: resolvedPath,
20
+ });
41
21
  }
42
- const text = await fs.readFile(resolvedPath, "utf8");
43
22
  return {
44
- config: parseCodeDisciplineConfig(text, resolvedPath),
23
+ config: config,
45
24
  configPath: resolvedPath,
46
25
  };
47
26
  }
48
- export { defineCodeDisciplineConfig, loadCodeDisciplineConfig };
27
+ export { defineCodeDisciplineConfig, loadCodeDisciplineConfigModule };
49
28
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
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;AAGzC,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,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,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAkB,CAAC;IAE3C,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,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,CAAC"}
@@ -1,20 +1,17 @@
1
1
  import type { FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions } from "../checks/types.js";
2
2
  import type { SyncImportsRuleOptions } from "../imports/types.js";
3
+ import type { CodeDisciplineSeverity } from "../shared/discipline-types.js";
3
4
  declare function normalizeMaxFileLinesRule(rule: MaxFileLinesRuleOptions | undefined): {
5
+ severity: CodeDisciplineSeverity;
4
6
  max: number;
5
- enabled: boolean;
6
- stop: boolean;
7
- fix: boolean;
8
7
  };
9
8
  declare function normalizeFolderizeCompoundFilesRule(rule: FolderizeCompoundFilesRuleOptions | undefined): {
10
- separators: string[];
11
- enabled: boolean;
12
- stop: boolean;
9
+ severity: CodeDisciplineSeverity;
13
10
  fix: boolean;
11
+ separators: string[];
14
12
  };
15
13
  declare function normalizeSyncImportsRule(rule: SyncImportsRuleOptions | undefined): {
16
- enabled: boolean;
17
- stop: boolean;
14
+ severity: CodeDisciplineSeverity;
18
15
  fix: boolean;
19
16
  tsconfigPath: string;
20
17
  alias: {
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-rule-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iCAAiC,EACjC,uBAAuB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAqBlE,iBAAS,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS;;;;;EAsB3E;AAED,iBAAS,mCAAmC,CAAC,IAAI,EAAE,iCAAiC,GAAG,SAAS;;;;;EAe/F;AAED,iBAAS,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS;;;;;;;;;;;EAmBzE;AAMD,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"normalize-rule-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,iCAAiC,EACjC,uBAAuB,EAExB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AA4B5E,iBAAS,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,SAAS;;;EAe3E;AAED,iBAAS,mCAAmC,CAAC,IAAI,EAAE,iCAAiC,GAAG,SAAS;;;;EAgB/F;AAED,iBAAS,wBAAwB,CAAC,IAAI,EAAE,sBAAsB,GAAG,SAAS;;;;;;;;;;EAmBzE;AAMD,OAAO,EAAE,mCAAmC,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DEFAULT_ALLOW_RELATIVE, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_RULE_FIX, DEFAULT_RULE_STOP, } from "../shared/constants.js";
1
+ import { DEFAULT_ALLOW_RELATIVE, DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS, DEFAULT_RULE_FIX, DEFAULT_RULE_SEVERITY, } 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,36 +10,35 @@ function assertRemovedKeys(ruleName, source, keys) {
10
10
  }
11
11
  }
12
12
  }
13
- function normalizeRuleControl(rule) {
14
- return {
15
- enabled: Boolean(rule?.enabled ?? false),
16
- stop: Boolean(rule?.stop ?? DEFAULT_RULE_STOP),
17
- fix: Boolean(rule?.fix ?? DEFAULT_RULE_FIX),
18
- };
13
+ function normalizeSeverity(ruleName, rule) {
14
+ const severity = rule?.severity ?? DEFAULT_RULE_SEVERITY;
15
+ if (severity !== "error" && severity !== "warning") {
16
+ throw new InvalidCodeDisciplineConfigError(`${ruleName}.severity must be "error" or "warning"`, {
17
+ rule: ruleName,
18
+ value: severity,
19
+ });
20
+ }
21
+ return severity;
19
22
  }
20
23
  function normalizeMaxFileLinesRule(rule) {
21
- const control = normalizeRuleControl(rule);
22
- assertRemovedKeys("maxFileLines", (rule ?? {}), ["severity"]);
23
- if (!control.enabled) {
24
- return {
25
- ...control,
26
- max: 0,
27
- };
28
- }
24
+ if (!rule)
25
+ return undefined;
26
+ assertRemovedKeys("maxFileLines", rule, ["enabled", "stop", "fix"]);
29
27
  if (!Number.isFinite(rule?.max)) {
30
- throw new InvalidCodeDisciplineConfigError("maxFileLines.max must be a finite number when the rule is enabled", {
28
+ throw new InvalidCodeDisciplineConfigError("maxFileLines.max must be a finite number when the rule is configured", {
31
29
  rule: "maxFileLines",
32
30
  value: rule?.max,
33
31
  });
34
32
  }
35
33
  return {
36
- ...control,
34
+ severity: normalizeSeverity("maxFileLines", rule),
37
35
  max: Math.max(1, Math.floor(rule.max)),
38
36
  };
39
37
  }
40
38
  function normalizeFolderizeCompoundFilesRule(rule) {
41
- const control = normalizeRuleControl(rule);
42
- assertRemovedKeys("folderizeCompoundFiles", (rule ?? {}), ["severity", "suffixes"]);
39
+ if (!rule)
40
+ return undefined;
41
+ assertRemovedKeys("folderizeCompoundFiles", rule, ["enabled", "stop", "suffixes"]);
43
42
  const separators = uniqueStrings(rule?.separators ?? DEFAULT_FOLDERIZE_COMPOUND_FILE_SEPARATORS);
44
43
  if (separators.length === 0) {
45
44
  throw new InvalidCodeDisciplineConfigError("folderizeCompoundFiles.separators must contain at least one separator", {
@@ -47,13 +46,16 @@ function normalizeFolderizeCompoundFilesRule(rule) {
47
46
  });
48
47
  }
49
48
  return {
50
- ...control,
49
+ severity: normalizeSeverity("folderizeCompoundFiles", rule),
50
+ fix: Boolean(rule.fix ?? DEFAULT_RULE_FIX),
51
51
  separators,
52
52
  };
53
53
  }
54
54
  function normalizeSyncImportsRule(rule) {
55
+ if (!rule)
56
+ return undefined;
55
57
  const source = (rule ?? {});
56
- assertRemovedKeys("syncImports", source, ["severity", "rewrite", "keepRelative"]);
58
+ assertRemovedKeys("syncImports", source, ["enabled", "stop", "rewrite", "keepRelative"]);
57
59
  if ("imports" in source) {
58
60
  throw new InvalidCodeDisciplineConfigError("syncImports.imports is no longer supported; use allowRelative directly under syncImports", {
59
61
  rule: "syncImports",
@@ -61,8 +63,7 @@ function normalizeSyncImportsRule(rule) {
61
63
  });
62
64
  }
63
65
  return {
64
- enabled: Boolean(rule?.enabled ?? false),
65
- stop: Boolean(rule?.stop ?? DEFAULT_RULE_STOP),
66
+ severity: normalizeSeverity("syncImports", rule),
66
67
  fix: Boolean(rule?.fix ?? DEFAULT_RULE_FIX),
67
68
  tsconfigPath: rule?.tsconfigPath,
68
69
  alias: rule?.alias,
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-rule-options.js","sourceRoot":"","sources":["../../src/config/normalize-rule-options.ts"],"names":[],"mappings":"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"}
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":"AAWA,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAI5F,iBAAe,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAyC7G;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"normalize-sync-imports-options.d.ts","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAiB5F,iBAAe,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAwC7G;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,15 +1,25 @@
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, DEFAULT_RULE_STOP, } from "../shared/constants.js";
2
+ import { DEFAULT_ALIAS_PREFIX, DEFAULT_ALIAS_RANDOM_LENGTH, DEFAULT_ALIAS_STRATEGY, DEFAULT_ALLOW_RELATIVE, DEFAULT_RULE_FIX, DEFAULT_RULE_SEVERITY, } 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
+ }
6
16
  async function normalizeSyncImportsOptions(options) {
7
17
  if ("imports" in options) {
8
18
  throw new InvalidCodeDisciplineConfigError("syncImports.imports is no longer supported; use allowRelative instead", {
9
19
  key: "imports",
10
20
  });
11
21
  }
12
- for (const key of ["rewrite", "keepRelative", "severity"]) {
22
+ for (const key of ["enabled", "stop", "rewrite", "keepRelative"]) {
13
23
  if (key in options) {
14
24
  throw new InvalidCodeDisciplineConfigError(`syncImports.${key} is no longer supported`, {
15
25
  key,
@@ -25,8 +35,7 @@ async function normalizeSyncImportsOptions(options) {
25
35
  return {
26
36
  ...source,
27
37
  tsconfigPath,
28
- enabled: options.enabled ?? true,
29
- stop: options.stop ?? DEFAULT_RULE_STOP,
38
+ severity: normalizeSeverity(options.severity),
30
39
  fix: options.fix ?? DEFAULT_RULE_FIX,
31
40
  alias: {
32
41
  prefix: options.alias?.prefix ?? DEFAULT_ALIAS_PREFIX,
@@ -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,EAChB,iBAAiB,GAClB,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,cAAc,EAAE,UAAU,CAAU,EAAE,CAAC;QACnE,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,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,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,iBAAiB;QACvC,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,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
+ {"version":3,"file":"normalize-sync-imports-options.js","sourceRoot":"","sources":["../../src/config/normalize-sync-imports-options.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { CodeDisciplineViolation } from "../checks/types.js";
2
1
  import type { NormalizedCodeDisciplineLogger } from "../shared/logging-types.js";
2
+ import type { CodeDisciplineViolation } from "../shared/discipline-types.js";
3
3
  import type { NormalizedSyncImportsOptions, ScannedSourceFile } from "./types.js";
4
4
  declare function collectSyncImportViolations(sourceFiles: ScannedSourceFile[], options: NormalizedSyncImportsOptions, logger?: NormalizedCodeDisciplineLogger): Promise<CodeDisciplineViolation[]>;
5
5
  export { collectSyncImportViolations };