@trebired/code-discipline 1.5.0 → 2.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 +9 -0
- package/README.md +164 -266
- package/dist/checks/fix-folderization.d.ts.map +1 -1
- package/dist/checks/fix-folderization.js +3 -0
- package/dist/checks/fix-folderization.js.map +1 -1
- package/dist/checks/index.d.ts +4 -2
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +102 -37
- package/dist/checks/index.js.map +1 -1
- package/dist/checks/rule-slugs.d.ts +15 -0
- package/dist/checks/rule-slugs.d.ts.map +1 -0
- package/dist/checks/rule-slugs.js +62 -0
- package/dist/checks/rule-slugs.js.map +1 -0
- package/dist/checks/rules/dry.d.ts +7 -0
- package/dist/checks/rules/dry.d.ts.map +1 -0
- package/dist/checks/rules/dry.js +922 -0
- package/dist/checks/rules/dry.js.map +1 -0
- package/dist/checks/types.d.ts +48 -17
- 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 +15 -21
- package/dist/cli/run-cli.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -3
- package/dist/cli.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +122 -16
- package/dist/config/index.js.map +1 -1
- package/dist/config/normalize-check-options.d.ts +2 -2
- package/dist/config/normalize-check-options.d.ts.map +1 -1
- package/dist/config/normalize-check-options.js +6 -2
- package/dist/config/normalize-check-options.js.map +1 -1
- package/dist/config/normalize-rule-options.d.ts +9 -4
- package/dist/config/normalize-rule-options.d.ts.map +1 -1
- package/dist/config/normalize-rule-options.js +42 -1
- 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 +2 -0
- package/dist/config/normalize-sync-imports-options.js.map +1 -1
- package/dist/imports/aliases.d.ts.map +1 -1
- package/dist/imports/aliases.js +6 -2
- package/dist/imports/aliases.js.map +1 -1
- package/dist/imports/check-sync-imports.d.ts.map +1 -1
- package/dist/imports/check-sync-imports.js +19 -0
- package/dist/imports/check-sync-imports.js.map +1 -1
- package/dist/imports/sync-imports.d.ts.map +1 -1
- package/dist/imports/sync-imports.js +11 -1
- package/dist/imports/sync-imports.js.map +1 -1
- package/dist/imports/types.d.ts +10 -1
- package/dist/imports/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/run.d.ts +15 -18
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +9 -38
- package/dist/run.js.map +1 -1
- package/dist/runtime/orchestrate.d.ts +2 -3
- package/dist/runtime/orchestrate.d.ts.map +1 -1
- package/dist/runtime/orchestrate.js +0 -10
- package/dist/runtime/orchestrate.js.map +1 -1
- package/dist/runtime/runtime-imports-sync.d.ts +12 -3
- package/dist/runtime/runtime-imports-sync.d.ts.map +1 -1
- package/dist/runtime/runtime-imports-sync.js +34 -32
- package/dist/runtime/runtime-imports-sync.js.map +1 -1
- package/dist/runtime/tsconfig-paths.d.ts +1 -1
- package/dist/runtime/tsconfig-paths.d.ts.map +1 -1
- package/dist/runtime/tsconfig-paths.js +1 -1
- package/dist/runtime/tsconfig-paths.js.map +1 -1
- package/dist/shared/discipline-types.d.ts +1 -1
- package/dist/shared/discipline-types.d.ts.map +1 -1
- package/dist/shared/utils.d.ts +2 -1
- package/dist/shared/utils.d.ts.map +1 -1
- package/dist/shared/utils.js +14 -1
- package/dist/shared/utils.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@trebired/code-discipline` will be documented here.
|
|
4
4
|
|
|
5
|
+
## 2.0.0
|
|
6
|
+
|
|
7
|
+
- Removed the top-level `code-discipline sync` command and the runtime `sync` / `startup` modes.
|
|
8
|
+
- Changed the package-owned surface to `check` and `fix`, with positional rule selectors such as `code-discipline fix sync-imports`.
|
|
9
|
+
- Changed config auto-discovery to the new `tb.code-discipline.*` filenames and added package-owned TypeScript config loading for Node and Bun.
|
|
10
|
+
- Added the `dry` rule for canonical helper registration, duplicate detection, and full-removal standalone autofix.
|
|
11
|
+
- Moved optional `package.json#imports` syncing under `rules.syncImports.packageJsonImports`.
|
|
12
|
+
- Changed `fixCodeDiscipline()` from a folderization-only mutation path into a rule-ordered fix pipeline with `ruleResults`.
|
|
13
|
+
|
|
5
14
|
## 1.5.0
|
|
6
15
|
|
|
7
16
|
- Added direct config auto-discovery so the CLI can be used as `code-discipline check`, `fix`, and `sync` without mandatory wrapper scripts or `--config` flags.
|
package/README.md
CHANGED
|
@@ -1,178 +1,95 @@
|
|
|
1
1
|
# @trebired/code-discipline
|
|
2
2
|
|
|
3
|
-
Configurable repository discipline checks
|
|
3
|
+
Configurable repository discipline checks and rule-driven fixes for Bun and Node.js projects.
|
|
4
4
|
|
|
5
|
-
`@trebired/code-discipline`
|
|
5
|
+
`@trebired/code-discipline` stays in one lane:
|
|
6
|
+
|
|
7
|
+
- code shape rules such as max lines per file or function
|
|
8
|
+
- structural rules such as folderizing compound files
|
|
9
|
+
- sync rules such as keeping source imports, `tsconfig.json`, and optional `package.json#imports` aligned
|
|
10
|
+
- DRY enforcement against registered canonical helper functions
|
|
11
|
+
|
|
12
|
+
It is not a formatter, linter replacement, or build system.
|
|
6
13
|
|
|
7
14
|
## Install
|
|
8
15
|
|
|
9
|
-
Runtime support:
|
|
16
|
+
Runtime support:
|
|
17
|
+
|
|
18
|
+
- Bun 1+
|
|
19
|
+
- Node.js 18+
|
|
10
20
|
|
|
11
21
|
```sh
|
|
12
22
|
npm install @trebired/code-discipline
|
|
13
23
|
```
|
|
14
24
|
|
|
15
|
-
## Why This Package
|
|
16
|
-
|
|
17
|
-
Some repository rules are not really single-file lint rules. They are about the shape of the tree:
|
|
18
|
-
|
|
19
|
-
- files growing too large
|
|
20
|
-
- functions growing too large
|
|
21
|
-
- compound filenames that want to become folders
|
|
22
|
-
- alias drift between `tsconfig.json` and source imports
|
|
23
|
-
- returning structured policy results that a caller can interpret
|
|
24
|
-
|
|
25
|
-
That is the lane of this package.
|
|
26
|
-
|
|
27
25
|
## Commands
|
|
28
26
|
|
|
29
27
|
```sh
|
|
30
28
|
code-discipline check
|
|
31
|
-
code-discipline
|
|
29
|
+
code-discipline check max-function-lines dry
|
|
32
30
|
code-discipline fix
|
|
31
|
+
code-discipline fix sync-imports dry
|
|
33
32
|
```
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
- `discipline.config.mjs`
|
|
38
|
-
- `discipline.config.js`
|
|
39
|
-
- `discipline.config.cjs`
|
|
40
|
-
- `code-discipline.config.mjs`
|
|
41
|
-
- `code-discipline.config.js`
|
|
42
|
-
- `code-discipline.config.cjs`
|
|
34
|
+
Top-level `sync` is gone.
|
|
43
35
|
|
|
44
|
-
|
|
36
|
+
`sync-imports` is now just another fixable rule, so targeted sync work is done through:
|
|
45
37
|
|
|
46
38
|
```sh
|
|
47
|
-
code-discipline
|
|
39
|
+
code-discipline fix sync-imports
|
|
48
40
|
```
|
|
49
41
|
|
|
50
|
-
Typical `package.json` scripts can
|
|
42
|
+
Typical `package.json` scripts can stay simple:
|
|
51
43
|
|
|
52
44
|
```json
|
|
53
45
|
{
|
|
54
46
|
"scripts": {
|
|
55
47
|
"discipline:check": "code-discipline check",
|
|
56
|
-
"discipline:fix": "code-discipline fix"
|
|
57
|
-
"discipline:sync": "code-discipline sync"
|
|
48
|
+
"discipline:fix": "code-discipline fix"
|
|
58
49
|
}
|
|
59
50
|
}
|
|
60
51
|
```
|
|
61
52
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- `check`: read-only validation and logging
|
|
65
|
-
- `sync`: package-owned synchronization work from config
|
|
66
|
-
- `fix`: configured structural fixes only
|
|
53
|
+
## Config
|
|
67
54
|
|
|
68
|
-
|
|
55
|
+
The CLI auto-discovers a top-level config module in this order:
|
|
69
56
|
|
|
70
|
-
- `
|
|
71
|
-
- `
|
|
72
|
-
- `
|
|
57
|
+
- `tb.code-discipline.ts`
|
|
58
|
+
- `tb.code-discipline.mts`
|
|
59
|
+
- `tb.code-discipline.mjs`
|
|
60
|
+
- `tb.code-discipline.js`
|
|
61
|
+
- `tb.code-discipline.cts`
|
|
62
|
+
- `tb.code-discipline.cjs`
|
|
73
63
|
|
|
74
|
-
|
|
64
|
+
`tb.code-discipline.ts` is the recommended default.
|
|
75
65
|
|
|
76
|
-
|
|
66
|
+
You can still point at an explicit module path:
|
|
77
67
|
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const result = await codeDiscipline({
|
|
82
|
-
mode: "check",
|
|
83
|
-
projectRoot: process.cwd(),
|
|
84
|
-
rules: {
|
|
85
|
-
maxFileLines: {
|
|
86
|
-
severity: "warning",
|
|
87
|
-
max: 500,
|
|
88
|
-
},
|
|
89
|
-
maxFunctionLines: {
|
|
90
|
-
severity: "warning",
|
|
91
|
-
max: 80,
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
});
|
|
68
|
+
```sh
|
|
69
|
+
code-discipline check --config ./discipline.config.mjs
|
|
95
70
|
```
|
|
96
71
|
|
|
97
|
-
|
|
72
|
+
Legacy config filenames are no longer auto-discovered, but they still work when passed explicitly with `--config`.
|
|
98
73
|
|
|
99
|
-
|
|
100
|
-
import { codeDiscipline } from "@trebired/code-discipline";
|
|
74
|
+
Rules are enabled by presence. If a rule object exists under `rules`, it runs.
|
|
101
75
|
|
|
102
|
-
|
|
103
|
-
mode: "startup",
|
|
104
|
-
projectRoot: PROJECT_ROOT,
|
|
105
|
-
logger,
|
|
106
|
-
rules: {
|
|
107
|
-
syncImports: {
|
|
108
|
-
severity: "error",
|
|
109
|
-
fix: true,
|
|
110
|
-
alias: {
|
|
111
|
-
strategy: "relative-path-slug",
|
|
112
|
-
},
|
|
113
|
-
allowRelative: ["./"],
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
});
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
If you want to define repo rules once and reuse them, create a bound helper:
|
|
76
|
+
Example `tb.code-discipline.ts`:
|
|
120
77
|
|
|
121
78
|
```ts
|
|
122
|
-
import {
|
|
79
|
+
import { defineCodeDisciplineConfig } from "@trebired/code-discipline";
|
|
123
80
|
|
|
124
|
-
|
|
125
|
-
sourceRoot: "src",
|
|
126
|
-
rules: {
|
|
127
|
-
syncImports: {
|
|
128
|
-
severity: "error",
|
|
129
|
-
fix: true,
|
|
130
|
-
alias: {
|
|
131
|
-
strategy: "relative-path-slug",
|
|
132
|
-
},
|
|
133
|
-
allowRelative: ["./"],
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
await discipline.startup({ projectRoot: PROJECT_ROOT, logger });
|
|
139
|
-
process.exitCode = (await discipline.check({ projectRoot: process.cwd() })).ok ? 0 : 1;
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Config
|
|
143
|
-
|
|
144
|
-
Rules are enabled by presence. If a rule object exists under `rules`, it runs. If the rule is omitted, it is disabled.
|
|
145
|
-
|
|
146
|
-
`severity` is discipline metadata, not a logger level and not process control. The library never calls `process.exit()` from core APIs. Callers decide what to do with `ok`, `errors`, and `warnings`.
|
|
147
|
-
|
|
148
|
-
Example config module:
|
|
149
|
-
|
|
150
|
-
```js
|
|
151
|
-
export default {
|
|
81
|
+
export default defineCodeDisciplineConfig({
|
|
152
82
|
sourceRoot: "src",
|
|
153
83
|
sourceExtensions: [".ts", ".tsx", ".js", ".jsx"],
|
|
154
84
|
excludeDirs: ["node_modules", "dist", ".vite"],
|
|
155
|
-
logging: {
|
|
156
|
-
enabled: true,
|
|
157
|
-
quiet: false,
|
|
158
|
-
},
|
|
159
85
|
tsconfigPaths: {
|
|
160
86
|
normalize: "relative-dot-prefix",
|
|
161
87
|
restoreAfterRun: true,
|
|
162
88
|
},
|
|
163
|
-
runtimeImportsSync: {
|
|
164
|
-
enabled: true,
|
|
165
|
-
source: "tsconfig.paths",
|
|
166
|
-
target: "package.json.imports",
|
|
167
|
-
aliasPrefix: "#",
|
|
168
|
-
},
|
|
169
89
|
lifecycle: {
|
|
170
90
|
async beforeRun(context) {
|
|
171
91
|
context.state.started = true;
|
|
172
92
|
},
|
|
173
|
-
async afterRun(context, result) {
|
|
174
|
-
context.state.finished = result.ok;
|
|
175
|
-
},
|
|
176
93
|
},
|
|
177
94
|
rules: {
|
|
178
95
|
maxFileLines: {
|
|
@@ -192,220 +109,201 @@ export default {
|
|
|
192
109
|
severity: "error",
|
|
193
110
|
fix: true,
|
|
194
111
|
alias: {
|
|
112
|
+
prefix: "#",
|
|
195
113
|
strategy: "relative-path-slug",
|
|
196
114
|
},
|
|
197
115
|
allowRelative: ["./"],
|
|
116
|
+
packageJsonImports: {
|
|
117
|
+
enabled: true,
|
|
118
|
+
aliasPrefix: "#",
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
dry: {
|
|
122
|
+
severity: "error",
|
|
123
|
+
fix: true,
|
|
124
|
+
helpers: [
|
|
125
|
+
{
|
|
126
|
+
from: "./src/shared/to-text.ts",
|
|
127
|
+
exportName: "toText",
|
|
128
|
+
},
|
|
129
|
+
],
|
|
198
130
|
},
|
|
199
131
|
},
|
|
200
|
-
};
|
|
132
|
+
});
|
|
201
133
|
```
|
|
202
134
|
|
|
203
|
-
##
|
|
204
|
-
|
|
205
|
-
If a project needs package-owned preprocessing or postprocessing around discipline commands, use config hooks instead of wrapper scripts.
|
|
135
|
+
## Rule Selectors
|
|
206
136
|
|
|
207
|
-
|
|
137
|
+
`check` and `fix` both accept positional rule selectors:
|
|
208
138
|
|
|
209
|
-
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
The hook context includes:
|
|
215
|
-
|
|
216
|
-
- `mode`
|
|
217
|
-
- `projectRoot`
|
|
218
|
-
- `configPath`
|
|
219
|
-
- `config`
|
|
220
|
-
- mutable `state`
|
|
221
|
-
|
|
222
|
-
## Optional Tsconfig Path Normalization
|
|
139
|
+
```sh
|
|
140
|
+
code-discipline check max-file-lines max-function-lines
|
|
141
|
+
code-discipline fix sync-imports dry
|
|
142
|
+
```
|
|
223
143
|
|
|
224
|
-
|
|
144
|
+
Rules use kebab-case public slugs:
|
|
225
145
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
},
|
|
232
|
-
};
|
|
233
|
-
```
|
|
146
|
+
- `max-file-lines`
|
|
147
|
+
- `max-function-lines`
|
|
148
|
+
- `folderize-compound-files`
|
|
149
|
+
- `sync-imports`
|
|
150
|
+
- `dry`
|
|
234
151
|
|
|
235
|
-
|
|
152
|
+
`fix` only accepts fixable rules. Trying to run `code-discipline fix max-function-lines` fails clearly.
|
|
236
153
|
|
|
237
|
-
|
|
238
|
-
- `"strip-dot-prefix"`: turns `./src/x.ts` into `src/x.ts`
|
|
239
|
-
- `"none"`: disables the helper
|
|
154
|
+
## Runtime API
|
|
240
155
|
|
|
241
|
-
|
|
156
|
+
The package-owned runtime dispatcher now has two modes only:
|
|
242
157
|
|
|
243
|
-
|
|
158
|
+
- `check`
|
|
159
|
+
- `fix`
|
|
244
160
|
|
|
245
|
-
|
|
161
|
+
```ts
|
|
162
|
+
import { codeDiscipline } from "@trebired/code-discipline";
|
|
246
163
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
164
|
+
const result = await codeDiscipline({
|
|
165
|
+
mode: "fix",
|
|
166
|
+
projectRoot: process.cwd(),
|
|
167
|
+
onlyRules: ["sync-imports"],
|
|
168
|
+
rules: {
|
|
169
|
+
syncImports: {
|
|
170
|
+
fix: true,
|
|
171
|
+
alias: {
|
|
172
|
+
strategy: "relative-path-slug",
|
|
173
|
+
},
|
|
174
|
+
},
|
|
254
175
|
},
|
|
255
|
-
};
|
|
176
|
+
});
|
|
256
177
|
```
|
|
257
178
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
- only aliases matching the configured prefix or prefixes are managed
|
|
261
|
-
- unrelated existing `package.json#imports` entries are preserved
|
|
262
|
-
- the feature runs through `code-discipline sync` and `mode: "sync"` / `mode: "startup"`
|
|
263
|
-
|
|
264
|
-
## Checks
|
|
265
|
-
|
|
266
|
-
`checkCodeDiscipline()` is read-only. It never moves files, rewrites imports, or updates `tsconfig.json`.
|
|
179
|
+
You can also bind config once:
|
|
267
180
|
|
|
268
181
|
```ts
|
|
269
|
-
import {
|
|
182
|
+
import { createCodeDiscipline } from "@trebired/code-discipline";
|
|
270
183
|
|
|
271
|
-
const
|
|
272
|
-
|
|
184
|
+
const discipline = createCodeDiscipline({
|
|
185
|
+
sourceRoot: "src",
|
|
273
186
|
rules: {
|
|
274
|
-
maxFileLines: {
|
|
275
|
-
severity: "warning",
|
|
276
|
-
max: 500,
|
|
277
|
-
},
|
|
278
187
|
maxFunctionLines: {
|
|
279
188
|
severity: "warning",
|
|
280
189
|
max: 80,
|
|
281
190
|
},
|
|
282
|
-
folderizeCompoundFiles: {
|
|
283
|
-
severity: "error",
|
|
284
|
-
separators: ["_", "-"],
|
|
285
|
-
},
|
|
286
191
|
syncImports: {
|
|
287
|
-
|
|
288
|
-
fix: false,
|
|
192
|
+
fix: true,
|
|
289
193
|
alias: {
|
|
290
194
|
strategy: "relative-path-slug",
|
|
291
195
|
},
|
|
292
|
-
allowRelative: ["./"],
|
|
293
196
|
},
|
|
294
197
|
},
|
|
295
198
|
});
|
|
199
|
+
|
|
200
|
+
await discipline.fix({
|
|
201
|
+
projectRoot: process.cwd(),
|
|
202
|
+
onlyRules: ["sync-imports"],
|
|
203
|
+
});
|
|
296
204
|
```
|
|
297
205
|
|
|
298
|
-
|
|
206
|
+
## Rules
|
|
299
207
|
|
|
300
|
-
|
|
301
|
-
type CodeDisciplineSeverity = "error" | "warning";
|
|
302
|
-
|
|
303
|
-
type CodeDisciplineViolation = {
|
|
304
|
-
rule: "max-file-lines" | "max-function-lines" | "folderize-compound-files" | "sync-imports";
|
|
305
|
-
severity: CodeDisciplineSeverity;
|
|
306
|
-
fix: boolean;
|
|
307
|
-
filePath: string;
|
|
308
|
-
message: string;
|
|
309
|
-
details: Record<string, unknown>;
|
|
310
|
-
suggestedPath?: string;
|
|
311
|
-
};
|
|
312
|
-
|
|
313
|
-
type CodeDisciplineResult = {
|
|
314
|
-
ok: boolean;
|
|
315
|
-
errors: number;
|
|
316
|
-
warnings: number;
|
|
317
|
-
violations: CodeDisciplineViolation[];
|
|
318
|
-
};
|
|
319
|
-
```
|
|
208
|
+
### `maxFileLines`
|
|
320
209
|
|
|
321
|
-
|
|
210
|
+
Reports files whose total line count exceeds `max`.
|
|
322
211
|
|
|
323
|
-
|
|
212
|
+
### `maxFunctionLines`
|
|
324
213
|
|
|
325
|
-
|
|
214
|
+
Reports function-like declarations whose total span exceeds `max`.
|
|
326
215
|
|
|
327
|
-
|
|
328
|
-
- function expressions
|
|
329
|
-
- arrow functions
|
|
330
|
-
- class methods
|
|
331
|
-
- constructors
|
|
332
|
-
- getters and setters
|
|
216
|
+
### `folderizeCompoundFiles`
|
|
333
217
|
|
|
334
|
-
|
|
218
|
+
Detects flat compound names such as `user_route.ts` and can move them into structural folders such as `user/route.ts`.
|
|
335
219
|
|
|
336
|
-
|
|
220
|
+
### `syncImports`
|
|
337
221
|
|
|
338
|
-
|
|
222
|
+
Validates and optionally fixes:
|
|
339
223
|
|
|
340
|
-
|
|
224
|
+
- `tsconfig.compilerOptions.paths`
|
|
225
|
+
- relative source imports that should become aliases
|
|
226
|
+
- optional `package.json#imports` drift through `packageJsonImports`
|
|
341
227
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
228
|
+
Example targeted CLI usage:
|
|
229
|
+
|
|
230
|
+
```sh
|
|
231
|
+
code-discipline fix sync-imports
|
|
346
232
|
```
|
|
347
233
|
|
|
348
|
-
|
|
234
|
+
### `dry`
|
|
349
235
|
|
|
350
|
-
|
|
351
|
-
src/api/user/route.ts
|
|
352
|
-
src/api/user/schema.ts
|
|
353
|
-
src/api/user/controller.ts
|
|
354
|
-
```
|
|
236
|
+
Registers canonical helper functions and reports exact normalized duplicates.
|
|
355
237
|
|
|
356
|
-
|
|
238
|
+
The first version is intentionally conservative:
|
|
357
239
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
240
|
+
- matching is exact normalized structure, not heuristic similarity
|
|
241
|
+
- whitespace, comments, function names, and local identifier names do not matter
|
|
242
|
+
- class/object methods are report-only
|
|
243
|
+
- autofix only runs when the duplicate can be removed completely and replaced by a canonical import
|
|
361
244
|
|
|
362
|
-
|
|
245
|
+
Canonical helpers are registered by module export reference:
|
|
363
246
|
|
|
364
|
-
```
|
|
365
|
-
|
|
247
|
+
```ts
|
|
248
|
+
dry: {
|
|
249
|
+
fix: true,
|
|
250
|
+
helpers: [
|
|
251
|
+
{
|
|
252
|
+
from: "./src/shared/to-text.ts",
|
|
253
|
+
exportName: "toText",
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
from: "./src/shared/normalize.ts",
|
|
257
|
+
exportName: "default",
|
|
258
|
+
},
|
|
259
|
+
],
|
|
260
|
+
}
|
|
366
261
|
```
|
|
367
262
|
|
|
368
|
-
|
|
263
|
+
Supported canonical helper exports:
|
|
369
264
|
|
|
370
|
-
|
|
265
|
+
- exported function declarations
|
|
266
|
+
- exported const bindings initialized with function expressions or arrow functions
|
|
267
|
+
- default exports of those function shapes
|
|
371
268
|
|
|
372
|
-
##
|
|
269
|
+
## Lifecycle Hooks
|
|
373
270
|
|
|
374
|
-
|
|
271
|
+
Hooks remain package-owned and generic:
|
|
375
272
|
|
|
376
|
-
|
|
377
|
-
|
|
273
|
+
- `beforeRun(context)`
|
|
274
|
+
- `afterRun(context, result)`
|
|
275
|
+
- `beforeMode(context)`
|
|
276
|
+
- `afterMode(context, result)`
|
|
378
277
|
|
|
379
|
-
|
|
380
|
-
projectRoot: "/repo",
|
|
381
|
-
severity: "error",
|
|
382
|
-
fix: true,
|
|
383
|
-
alias: {
|
|
384
|
-
strategy: "relative-path-slug",
|
|
385
|
-
},
|
|
386
|
-
allowRelative: ["./"],
|
|
387
|
-
});
|
|
388
|
-
```
|
|
278
|
+
The hook context includes:
|
|
389
279
|
|
|
390
|
-
|
|
280
|
+
- `mode`
|
|
281
|
+
- `projectRoot`
|
|
282
|
+
- `configPath`
|
|
283
|
+
- `config`
|
|
284
|
+
- mutable `state`
|
|
391
285
|
|
|
392
|
-
|
|
393
|
-
- `fix: true` rewrites imports and updates `tsconfig.json`
|
|
394
|
-
- `allowRelative: ["./"]` keeps same-folder relative imports
|
|
395
|
-
- upward relative imports can be reported or rewritten through the configured alias policy
|
|
286
|
+
## Tsconfig Path Normalization
|
|
396
287
|
|
|
397
|
-
`
|
|
288
|
+
Use `tsconfigPaths` when a run needs temporary `compilerOptions.paths` normalization:
|
|
289
|
+
|
|
290
|
+
```ts
|
|
291
|
+
tsconfigPaths: {
|
|
292
|
+
normalize: "relative-dot-prefix",
|
|
293
|
+
restoreAfterRun: true,
|
|
294
|
+
}
|
|
295
|
+
```
|
|
398
296
|
|
|
399
|
-
|
|
297
|
+
Available modes:
|
|
400
298
|
|
|
401
|
-
|
|
299
|
+
- `"relative-dot-prefix"` turns `src/x.ts` into `./src/x.ts`
|
|
300
|
+
- `"strip-dot-prefix"` turns `./src/x.ts` into `src/x.ts`
|
|
301
|
+
- `"none"` leaves values unchanged
|
|
402
302
|
|
|
403
|
-
|
|
303
|
+
## Advanced Helpers
|
|
404
304
|
|
|
405
|
-
|
|
305
|
+
Low-level helpers are still exported for advanced tooling:
|
|
406
306
|
|
|
407
|
-
- `codeDiscipline()`
|
|
408
|
-
- `createCodeDiscipline()`
|
|
409
307
|
- `checkCodeDiscipline()`
|
|
410
308
|
- `fixCodeDiscipline()`
|
|
411
309
|
- `syncImports()`
|
|
@@ -416,4 +314,4 @@ The default/common logger adaptation path is powered by `@trebired/logger-adapte
|
|
|
416
314
|
- `restoreTsconfigPaths()`
|
|
417
315
|
- `syncPackageJsonImportsFromTsconfigPaths()`
|
|
418
316
|
|
|
419
|
-
|
|
317
|
+
`syncImports()` remains available as a lower-level helper, but the package CLI no longer exposes a separate `sync` command.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-folderization.d.ts","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAO7E,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,oCAAoC,EAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,uBAAuB,CAUzB;AAED,iBAAS,aAAa,CACpB,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,uBAAuB,EAAE,CAAA;CAAE,CAqBjE;AAsKD,iBAAe,gBAAgB,CAC7B,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,EAC7C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"fix-folderization.d.ts","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,uBAAuB,EACvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAO7E,KAAK,WAAW,GAAG;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,oCAAoC,EAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,uBAAuB,CAUzB;AAED,iBAAS,aAAa,CACpB,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,UAAU,EAAE,uBAAuB,EAAE,CAAA;CAAE,CAqBjE;AAsKD,iBAAe,gBAAgB,CAC7B,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,EAC7C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAgFlC;AAED,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -168,6 +168,7 @@ async function fixFolderization(sourceFiles, options, logger) {
|
|
|
168
168
|
moved_files: 0,
|
|
169
169
|
rewritten_files: 0,
|
|
170
170
|
rewritten_imports: 0,
|
|
171
|
+
ruleResults: {},
|
|
171
172
|
warnings,
|
|
172
173
|
violations: [],
|
|
173
174
|
};
|
|
@@ -186,6 +187,7 @@ async function fixFolderization(sourceFiles, options, logger) {
|
|
|
186
187
|
moved_files: 0,
|
|
187
188
|
rewritten_files: 0,
|
|
188
189
|
rewritten_imports: 0,
|
|
190
|
+
ruleResults: {},
|
|
189
191
|
warnings,
|
|
190
192
|
violations,
|
|
191
193
|
};
|
|
@@ -210,6 +212,7 @@ async function fixFolderization(sourceFiles, options, logger) {
|
|
|
210
212
|
moved_files: movedFiles,
|
|
211
213
|
rewritten_files: rewriteState.rewrittenFiles,
|
|
212
214
|
rewritten_imports: rewriteState.rewrittenImports,
|
|
215
|
+
ruleResults: {},
|
|
213
216
|
warnings: 0,
|
|
214
217
|
violations: [],
|
|
215
218
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-folderization.js","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fix-folderization.js","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"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"}
|