@trebired/code-discipline 1.3.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to `@trebired/code-discipline` will be documented here.
4
4
 
5
+ ## 1.4.0
6
+
7
+ - Added `codeDiscipline({ mode, ... })` as the package-owned runtime dispatcher for `check`, `fix`, `sync`, and startup-style sync usage.
8
+ - Added `createCodeDiscipline(config)` so consuming apps can bind repo config once and call `.check()`, `.fix()`, `.sync()`, or `.startup()`.
9
+ - Refactored the package CLI to use the shared runtime dispatcher instead of maintaining separate command routing logic.
10
+ - Updated the README and tests around the simpler logger-style consumption path.
11
+
5
12
  ## 1.3.0
6
13
 
7
14
  - Replaced rule-level `stop` with severity-based discipline results using `severity: "error" | "warning"`.
package/README.md CHANGED
@@ -39,6 +39,70 @@ Command responsibilities stay clean:
39
39
 
40
40
  Both `sync` and `fix` are gated by rule config. They do not mutate anything unless their rule has `fix: true`.
41
41
 
42
+ ## Simple Runtime API
43
+
44
+ For app startup or scripts, you can now use one package-owned entrypoint instead of hand-rolling mode dispatch in app code.
45
+
46
+ ```ts
47
+ import { codeDiscipline } from "@trebired/code-discipline";
48
+
49
+ const result = await codeDiscipline({
50
+ mode: "check",
51
+ projectRoot: process.cwd(),
52
+ rules: {
53
+ maxFileLines: {
54
+ severity: "warning",
55
+ max: 500,
56
+ },
57
+ },
58
+ });
59
+ ```
60
+
61
+ `mode: "startup"` is a convenience alias for sync-oriented startup flows:
62
+
63
+ ```ts
64
+ import { codeDiscipline } from "@trebired/code-discipline";
65
+
66
+ await codeDiscipline({
67
+ mode: "startup",
68
+ projectRoot: PROJECT_ROOT,
69
+ logger,
70
+ rules: {
71
+ syncImports: {
72
+ severity: "error",
73
+ fix: true,
74
+ alias: {
75
+ strategy: "relative-path-slug",
76
+ },
77
+ allowRelative: ["./"],
78
+ },
79
+ },
80
+ });
81
+ ```
82
+
83
+ If you want to define repo rules once and reuse them, create a bound helper:
84
+
85
+ ```ts
86
+ import { createCodeDiscipline } from "@trebired/code-discipline";
87
+
88
+ const discipline = createCodeDiscipline({
89
+ sourceRoot: "src",
90
+ rules: {
91
+ syncImports: {
92
+ severity: "error",
93
+ fix: true,
94
+ alias: {
95
+ strategy: "relative-path-slug",
96
+ },
97
+ allowRelative: ["./"],
98
+ },
99
+ },
100
+ });
101
+
102
+ await discipline.startup({ projectRoot: PROJECT_ROOT, logger });
103
+ process.exitCode = (await discipline.check({ projectRoot: process.cwd() })).ok ? 0 : 1;
104
+ ```
105
+
42
106
  ## Config
43
107
 
44
108
  Rules are enabled by presence. If a rule object exists under `rules`, it runs. If the rule is omitted, it is disabled.
