@trebired/code-discipline 2.0.0 → 2.1.1
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 +13 -0
- package/README.md +13 -12
- package/dist/checks/fix-folderization.d.ts.map +1 -1
- package/dist/checks/fix-folderization.js +3 -27
- package/dist/checks/fix-folderization.js.map +1 -1
- package/dist/checks/index.d.ts +1 -2
- package/dist/checks/index.d.ts.map +1 -1
- package/dist/checks/index.js +12 -46
- package/dist/checks/index.js.map +1 -1
- package/dist/checks/rules/dry.d.ts.map +1 -1
- package/dist/checks/rules/dry.js +5 -23
- package/dist/checks/rules/dry.js.map +1 -1
- package/dist/checks/rules/folderize-compound-files.d.ts.map +1 -1
- package/dist/checks/rules/folderize-compound-files.js +1 -2
- package/dist/checks/rules/folderize-compound-files.js.map +1 -1
- package/dist/checks/rules/max-file-lines.d.ts.map +1 -1
- package/dist/checks/rules/max-file-lines.js +0 -1
- package/dist/checks/rules/max-file-lines.js.map +1 -1
- package/dist/checks/rules/max-function-lines.d.ts.map +1 -1
- package/dist/checks/rules/max-function-lines.js +0 -1
- package/dist/checks/rules/max-function-lines.js.map +1 -1
- package/dist/checks/types.d.ts +8 -20
- package/dist/checks/types.d.ts.map +1 -1
- package/dist/cli/run-cli.d.ts +1 -0
- package/dist/cli/run-cli.d.ts.map +1 -1
- package/dist/cli/run-cli.js +65 -18
- package/dist/cli/run-cli.js.map +1 -1
- package/dist/config/normalize-rule-options.d.ts +0 -7
- package/dist/config/normalize-rule-options.d.ts.map +1 -1
- package/dist/config/normalize-rule-options.js +24 -19
- 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 +6 -12
- package/dist/config/normalize-sync-imports-options.js.map +1 -1
- package/dist/imports/check-sync-imports.d.ts.map +1 -1
- package/dist/imports/check-sync-imports.js +3 -6
- 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 +13 -18
- package/dist/imports/sync-imports.js.map +1 -1
- package/dist/imports/types.d.ts +2 -5
- 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/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/constants.d.ts +1 -2
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +1 -2
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/discipline-types.d.ts +2 -5
- package/dist/shared/discipline-types.d.ts.map +1 -1
- package/dist/shared/logging.d.ts.map +1 -1
- package/dist/shared/logging.js +25 -39
- package/dist/shared/logging.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@trebired/code-discipline` will be documented here.
|
|
4
4
|
|
|
5
|
+
## 2.1.1
|
|
6
|
+
|
|
7
|
+
- Removed rule-level `fix` toggles from discipline config so mutation is decided by running `code-discipline fix`.
|
|
8
|
+
- Added saved CLI reports through `save`.
|
|
9
|
+
- Changed saved report filenames to explicit timestamped `cd-report-YYYY-MM-DD-HH-mm-ss.txt`.
|
|
10
|
+
|
|
11
|
+
## 2.1.0
|
|
12
|
+
|
|
13
|
+
- Removed severity from the public rule config, violation objects, and result summaries.
|
|
14
|
+
- Changed discipline and sync results to report `violationCount` instead of separate `errors` and `warnings`.
|
|
15
|
+
- Simplified CLI output to concise violation lines and short summaries instead of JSON-style payloads.
|
|
16
|
+
- Reduced logger noise by dropping large violation metadata from summary events and only emitting initialization logs when logging is enabled.
|
|
17
|
+
|
|
5
18
|
## 2.0.0
|
|
6
19
|
|
|
7
20
|
- Removed the top-level `code-discipline sync` command and the runtime `sync` / `startup` modes.
|
package/README.md
CHANGED
|
@@ -26,6 +26,7 @@ npm install @trebired/code-discipline
|
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
28
|
code-discipline check
|
|
29
|
+
code-discipline check save
|
|
29
30
|
code-discipline check max-function-lines dry
|
|
30
31
|
code-discipline fix
|
|
31
32
|
code-discipline fix sync-imports dry
|
|
@@ -39,6 +40,14 @@ Top-level `sync` is gone.
|
|
|
39
40
|
code-discipline fix sync-imports
|
|
40
41
|
```
|
|
41
42
|
|
|
43
|
+
If you want the terminal output written to a top-level file too, add `save`:
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
code-discipline check save
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
This writes a plain-text report to a timestamped file such as `cd-report-2026-05-26-19-00-00.txt`.
|
|
50
|
+
|
|
42
51
|
Typical `package.json` scripts can stay simple:
|
|
43
52
|
|
|
44
53
|
```json
|
|
@@ -93,21 +102,15 @@ export default defineCodeDisciplineConfig({
|
|
|
93
102
|
},
|
|
94
103
|
rules: {
|
|
95
104
|
maxFileLines: {
|
|
96
|
-
severity: "warning",
|
|
97
105
|
max: 500,
|
|
98
106
|
},
|
|
99
107
|
maxFunctionLines: {
|
|
100
|
-
severity: "warning",
|
|
101
108
|
max: 80,
|
|
102
109
|
},
|
|
103
110
|
folderizeCompoundFiles: {
|
|
104
|
-
severity: "error",
|
|
105
|
-
fix: true,
|
|
106
111
|
separators: ["_", "-"],
|
|
107
112
|
},
|
|
108
113
|
syncImports: {
|
|
109
|
-
severity: "error",
|
|
110
|
-
fix: true,
|
|
111
114
|
alias: {
|
|
112
115
|
prefix: "#",
|
|
113
116
|
strategy: "relative-path-slug",
|
|
@@ -119,8 +122,6 @@ export default defineCodeDisciplineConfig({
|
|
|
119
122
|
},
|
|
120
123
|
},
|
|
121
124
|
dry: {
|
|
122
|
-
severity: "error",
|
|
123
|
-
fix: true,
|
|
124
125
|
helpers: [
|
|
125
126
|
{
|
|
126
127
|
from: "./src/shared/to-text.ts",
|
|
@@ -167,7 +168,6 @@ const result = await codeDiscipline({
|
|
|
167
168
|
onlyRules: ["sync-imports"],
|
|
168
169
|
rules: {
|
|
169
170
|
syncImports: {
|
|
170
|
-
fix: true,
|
|
171
171
|
alias: {
|
|
172
172
|
strategy: "relative-path-slug",
|
|
173
173
|
},
|
|
@@ -185,11 +185,9 @@ const discipline = createCodeDiscipline({
|
|
|
185
185
|
sourceRoot: "src",
|
|
186
186
|
rules: {
|
|
187
187
|
maxFunctionLines: {
|
|
188
|
-
severity: "warning",
|
|
189
188
|
max: 80,
|
|
190
189
|
},
|
|
191
190
|
syncImports: {
|
|
192
|
-
fix: true,
|
|
193
191
|
alias: {
|
|
194
192
|
strategy: "relative-path-slug",
|
|
195
193
|
},
|
|
@@ -203,6 +201,8 @@ await discipline.fix({
|
|
|
203
201
|
});
|
|
204
202
|
```
|
|
205
203
|
|
|
204
|
+
Every violation is treated uniformly now. Results expose `ok`, `violationCount`, and `violations`, and the CLI prints concise rule/file/message lines instead of large JSON-style payloads.
|
|
205
|
+
|
|
206
206
|
## Rules
|
|
207
207
|
|
|
208
208
|
### `maxFileLines`
|
|
@@ -217,6 +217,8 @@ Reports function-like declarations whose total span exceeds `max`.
|
|
|
217
217
|
|
|
218
218
|
Detects flat compound names such as `user_route.ts` and can move them into structural folders such as `user/route.ts`.
|
|
219
219
|
|
|
220
|
+
The rule config only describes separators now. Whether it mutates is decided by running `code-discipline fix`.
|
|
221
|
+
|
|
220
222
|
### `syncImports`
|
|
221
223
|
|
|
222
224
|
Validates and optionally fixes:
|
|
@@ -246,7 +248,6 @@ Canonical helpers are registered by module export reference:
|
|
|
246
248
|
|
|
247
249
|
```ts
|
|
248
250
|
dry: {
|
|
249
|
-
fix: true,
|
|
250
251
|
helpers: [
|
|
251
252
|
{
|
|
252
253
|
from: "./src/shared/to-text.ts",
|
|
@@ -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,
|
|
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,CASzB;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,CAwDlC;AAED,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -8,8 +8,7 @@ import { planFolderizeCompoundFiles } from "./rules/folderize-plan.js";
|
|
|
8
8
|
function createFolderizationViolation(filePath, suggestedPath, options, details) {
|
|
9
9
|
return {
|
|
10
10
|
rule: "folderize-compound-files",
|
|
11
|
-
|
|
12
|
-
fix: options.rules.folderizeCompoundFiles?.fix ?? false,
|
|
11
|
+
fix: true,
|
|
13
12
|
filePath,
|
|
14
13
|
message: `file can be grouped under ${suggestedPath}`,
|
|
15
14
|
suggestedPath,
|
|
@@ -156,42 +155,20 @@ async function removeEmptyDirectories(directories) {
|
|
|
156
155
|
}
|
|
157
156
|
async function fixFolderization(sourceFiles, options, logger) {
|
|
158
157
|
const { moves, violations } = buildMovePlan(sourceFiles, options);
|
|
159
|
-
const warnings = violations.filter((violation) => violation.severity === "warning").length;
|
|
160
|
-
const errors = violations.length - warnings;
|
|
161
158
|
if (!options.rules.folderizeCompoundFiles || moves.length === 0) {
|
|
162
159
|
logger.info("fix-folderization-unchanged", "no folderization moves required", {
|
|
163
160
|
moves: 0,
|
|
164
161
|
});
|
|
165
162
|
return {
|
|
166
163
|
ok: true,
|
|
167
|
-
|
|
164
|
+
violationCount: 0,
|
|
168
165
|
moved_files: 0,
|
|
169
166
|
rewritten_files: 0,
|
|
170
167
|
rewritten_imports: 0,
|
|
171
168
|
ruleResults: {},
|
|
172
|
-
warnings,
|
|
173
169
|
violations: [],
|
|
174
170
|
};
|
|
175
171
|
}
|
|
176
|
-
if (!options.rules.folderizeCompoundFiles.fix) {
|
|
177
|
-
logger.warn("fix-folderization-disabled", "folderization fix is disabled", {
|
|
178
|
-
candidates: moves.length,
|
|
179
|
-
discipline: {
|
|
180
|
-
errors,
|
|
181
|
-
warnings,
|
|
182
|
-
},
|
|
183
|
-
});
|
|
184
|
-
return {
|
|
185
|
-
ok: errors === 0,
|
|
186
|
-
errors,
|
|
187
|
-
moved_files: 0,
|
|
188
|
-
rewritten_files: 0,
|
|
189
|
-
rewritten_imports: 0,
|
|
190
|
-
ruleResults: {},
|
|
191
|
-
warnings,
|
|
192
|
-
violations,
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
172
|
await validateMovePlan(moves);
|
|
196
173
|
const sourceDirectories = moves.map((move) => path.dirname(move.fromAbsolutePath));
|
|
197
174
|
try {
|
|
@@ -208,12 +185,11 @@ async function fixFolderization(sourceFiles, options, logger) {
|
|
|
208
185
|
});
|
|
209
186
|
return {
|
|
210
187
|
ok: true,
|
|
211
|
-
|
|
188
|
+
violationCount: 0,
|
|
212
189
|
moved_files: movedFiles,
|
|
213
190
|
rewritten_files: rewriteState.rewrittenFiles,
|
|
214
191
|
rewritten_imports: rewriteState.rewrittenImports,
|
|
215
192
|
ruleResults: {},
|
|
216
|
-
warnings: 0,
|
|
217
193
|
violations: [],
|
|
218
194
|
};
|
|
219
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-folderization.js","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AASvE,SAAS,4BAA4B,CACnC,QAAgB,EAChB,aAAqB,EACrB,OAA6C,EAC7C,OAAgC;IAEhC,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,
|
|
1
|
+
{"version":3,"file":"fix-folderization.js","sourceRoot":"","sources":["../../src/checks/fix-folderization.ts"],"names":[],"mappings":"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"}
|
package/dist/checks/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CheckCodeDisciplineOptions, CheckCodeDisciplineResult, CodeDisciplineSyncImportsRuleOptions, FixCodeDisciplineOptions, FixCodeDisciplineResult, NormalizedCheckCodeDisciplineOptions } from "./types.js";
|
|
2
|
-
declare function buildNormalizedSyncOptions(options: NormalizedCheckCodeDisciplineOptions, rule?: CodeDisciplineSyncImportsRuleOptions | undefined): {
|
|
2
|
+
declare function buildNormalizedSyncOptions(options: NormalizedCheckCodeDisciplineOptions, fix: boolean, rule?: CodeDisciplineSyncImportsRuleOptions | undefined): {
|
|
3
3
|
configPath: string;
|
|
4
4
|
projectRoot: string;
|
|
5
5
|
sourceRoot: string;
|
|
@@ -7,7 +7,6 @@ declare function buildNormalizedSyncOptions(options: NormalizedCheckCodeDiscipli
|
|
|
7
7
|
sourceExtensions: string[];
|
|
8
8
|
excludeDirs: string[];
|
|
9
9
|
tsconfigPath: string;
|
|
10
|
-
severity: import("../index.js").CodeDisciplineSeverity;
|
|
11
10
|
fix: boolean;
|
|
12
11
|
alias: {
|
|
13
12
|
prefix: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oCAAoC,EACpC,wBAAwB,EACxB,uBAAuB,EAGvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAEpB,iBAAS,0BAA0B,CACjC,OAAO,EAAE,oCAAoC,EAC7C,IAAI,GAAE,oCAAoC,GAAG,SAAqC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,oCAAoC,EACpC,wBAAwB,EACxB,uBAAuB,EAGvB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAEpB,iBAAS,0BAA0B,CACjC,OAAO,EAAE,oCAAoC,EAC7C,GAAG,EAAE,OAAO,EACZ,IAAI,GAAE,oCAAoC,GAAG,SAAqC;;;;;;;;;;;;;;;;;EAsBnF;AAuFD,iBAAe,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAQ1G;AAED,iBAAe,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmEpG;AAED,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/checks/index.js
CHANGED
|
@@ -9,7 +9,7 @@ import { runFolderizeCompoundFilesRule } from "./rules/folderize-compound-files.
|
|
|
9
9
|
import { collectDryViolations, fixDryRule } from "./rules/dry.js";
|
|
10
10
|
import { runMaxFileLinesRule } from "./rules/max-file-lines.js";
|
|
11
11
|
import { runMaxFunctionLinesRule } from "./rules/max-function-lines.js";
|
|
12
|
-
function buildNormalizedSyncOptions(options, rule = options.rules.syncImports) {
|
|
12
|
+
function buildNormalizedSyncOptions(options, fix, rule = options.rules.syncImports) {
|
|
13
13
|
if (!rule)
|
|
14
14
|
return null;
|
|
15
15
|
return {
|
|
@@ -20,8 +20,7 @@ function buildNormalizedSyncOptions(options, rule = options.rules.syncImports) {
|
|
|
20
20
|
sourceExtensions: rule.sourceExtensions ?? options.sourceExtensions,
|
|
21
21
|
excludeDirs: rule.excludeDirs ?? options.excludeDirs,
|
|
22
22
|
tsconfigPath: rule.tsconfigPath ?? `${options.projectRoot}/tsconfig.json`,
|
|
23
|
-
|
|
24
|
-
fix: rule.fix ?? false,
|
|
23
|
+
fix,
|
|
25
24
|
alias: {
|
|
26
25
|
prefix: rule.alias?.prefix ?? "#",
|
|
27
26
|
strategy: rule.alias?.strategy ?? "random",
|
|
@@ -36,48 +35,21 @@ function sortViolations(violations) {
|
|
|
36
35
|
return [...violations].sort((left, right) => left.filePath.localeCompare(right.filePath) || left.rule.localeCompare(right.rule));
|
|
37
36
|
}
|
|
38
37
|
function summarizeViolations(violations) {
|
|
39
|
-
const warnings = violations.filter((violation) => violation.severity === "warning").length;
|
|
40
|
-
const errors = violations.length - warnings;
|
|
41
38
|
return {
|
|
42
|
-
ok:
|
|
43
|
-
|
|
44
|
-
warnings,
|
|
39
|
+
ok: violations.length === 0,
|
|
40
|
+
violationCount: violations.length,
|
|
45
41
|
violations,
|
|
46
42
|
};
|
|
47
43
|
}
|
|
48
44
|
function logSummary(label, result, logger) {
|
|
49
|
-
if (result.
|
|
50
|
-
logger.flush("
|
|
51
|
-
|
|
52
|
-
errors: result.errors,
|
|
53
|
-
warnings: result.warnings,
|
|
54
|
-
},
|
|
55
|
-
errors: result.errors,
|
|
56
|
-
warnings: result.warnings,
|
|
57
|
-
violations: result.violations,
|
|
58
|
-
});
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
if (result.warnings > 0) {
|
|
62
|
-
logger.flush("warn", `discipline-${label}-warning`, `${label} completed with warning violations`, {
|
|
63
|
-
discipline: {
|
|
64
|
-
errors: result.errors,
|
|
65
|
-
warnings: result.warnings,
|
|
66
|
-
},
|
|
67
|
-
errors: result.errors,
|
|
68
|
-
warnings: result.warnings,
|
|
69
|
-
violations: result.violations,
|
|
45
|
+
if (result.violationCount > 0) {
|
|
46
|
+
logger.flush("warn", `discipline-${label}-violations`, `${label} found ${result.violationCount} violation(s)`, {
|
|
47
|
+
violationCount: result.violationCount,
|
|
70
48
|
});
|
|
71
49
|
return;
|
|
72
50
|
}
|
|
73
51
|
logger.flush("success", `discipline-${label}-ok`, `${label} completed`, {
|
|
74
|
-
|
|
75
|
-
errors: result.errors,
|
|
76
|
-
warnings: result.warnings,
|
|
77
|
-
},
|
|
78
|
-
errors: result.errors,
|
|
79
|
-
warnings: result.warnings,
|
|
80
|
-
violations: result.violations,
|
|
52
|
+
violationCount: 0,
|
|
81
53
|
});
|
|
82
54
|
}
|
|
83
55
|
async function collectViolations(options) {
|
|
@@ -96,7 +68,7 @@ async function collectViolations(options) {
|
|
|
96
68
|
violations.push(...await collectDryViolations(sourceFiles, options));
|
|
97
69
|
}
|
|
98
70
|
if (options.rules.syncImports && shouldRunRule("sync-imports", options.onlyRules)) {
|
|
99
|
-
const normalizedSyncOptions = buildNormalizedSyncOptions(options);
|
|
71
|
+
const normalizedSyncOptions = buildNormalizedSyncOptions(options, false);
|
|
100
72
|
if (normalizedSyncOptions) {
|
|
101
73
|
violations.push(...await collectSyncImportViolations(sourceFiles, normalizedSyncOptions));
|
|
102
74
|
}
|
|
@@ -106,8 +78,7 @@ async function collectViolations(options) {
|
|
|
106
78
|
function mapFixRuleResult(result) {
|
|
107
79
|
return {
|
|
108
80
|
ok: result.ok,
|
|
109
|
-
|
|
110
|
-
warnings: result.warnings,
|
|
81
|
+
violationCount: result.violationCount,
|
|
111
82
|
violations: result.violations,
|
|
112
83
|
moved_files: result.moved_files,
|
|
113
84
|
rewritten_files: result.rewritten_files,
|
|
@@ -157,7 +128,7 @@ async function fixCodeDiscipline(options) {
|
|
|
157
128
|
}
|
|
158
129
|
}
|
|
159
130
|
if (normalized.rules.syncImports && shouldRunFixRule("sync-imports", normalized)) {
|
|
160
|
-
const syncOptions = buildNormalizedSyncOptions(normalized);
|
|
131
|
+
const syncOptions = buildNormalizedSyncOptions(normalized, true);
|
|
161
132
|
if (syncOptions) {
|
|
162
133
|
const syncResult = await syncImports(syncOptions);
|
|
163
134
|
ruleResults["sync-imports"] = mapFixRuleResult(syncResult);
|
|
@@ -179,12 +150,7 @@ async function fixCodeDiscipline(options) {
|
|
|
179
150
|
}
|
|
180
151
|
else {
|
|
181
152
|
logger.flush("success", "discipline-fix-ok", "fix completed", {
|
|
182
|
-
|
|
183
|
-
errors: result.errors,
|
|
184
|
-
warnings: result.warnings,
|
|
185
|
-
},
|
|
186
|
-
errors: result.errors,
|
|
187
|
-
warnings: result.warnings,
|
|
153
|
+
violationCount: result.violationCount,
|
|
188
154
|
movedFiles: result.moved_files,
|
|
189
155
|
rewrittenFiles: result.rewritten_files,
|
|
190
156
|
rewrittenImports: result.rewritten_imports,
|
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,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAYxE,SAAS,0BAA0B,CACjC,OAA6C,EAC7C,OAAyD,OAAO,CAAC,KAAK,CAAC,WAAW;IAElF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU;QACjD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB;QACnE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW;QACpD,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,CAAC,WAAW,gBAAgB;QACzE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dry.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/dry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,2BAA2B,EAC3B,oCAAoC,EAErC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"dry.d.ts","sourceRoot":"","sources":["../../../src/checks/rules/dry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,2BAA2B,EAC3B,oCAAoC,EAErC,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAy9BhF,iBAAe,UAAU,CACvB,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,2BAA2B,CAAC,CAsJtC;AAED,iBAAe,oBAAoB,CACjC,WAAW,EAAE,iBAAiB,EAAE,EAChC,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAOpC;AAED,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC"}
|
package/dist/checks/rules/dry.js
CHANGED
|
@@ -569,8 +569,7 @@ async function resolveDryHelpers(rule, options) {
|
|
|
569
569
|
function createDryViolation(candidate, options) {
|
|
570
570
|
return {
|
|
571
571
|
rule: "dry",
|
|
572
|
-
|
|
573
|
-
fix: options.rules.dry?.fix ?? false,
|
|
572
|
+
fix: true,
|
|
574
573
|
filePath: candidate.filePath,
|
|
575
574
|
message: `${candidate.localName ?? "anonymous function"} duplicates registered helper ${candidate.helper.helperKey}`,
|
|
576
575
|
details: {
|
|
@@ -766,36 +765,22 @@ async function fixDryRule(sourceFiles, options) {
|
|
|
766
765
|
if (!rule) {
|
|
767
766
|
return {
|
|
768
767
|
ok: true,
|
|
769
|
-
|
|
770
|
-
warnings: 0,
|
|
768
|
+
violationCount: 0,
|
|
771
769
|
violations: [],
|
|
772
770
|
};
|
|
773
771
|
}
|
|
774
772
|
const helpers = await resolveDryHelpers(rule, options);
|
|
775
773
|
const candidates = await collectDryCandidates(sourceFiles, helpers, options);
|
|
776
774
|
const violations = candidates.map((candidate) => createDryViolation(candidate, options));
|
|
777
|
-
const warnings = violations.filter((violation) => violation.severity === "warning").length;
|
|
778
|
-
const errors = violations.length - warnings;
|
|
779
775
|
if (violations.length === 0) {
|
|
780
776
|
return {
|
|
781
777
|
ok: true,
|
|
782
|
-
|
|
783
|
-
warnings: 0,
|
|
778
|
+
violationCount: 0,
|
|
784
779
|
violations: [],
|
|
785
780
|
added_imports: 0,
|
|
786
781
|
removed_duplicates: 0,
|
|
787
782
|
};
|
|
788
783
|
}
|
|
789
|
-
if (!rule.fix) {
|
|
790
|
-
return {
|
|
791
|
-
ok: errors === 0,
|
|
792
|
-
errors,
|
|
793
|
-
warnings,
|
|
794
|
-
violations,
|
|
795
|
-
added_imports: 0,
|
|
796
|
-
removed_duplicates: 0,
|
|
797
|
-
};
|
|
798
|
-
}
|
|
799
784
|
const candidatesByFile = new Map();
|
|
800
785
|
const fixedCandidates = new Set();
|
|
801
786
|
for (const candidate of candidates.filter((entry) => entry.safeToFix)) {
|
|
@@ -898,12 +883,9 @@ async function fixDryRule(sourceFiles, options) {
|
|
|
898
883
|
const remainingViolations = candidates
|
|
899
884
|
.filter((candidate) => !fixedCandidates.has(candidate))
|
|
900
885
|
.map((candidate) => createDryViolation(candidate, options));
|
|
901
|
-
const remainingWarnings = remainingViolations.filter((violation) => violation.severity === "warning").length;
|
|
902
|
-
const remainingErrors = remainingViolations.length - remainingWarnings;
|
|
903
886
|
return {
|
|
904
|
-
ok:
|
|
905
|
-
|
|
906
|
-
warnings: remainingWarnings,
|
|
887
|
+
ok: remainingViolations.length === 0,
|
|
888
|
+
violationCount: remainingViolations.length,
|
|
907
889
|
violations: remainingViolations,
|
|
908
890
|
added_imports: addedImports,
|
|
909
891
|
removed_duplicates: removedDuplicates,
|