@@ -204,6 +268,8 @@ The default/common logger adaptation path is powered by `@trebired/logger-adapte
204
268
 
205
269
  ## Public API
206
270
 
271
+ - `codeDiscipline()`
272
+ - `createCodeDiscipline()`
207
273
  - `checkCodeDiscipline()`
208
274
  - `fixCodeDiscipline()`
209
275
  - `syncImports()`
@@ -1 +1 @@
1
- {"version":3,"file":"run-cli.d.ts","sourceRoot":"","sources":["../../src/cli/run-cli.ts"],"names":[],"mappings":";AAWA,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;AA2EF,iBAAe,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAuExF;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,8 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { pathToFileURL } from "node:url";
3
- import { checkCodeDiscipline, fixCodeDiscipline } from "../checks/index.js";
3
+ import { codeDiscipline } from "../run.js";
4
4
  import { loadCodeDisciplineConfigModule } from "../config/index.js";
5
- import { syncImports } from "../imports/sync-imports.js";
6
5
  function renderHelp() {
7
6
  return [
8
7
  "Usage: code-discipline <command> --config <path>",
@@ -35,31 +34,6 @@ function parseArgs(args) {
35
34
  }
36
35
  return { configPath, extra };
37
36
  }
38
- function buildSyncImportsOptions(projectRoot, config) {
39
- const syncRule = config.rules?.syncImports ?? {};
40
- return {
41
- projectRoot,
42
- sourceRoot: syncRule.sourceRoot ?? config.sourceRoot,
43
- tsconfigPath: syncRule.tsconfigPath,
44
- sourceExtensions: syncRule.sourceExtensions ?? config.sourceExtensions,
45
- excludeDirs: syncRule.excludeDirs ?? config.excludeDirs,
46
- severity: syncRule.severity,
47
- fix: syncRule.fix,
48
- alias: syncRule.alias,
49
- allowRelative: syncRule.allowRelative,
50
- logging: config.logging ?? syncRule.logging,
51
- };
52
- }
53
- function buildCheckOptions(projectRoot, config) {
54
- return {
55
- projectRoot,
56
- sourceRoot: config.sourceRoot,
57
- sourceExtensions: config.sourceExtensions,
58
- excludeDirs: config.excludeDirs,
59
- logging: config.logging,
60
- rules: config.rules,
61
- };
62
- }
63
37
  function formatViolation(violation) {
64
38
  const label = violation.severity === "error" ? "ERROR" : "WARNING";
65
39
  const suggested = violation.suggestedPath ? ` suggested=${violation.suggestedPath}` : "";
@@ -84,7 +58,11 @@ async function runCli(argv, options = {}) {
84
58
  }
85
59
  const { config } = await loadCodeDisciplineConfigModule(cwd, parsed.configPath);
86
60
  if (command === "check") {
87
- const result = await checkCodeDiscipline(buildCheckOptions(cwd, config));
61
+ const result = await codeDiscipline({
62
+ ...config,
63
+ mode: "check",
64
+ projectRoot: cwd,
65
+ });
88
66
  if (result.violations.length === 0) {
89
67
  stdout("No discipline violations found.\n");
90
68
  return { exitCode: 0 };
@@ -96,12 +74,20 @@ async function runCli(argv, options = {}) {
96
74
  return { exitCode: result.ok ? 0 : 1 };
97
75
  }
98
76
  if (command === "sync") {
99
- const result = await syncImports(buildSyncImportsOptions(cwd, config));
77
+ const result = await codeDiscipline({
78
+ ...config,
79
+ mode: "sync",
80
+ projectRoot: cwd,
81
+ });
100
82
  stdout(`${JSON.stringify(result)}\n`);
101
83
  return { exitCode: result.ok ? 0 : 1 };
102
84
  }
103
85
  if (command === "fix") {
104
- const result = await fixCodeDiscipline(buildCheckOptions(cwd, config));
86
+ const result = await codeDiscipline({
87
+ ...config,
88
+ mode: "fix",
89
+ projectRoot: cwd,
90
+ });
105
91
  if (result.violations.length > 0) {
106
92
  for (const violation of result.violations) {
107
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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"}
package/dist/index.d.ts CHANGED
@@ -8,10 +8,12 @@ export { rewriteSourceImports } from "./imports/rewrite.js";
8
8
  export { scanSourceFiles } from "./imports/scan.js";
9
9
  export { createRandomAlias, createRelativePathHashAlias, createRelativePathSlugAlias } from "./imports/strategies.js";
10
10
  export { syncImports } from "./imports/sync-imports.js";
11
+ export { codeDiscipline, createCodeDiscipline } from "./run.js";
11
12
  export { resolveLogger } from "./shared/logging.js";
12
13
  export { AliasCollisionError, FileConflictError, FixFailureError, InvalidCodeDisciplineConfigError, InvalidAliasError, InvalidProjectRootError, InvalidSourceRootError, InvalidTsconfigPathError, ParseFailureError, RewriteFailureError, SyncImportsError, isSyncImportsError, } from "./shared/errors.js";
13
14
  export type { CodeDisciplineResult, CodeDisciplineRuleName, CodeDisciplineSeverity, CodeDisciplineViolation, } from "./shared/discipline-types.js";
14
15
  export type { CodeDisciplineLogAdapterFn, CodeDisciplineLogEvent, CodeDisciplineLogLevel, LogAdapterFn, LoggingOptions, NormalizedCodeDisciplineLogger, NormalizedSyncImportsLogger, SyncImportsLogEvent, SyncImportsLogLevel, } from "./shared/logging-types.js";
15
16
  export type { AliasRecord, AliasStrategyFn, AliasStrategyInput, AllowRelativeContext, AllowRelativeFn, NormalizedSyncImportsOptions, RewriteFileResult, RewriteResult, ScannedSourceFile, SourceScanOptions, SyncAliasesResult, SyncImportsOptions, SyncImportsResult, SyncImportsRuleOptions, TsconfigJson, } from "./imports/types.js";
17
+ export type { CheckCodeDisciplineCommandOptions, CodeDisciplineInvocationOptions, CodeDisciplineMode, CodeDisciplineOptions, CodeDisciplineResult as RunCodeDisciplineResult, CodeDisciplineRuntimeMode, CreatedCodeDiscipline, FixCodeDisciplineCommandOptions, StartupCodeDisciplineCommandOptions, SyncCodeDisciplineCommandOptions, } from "./run.js";
16
18
  export type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, CodeDisciplineRules, FixCodeDisciplineOptions, FixCodeDisciplineResult, FolderizeCompoundFilesRuleOptions, MaxFileLinesRuleOptions, NormalizedCheckCodeDisciplineOptions, NormalizedFolderizeCompoundFilesRule, NormalizedMaxFileLinesRule, SeverityRuleOptions, } from "./checks/types.js";
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,0CAA0C,EAC1C,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gCAAgC,EAChC,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,8BAA8B,EAC9B,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,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,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,0CAA0C,EAC1C,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gCAAgC,EAChC,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,8BAA8B,EAC9B,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,iCAAiC,EACjC,+BAA+B,EAC/B,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,IAAI,uBAAuB,EAC/C,yBAAyB,EACzB,qBAAqB,EACrB,+BAA+B,EAC/B,mCAAmC,EACnC,gCAAgC,GACjC,MAAM,UAAU,CAAC;AAElB,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,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { rewriteSourceImports } from "./imports/rewrite.js";
8
8
  export { scanSourceFiles } from "./imports/scan.js";
9
9
  export { createRandomAlias, createRelativePathHashAlias, createRelativePathSlugAlias } from "./imports/strategies.js";
10
10
  export { syncImports } from "./imports/sync-imports.js";
11
+ export { codeDiscipline, createCodeDiscipline } from "./run.js";
11
12
  export { resolveLogger } from "./shared/logging.js";
12
13
  export { AliasCollisionError, FileConflictError, FixFailureError, InvalidCodeDisciplineConfigError, InvalidAliasError, InvalidProjectRootError, InvalidSourceRootError, InvalidTsconfigPathError, ParseFailureError, RewriteFailureError, SyncImportsError, isSyncImportsError, } from "./shared/errors.js";
13
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,0CAA0C,EAC1C,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gCAAgC,EAChC,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,0CAA0C,EAC1C,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtH,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,gCAAgC,EAChC,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
package/dist/run.d.ts ADDED
@@ -0,0 +1,48 @@
1
+ import type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineConfig, FixCodeDisciplineResult } from "./checks/types.js";
2
+ import type { SyncImportsResult } from "./imports/types.js";
3
+ import type { LoggingOptions } from "./shared/logging-types.js";
4
+ type CodeDisciplineMode = "check" | "fix" | "sync";
5
+ type CodeDisciplineRuntimeMode = CodeDisciplineMode | "startup";
6
+ type CodeDisciplineInvocationOptions = {
7
+ projectRoot: string;
8
+ logging?: LoggingOptions;
9
+ logger?: unknown;
10
+ quiet?: boolean;
11
+ };
12
+ type CodeDisciplineOptions = CheckCodeDisciplineOptions & {
13
+ mode: CodeDisciplineRuntimeMode;
14
+ logger?: unknown;
15
+ quiet?: boolean;
16
+ };
17
+ type CheckCodeDisciplineCommandOptions = Omit<CodeDisciplineOptions, "mode"> & {
18
+ mode: "check";
19
+ };
20
+ type FixCodeDisciplineCommandOptions = Omit<CodeDisciplineOptions, "mode"> & {
21
+ mode: "fix";
22
+ };
23
+ type SyncCodeDisciplineCommandOptions = Omit<CodeDisciplineOptions, "mode"> & {
24
+ mode: "sync";
25
+ };
26
+ type StartupCodeDisciplineCommandOptions = Omit<CodeDisciplineOptions, "mode"> & {
27
+ mode: "startup";
28
+ };
29
+ type CodeDisciplineResult = CheckCodeDisciplineResult | FixCodeDisciplineResult | SyncImportsResult;
30
+ type CreatedCodeDiscipline = {
31
+ config: CodeDisciplineConfig;
32
+ run: (options: CodeDisciplineInvocationOptions & {
33
+ mode: CodeDisciplineRuntimeMode;
34
+ }) => Promise<CodeDisciplineResult>;
35
+ check: (options: CodeDisciplineInvocationOptions) => Promise<CheckCodeDisciplineResult>;
36
+ fix: (options: CodeDisciplineInvocationOptions) => Promise<FixCodeDisciplineResult>;
37
+ sync: (options: CodeDisciplineInvocationOptions) => Promise<SyncImportsResult>;
38
+ startup: (options: CodeDisciplineInvocationOptions) => Promise<SyncImportsResult>;
39
+ };
40
+ declare function codeDiscipline(options: CheckCodeDisciplineCommandOptions): Promise<CheckCodeDisciplineResult>;
41
+ declare function codeDiscipline(options: FixCodeDisciplineCommandOptions): Promise<FixCodeDisciplineResult>;
42
+ declare function codeDiscipline(options: SyncCodeDisciplineCommandOptions): Promise<SyncImportsResult>;
43
+ declare function codeDiscipline(options: StartupCodeDisciplineCommandOptions): Promise<SyncImportsResult>;
44
+ declare function codeDiscipline(options: CodeDisciplineOptions): Promise<CodeDisciplineResult>;
45
+ declare function createCodeDiscipline(config: CodeDisciplineConfig): CreatedCodeDiscipline;
46
+ export { codeDiscipline, createCodeDiscipline };
47
+ export type { CheckCodeDisciplineCommandOptions, CodeDisciplineInvocationOptions, CodeDisciplineMode, CodeDisciplineOptions, CodeDisciplineResult, CodeDisciplineRuntimeMode, CreatedCodeDiscipline, FixCodeDisciplineCommandOptions, StartupCodeDisciplineCommandOptions, SyncCodeDisciplineCommandOptions, };
48
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/dist/run.js ADDED
@@ -0,0 +1,105 @@
1
+ import { checkCodeDiscipline, fixCodeDiscipline } from "./checks/index.js";
2
+ import { syncImports } from "./imports/sync-imports.js";
3
+ function resolveLoggingOptions(options) {
4
+ const hasLogger = options.logger !== undefined;
5
+ const hasQuiet = options.quiet !== undefined;
6
+ if (!options.logging && !hasLogger && !hasQuiet) {
7
+ return undefined;
8
+ }
9
+ return {
10
+ ...options.logging,
11
+ enabled: options.logging?.enabled ?? (hasLogger ? true : undefined),
12
+ logger: hasLogger ? options.logger : options.logging?.logger,
13
+ quiet: hasQuiet ? options.quiet : options.logging?.quiet,
14
+ };
15
+ }
16
+ function mergeLoggingOptions(baseLogging, options) {
17
+ return resolveLoggingOptions({
18
+ logging: {
19
+ ...baseLogging,
20
+ ...options.logging,
21
+ enabled: options.logging?.enabled ?? baseLogging?.enabled,
22
+ logger: options.logging?.logger ?? baseLogging?.logger,
23
+ quiet: options.logging?.quiet ?? baseLogging?.quiet,
24
+ adapter: options.logging?.adapter ?? baseLogging?.adapter,
25
+ },
26
+ logger: options.logger,
27
+ quiet: options.quiet,
28
+ });
29
+ }
30
+ function buildCheckOptions(options) {
31
+ return {
32
+ projectRoot: options.projectRoot,
33
+ sourceRoot: options.sourceRoot,
34
+ sourceExtensions: options.sourceExtensions,
35
+ excludeDirs: options.excludeDirs,
36
+ logging: resolveLoggingOptions(options),
37
+ rules: options.rules,
38
+ };
39
+ }
40
+ function buildSyncOptions(options) {
41
+ const syncRule = options.rules?.syncImports ?? {};
42
+ return {
43
+ projectRoot: options.projectRoot,
44
+ sourceRoot: syncRule.sourceRoot ?? options.sourceRoot,
45
+ tsconfigPath: syncRule.tsconfigPath,
46
+ sourceExtensions: syncRule.sourceExtensions ?? options.sourceExtensions,
47
+ excludeDirs: syncRule.excludeDirs ?? options.excludeDirs,
48
+ severity: syncRule.severity,
49
+ fix: syncRule.fix,
50
+ alias: syncRule.alias,
51
+ allowRelative: syncRule.allowRelative,
52
+ logging: resolveLoggingOptions({
53
+ logging: options.logging ?? syncRule.logging,
54
+ logger: options.logger,
55
+ quiet: options.quiet,
56
+ }),
57
+ };
58
+ }
59
+ async function codeDiscipline(options) {
60
+ const mode = options.mode === "startup" ? "sync" : options.mode;
61
+ if (mode === "check") {
62
+ return checkCodeDiscipline(buildCheckOptions(options));
63
+ }
64
+ if (mode === "fix") {
65
+ return fixCodeDiscipline(buildCheckOptions(options));
66
+ }
67
+ return syncImports(buildSyncOptions(options));
68
+ }
69
+ function createCodeDiscipline(config) {
70
+ return {
71
+ config,
72
+ run: (options) => codeDiscipline({
73
+ ...config,
74
+ ...options,
75
+ mode: options.mode,
76
+ logging: mergeLoggingOptions(config.logging, options),
77
+ }),
78
+ check: (options) => codeDiscipline({
79
+ ...config,
80
+ ...options,
81
+ mode: "check",
82
+ logging: mergeLoggingOptions(config.logging, options),
83
+ }),
84
+ fix: (options) => codeDiscipline({
85
+ ...config,
86
+ ...options,
87
+ mode: "fix",
88
+ logging: mergeLoggingOptions(config.logging, options),
89
+ }),
90
+ sync: (options) => codeDiscipline({
91
+ ...config,
92
+ ...options,
93
+ mode: "sync",
94
+ logging: mergeLoggingOptions(config.logging, options),
95
+ }),
96
+ startup: (options) => codeDiscipline({
97
+ ...config,
98
+ ...options,
99
+ mode: "startup",
100
+ logging: mergeLoggingOptions(config.logging, options),
101
+ }),
102
+ };
103
+ }
104
+ export { codeDiscipline, createCodeDiscipline };
105
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trebired/code-discipline",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Configurable codebase discipline checks and import syncing for Bun and Node.js projects.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "keywords": [