@monorepolint/rules 0.6.0-alpha.3 → 0.6.0-alpha.4
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/.turbo/turbo-clean.log +1 -1
- package/.turbo/turbo-compile-typescript.log +1 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +73 -74
- package/.turbo/turbo-transpile-typescript.log +4 -4
- package/CHANGELOG.md +10 -0
- package/build/js/index.js +104 -69
- package/build/js/index.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/bannedDependencies.d.ts.map +1 -1
- package/build/types/forceError.d.ts +4 -0
- package/build/types/forceError.d.ts.map +1 -0
- package/build/types/index.d.ts +2 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/mustSatisfyPeerDependencies.d.ts.map +1 -1
- package/build/types/nestedWorkspaces.d.ts.map +1 -1
- package/build/types/oncePerPackage.d.ts +11 -0
- package/build/types/oncePerPackage.d.ts.map +1 -0
- package/build/types/requireDependency.d.ts.map +1 -1
- package/build/types/util/packageDependencyGraphService.d.ts.map +1 -1
- package/coverage/clover.xml +516 -469
- package/coverage/coverage-final.json +12 -10
- package/coverage/index.html +15 -15
- package/coverage/src/alphabeticalDependencies.ts.html +6 -6
- package/coverage/src/alphabeticalScripts.ts.html +1 -1
- package/coverage/src/bannedDependencies.ts.html +7 -10
- package/coverage/src/consistentDependencies.ts.html +7 -13
- package/coverage/src/consistentVersions.ts.html +31 -46
- package/coverage/src/fileContents.ts.html +1 -1
- package/coverage/src/forceError.ts.html +184 -0
- package/coverage/src/index.html +73 -43
- package/coverage/src/index.ts.html +10 -4
- package/coverage/src/mustSatisfyPeerDependencies.ts.html +16 -61
- package/coverage/src/nestedWorkspaces.ts.html +10 -22
- package/coverage/src/oncePerPackage.ts.html +181 -0
- package/coverage/src/packageEntry.ts.html +1 -1
- package/coverage/src/packageOrder.ts.html +1 -1
- package/coverage/src/packageScript.ts.html +1 -1
- package/coverage/src/requireDependency.ts.html +7 -13
- package/coverage/src/standardTsconfig.ts.html +6 -6
- package/coverage/src/util/checkAlpha.ts.html +1 -1
- package/coverage/src/util/createRuleFactory.ts.html +1 -1
- package/coverage/src/util/index.html +10 -10
- package/coverage/src/util/makeDirectory.ts.html +1 -1
- package/coverage/src/util/packageDependencyGraphService.ts.html +7 -13
- package/package.json +4 -4
- package/src/__tests__/fileContents.spec.ts +1 -5
- package/src/__tests__/nestedWorkspaces.spec.ts +1 -2
- package/src/__tests__/packageEntry.spec.ts +1 -6
- package/src/__tests__/packageOrder.spec.ts +1 -6
- package/src/__tests__/packageScript.spec.ts +1 -6
- package/src/bannedDependencies.ts +1 -2
- package/src/consistentDependencies.ts +1 -3
- package/src/consistentVersions.ts +24 -29
- package/src/forceError.ts +33 -0
- package/src/index.ts +2 -0
- package/src/mustSatisfyPeerDependencies.ts +10 -25
- package/src/nestedWorkspaces.ts +4 -8
- package/src/oncePerPackage.ts +32 -0
- package/src/requireDependency.ts +1 -3
- package/src/util/packageDependencyGraphService.ts +1 -3
- package/vitest.config.mjs +1 -5
package/coverage/index.html
CHANGED
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">94.
|
|
26
|
+
<span class="strong">94.62% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>1762/1862</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">94.
|
|
47
|
+
<span class="strong">94.62% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>1762/1862</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,32 +80,32 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file high" data-value="src"><a href="src/index.html">src</a></td>
|
|
83
|
-
<td data-value="94.
|
|
83
|
+
<td data-value="94.84" class="pic high">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="94.
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="94.84" class="pct high">94.84%</td>
|
|
87
|
+
<td data-value="1707" class="abs high">1619/1707</td>
|
|
88
88
|
<td data-value="88.74" class="pct high">88.74%</td>
|
|
89
89
|
<td data-value="302" class="abs high">268/302</td>
|
|
90
90
|
<td data-value="91.66" class="pct high">91.66%</td>
|
|
91
91
|
<td data-value="48" class="abs high">44/48</td>
|
|
92
|
-
<td data-value="94.
|
|
93
|
-
<td data-value="
|
|
92
|
+
<td data-value="94.84" class="pct high">94.84%</td>
|
|
93
|
+
<td data-value="1707" class="abs high">1619/1707</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
97
|
<td class="file high" data-value="src/util"><a href="src/util/index.html">src/util</a></td>
|
|
98
|
-
<td data-value="92.
|
|
98
|
+
<td data-value="92.25" class="pic high">
|
|
99
99
|
<div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="92.
|
|
102
|
-
<td data-value="
|
|
101
|
+
<td data-value="92.25" class="pct high">92.25%</td>
|
|
102
|
+
<td data-value="155" class="abs high">143/155</td>
|
|
103
103
|
<td data-value="80" class="pct high">80%</td>
|
|
104
104
|
<td data-value="30" class="abs high">24/30</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
106
|
<td data-value="11" class="abs high">11/11</td>
|
|
107
|
-
<td data-value="92.
|
|
108
|
-
<td data-value="
|
|
107
|
+
<td data-value="92.25" class="pct high">92.25%</td>
|
|
108
|
+
<td data-value="155" class="abs high">143/155</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
</tbody>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2025-01-
|
|
119
|
+
at 2025-01-31T21:00:08.068Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>18/18</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>18/18</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -84,9 +84,9 @@
|
|
|
84
84
|
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
85
|
<a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
86
86
|
<span class="cline-any cline-neutral"> </span>
|
|
87
|
-
<span class="cline-any cline-
|
|
88
|
-
<span class="cline-any cline-
|
|
89
|
-
<span class="cline-any cline-
|
|
87
|
+
<span class="cline-any cline-yes">1x</span>
|
|
88
|
+
<span class="cline-any cline-yes">1x</span>
|
|
89
|
+
<span class="cline-any cline-yes">1x</span>
|
|
90
90
|
<span class="cline-any cline-yes">1x</span>
|
|
91
91
|
<span class="cline-any cline-yes">1x</span>
|
|
92
92
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -127,7 +127,7 @@ export const alphabeticalDependencies = createRuleFactory<undefined>({
|
|
|
127
127
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
128
128
|
Code coverage generated by
|
|
129
129
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
130
|
-
at 2025-01-
|
|
130
|
+
at 2025-01-31T21:00:08.068Z
|
|
131
131
|
</div>
|
|
132
132
|
<script src="../prettify.js"></script>
|
|
133
133
|
<script>
|
|
@@ -121,7 +121,7 @@ export const alphabeticalScripts = createRuleFactory<undefined>({
|
|
|
121
121
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
122
122
|
Code coverage generated by
|
|
123
123
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
124
|
-
at 2025-01-
|
|
124
|
+
at 2025-01-31T21:00:08.068Z
|
|
125
125
|
</div>
|
|
126
126
|
<script src="../prettify.js"></script>
|
|
127
127
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">97.
|
|
26
|
+
<span class="strong">97.03% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>131/135</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">97.
|
|
47
|
+
<span class="strong">97.03% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>131/135</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -237,8 +237,7 @@
|
|
|
237
237
|
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
238
|
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
239
|
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
242
241
|
<span class="cline-any cline-neutral"> </span>
|
|
243
242
|
<span class="cline-any cline-neutral"> </span>
|
|
244
243
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -341,7 +340,6 @@
|
|
|
341
340
|
<span class="cline-any cline-yes">8x</span>
|
|
342
341
|
<span class="cline-any cline-yes">8x</span>
|
|
343
342
|
<span class="cline-any cline-yes">8x</span>
|
|
344
|
-
<span class="cline-any cline-yes">8x</span>
|
|
345
343
|
<span class="cline-any cline-neutral"> </span>
|
|
346
344
|
<span class="cline-any cline-yes">13x</span>
|
|
347
345
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -510,8 +508,7 @@ export const bannedDependencies = createRuleFactory<Options>({
|
|
|
510
508
|
if (violations.size > 0) {
|
|
511
509
|
context.addError({
|
|
512
510
|
file: packagePath,
|
|
513
|
-
message:
|
|
514
|
-
`Found ${violations.size} banned dependencies of package.json:\n\t`
|
|
511
|
+
message: `Found ${violations.size} banned dependencies of package.json:\n\t`
|
|
515
512
|
+ Array.from(violations)
|
|
516
513
|
.map((v) => `'${v}'`)
|
|
517
514
|
.join(", "),
|
|
@@ -595,7 +592,7 @@ function nameOrPackageJsonPath(node: IPackageDependencyGraphNode): string {
|
|
|
595
592
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
596
593
|
Code coverage generated by
|
|
597
594
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
598
|
-
at 2025-01-
|
|
595
|
+
at 2025-01-31T21:00:08.068Z
|
|
599
596
|
</div>
|
|
600
597
|
<script src="../prettify.js"></script>
|
|
601
598
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">97.
|
|
26
|
+
<span class="strong">97.4% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>77
|
|
28
|
+
<span class='fraction'>75/77</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">97.
|
|
47
|
+
<span class="strong">97.4% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>77
|
|
49
|
+
<span class='fraction'>75/77</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -164,9 +164,7 @@
|
|
|
164
164
|
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
165
|
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
166
|
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
-
<a name='L104'></a><a href='#L104'>104</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
170
168
|
<span class="cline-any cline-neutral"> </span>
|
|
171
169
|
<span class="cline-any cline-neutral"> </span>
|
|
172
170
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -262,8 +260,6 @@
|
|
|
262
260
|
<span class="cline-any cline-neutral"> </span>
|
|
263
261
|
<span class="cline-any cline-yes">1x</span>
|
|
264
262
|
<span class="cline-any cline-yes">1x</span>
|
|
265
|
-
<span class="cline-any cline-yes">1x</span>
|
|
266
|
-
<span class="cline-any cline-yes">1x</span>
|
|
267
263
|
<span class="cline-any cline-no"> </span>
|
|
268
264
|
<span class="cline-any cline-no"> </span>
|
|
269
265
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -363,9 +359,7 @@ function omit<T>(
|
|
|
363
359
|
): Record<string, T> {
|
|
364
360
|
const newObj: Record<string, T> = {};
|
|
365
361
|
|
|
366
|
-
const filtered = Object.entries(obj).filter(([key]) =>
|
|
367
|
-
!keysToOmit.includes(key)
|
|
368
|
-
);
|
|
362
|
+
const filtered = Object.entries(obj).filter(([key]) => !keysToOmit.includes(key));
|
|
369
363
|
for (const [key, value] of filtered) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
370
364
|
<span class="cstat-no" title="statement not covered" > newObj[key] = value;</span>
|
|
371
365
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
@@ -379,7 +373,7 @@ function omit<T>(
|
|
|
379
373
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
380
374
|
Code coverage generated by
|
|
381
375
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
382
|
-
at 2025-01-
|
|
376
|
+
at 2025-01-31T21:00:08.068Z
|
|
383
377
|
</div>
|
|
384
378
|
<script src="../prettify.js"></script>
|
|
385
379
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">94.
|
|
26
|
+
<span class="strong">94.8% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>146/154</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">94.
|
|
47
|
+
<span class="strong">94.8% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>146/154</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -236,12 +236,7 @@
|
|
|
236
236
|
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
237
|
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
238
|
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
-
<a name='L179'></a><a href='#L179'>179</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
245
240
|
<span class="cline-any cline-neutral"> </span>
|
|
246
241
|
<span class="cline-any cline-neutral"> </span>
|
|
247
242
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -324,7 +319,6 @@
|
|
|
324
319
|
<span class="cline-any cline-yes">2x</span>
|
|
325
320
|
<span class="cline-any cline-yes">2x</span>
|
|
326
321
|
<span class="cline-any cline-yes">2x</span>
|
|
327
|
-
<span class="cline-any cline-yes">2x</span>
|
|
328
322
|
<span class="cline-any cline-neutral"> </span>
|
|
329
323
|
<span class="cline-any cline-yes">9x</span>
|
|
330
324
|
<span class="cline-any cline-yes">9x</span>
|
|
@@ -347,7 +341,6 @@
|
|
|
347
341
|
<span class="cline-any cline-yes">2x</span>
|
|
348
342
|
<span class="cline-any cline-yes">2x</span>
|
|
349
343
|
<span class="cline-any cline-yes">2x</span>
|
|
350
|
-
<span class="cline-any cline-yes">2x</span>
|
|
351
344
|
<span class="cline-any cline-yes">9x</span>
|
|
352
345
|
<span class="cline-any cline-neutral"> </span>
|
|
353
346
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -360,7 +353,6 @@
|
|
|
360
353
|
<span class="cline-any cline-neutral"> </span>
|
|
361
354
|
<span class="cline-any cline-yes">6x</span>
|
|
362
355
|
<span class="cline-any cline-yes">6x</span>
|
|
363
|
-
<span class="cline-any cline-yes">6x</span>
|
|
364
356
|
<span class="cline-any cline-yes">16x</span>
|
|
365
357
|
<span class="cline-any cline-yes">16x</span>
|
|
366
358
|
<span class="cline-any cline-yes">16x</span>
|
|
@@ -393,7 +385,6 @@
|
|
|
393
385
|
<span class="cline-any cline-yes">2x</span>
|
|
394
386
|
<span class="cline-any cline-yes">2x</span>
|
|
395
387
|
<span class="cline-any cline-yes">2x</span>
|
|
396
|
-
<span class="cline-any cline-yes">2x</span>
|
|
397
388
|
<span class="cline-any cline-neutral"> </span>
|
|
398
389
|
<span class="cline-any cline-yes">6x</span>
|
|
399
390
|
<span class="cline-any cline-yes">6x</span>
|
|
@@ -417,7 +408,6 @@
|
|
|
417
408
|
<span class="cline-any cline-yes">1x</span>
|
|
418
409
|
<span class="cline-any cline-yes">1x</span>
|
|
419
410
|
<span class="cline-any cline-yes">1x</span>
|
|
420
|
-
<span class="cline-any cline-yes">1x</span>
|
|
421
411
|
<span class="cline-any cline-yes">6x</span>
|
|
422
412
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
423
413
|
* Copyright 2020 Palantir Technologies, Inc.
|
|
@@ -497,8 +487,7 @@ const ensurePackageIsCorrectVersion = (
|
|
|
497
487
|
`Expected dependency on ${dependencyPackageName} to match version defined in monorepolint configuration '${expectedPackageDependencyValue}', got '${actualPackageDependencyValue}' instead.`,
|
|
498
488
|
fixer: () =>
|
|
499
489
|
mutateJson<PackageJson>(packageJsonPath, context.host, (input) => {
|
|
500
|
-
input.dependencies![dependencyPackageName] =
|
|
501
|
-
expectedPackageDependencyValue;
|
|
490
|
+
input.dependencies![dependencyPackageName] = expectedPackageDependencyValue;
|
|
502
491
|
return input;
|
|
503
492
|
}),
|
|
504
493
|
});
|
|
@@ -520,8 +509,7 @@ const ensurePackageIsCorrectVersion = (
|
|
|
520
509
|
`Expected devDependency on ${dependencyPackageName} to match version defined in monorepolint configuration '${expectedPackageDependencyValue}', got '${actualPackageDevDependencyValue}' instead`,
|
|
521
510
|
fixer: () =>
|
|
522
511
|
mutateJson<PackageJson>(packageJsonPath, context.host, (input) => {
|
|
523
|
-
input.devDependencies![dependencyPackageName] =
|
|
524
|
-
expectedPackageDependencyValue;
|
|
512
|
+
input.devDependencies![dependencyPackageName] = expectedPackageDependencyValue;
|
|
525
513
|
return input;
|
|
526
514
|
}),
|
|
527
515
|
});
|
|
@@ -536,20 +524,19 @@ const ensurePackageMatchesSomeVersion = (
|
|
|
536
524
|
const packageJson = context.getPackageJson();
|
|
537
525
|
const packageJsonPath = context.getPackageJsonPath();
|
|
538
526
|
|
|
539
|
-
const acceptedPackageDependencyVersions: SemVer[] =
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
<span class="cstat-no" title="statement not covered" >
|
|
547
|
-
<span class="cstat-no" title="statement not covered" >
|
|
548
|
-
<span class="cstat-no" title="statement not covered" >
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
);
|
|
527
|
+
const acceptedPackageDependencyVersions: SemVer[] = acceptedPackageDependencyValues.map(
|
|
528
|
+
(acceptedPackageDependencyValue) => {
|
|
529
|
+
const acceptedPackageDependencyVersion = coerce(
|
|
530
|
+
acceptedPackageDependencyValue,
|
|
531
|
+
);
|
|
532
|
+
if (acceptedPackageDependencyVersion == null) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
533
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
534
|
+
<span class="cstat-no" title="statement not covered" > `Malformed accepted package dependency version defined in monorepolint configuration: ${dependencyPackageName} @ '${acceptedPackageDependencyValue}'`,</span>
|
|
535
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
536
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
537
|
+
return acceptedPackageDependencyVersion;
|
|
538
|
+
},
|
|
539
|
+
);
|
|
553
540
|
|
|
554
541
|
const actualPackageDependencyValue = packageJson.dependencies
|
|
555
542
|
&& packageJson.dependencies[dependencyPackageName];
|
|
@@ -564,12 +551,11 @@ const ensurePackageMatchesSomeVersion = (
|
|
|
564
551
|
) {
|
|
565
552
|
context.addError({
|
|
566
553
|
file: packageJsonPath,
|
|
567
|
-
message:
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
}', got '${actualPackageDependencyValue}' instead.`,
|
|
554
|
+
message: `Expected dependency on ${dependencyPackageName} to match one of '${
|
|
555
|
+
JSON.stringify(
|
|
556
|
+
acceptedPackageDependencyValues,
|
|
557
|
+
)
|
|
558
|
+
}', got '${actualPackageDependencyValue}' instead.`,
|
|
573
559
|
});
|
|
574
560
|
}
|
|
575
561
|
|
|
@@ -588,12 +574,11 @@ const ensurePackageMatchesSomeVersion = (
|
|
|
588
574
|
) {
|
|
589
575
|
context.addError({
|
|
590
576
|
file: packageJsonPath,
|
|
591
|
-
message:
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
}', got '${actualPackageDevDependencyValue}' instead.`,
|
|
577
|
+
message: `Expected devDependency on ${dependencyPackageName} to match one of '${
|
|
578
|
+
JSON.stringify(
|
|
579
|
+
acceptedPackageDependencyValues,
|
|
580
|
+
)
|
|
581
|
+
}', got '${actualPackageDevDependencyValue}' instead.`,
|
|
597
582
|
});
|
|
598
583
|
}
|
|
599
584
|
};
|
|
@@ -604,7 +589,7 @@ const ensurePackageMatchesSomeVersion = (
|
|
|
604
589
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
605
590
|
Code coverage generated by
|
|
606
591
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
607
|
-
at 2025-01-
|
|
592
|
+
at 2025-01-31T21:00:08.068Z
|
|
608
593
|
</div>
|
|
609
594
|
<script src="../prettify.js"></script>
|
|
610
595
|
<script>
|
|
@@ -394,7 +394,7 @@ async function getExpectedContents(context: Context, opts: Options) {
|
|
|
394
394
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
395
395
|
Code coverage generated by
|
|
396
396
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
397
|
-
at 2025-01-
|
|
397
|
+
at 2025-01-31T21:00:08.068Z
|
|
398
398
|
</div>
|
|
399
399
|
<script src="../prettify.js"></script>
|
|
400
400
|
<script>
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/forceError.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> forceError.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>32/32</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/0</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>0/0</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>32/32</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
100
|
+
<span class="cline-any cline-neutral"> </span>
|
|
101
|
+
<span class="cline-any cline-yes">1x</span>
|
|
102
|
+
<span class="cline-any cline-yes">1x</span>
|
|
103
|
+
<span class="cline-any cline-yes">1x</span>
|
|
104
|
+
<span class="cline-any cline-yes">1x</span>
|
|
105
|
+
<span class="cline-any cline-yes">1x</span>
|
|
106
|
+
<span class="cline-any cline-yes">1x</span>
|
|
107
|
+
<span class="cline-any cline-yes">1x</span>
|
|
108
|
+
<span class="cline-any cline-yes">1x</span>
|
|
109
|
+
<span class="cline-any cline-yes">1x</span>
|
|
110
|
+
<span class="cline-any cline-yes">1x</span>
|
|
111
|
+
<span class="cline-any cline-yes">1x</span>
|
|
112
|
+
<span class="cline-any cline-yes">1x</span>
|
|
113
|
+
<span class="cline-any cline-yes">1x</span>
|
|
114
|
+
<span class="cline-any cline-yes">1x</span>
|
|
115
|
+
<span class="cline-any cline-yes">1x</span>
|
|
116
|
+
<span class="cline-any cline-yes">1x</span>
|
|
117
|
+
<span class="cline-any cline-yes">1x</span>
|
|
118
|
+
<span class="cline-any cline-yes">1x</span>
|
|
119
|
+
<span class="cline-any cline-yes">1x</span>
|
|
120
|
+
<span class="cline-any cline-yes">1x</span>
|
|
121
|
+
<span class="cline-any cline-yes">1x</span>
|
|
122
|
+
<span class="cline-any cline-yes">1x</span>
|
|
123
|
+
<span class="cline-any cline-yes">1x</span>
|
|
124
|
+
<span class="cline-any cline-yes">1x</span>
|
|
125
|
+
<span class="cline-any cline-yes">1x</span>
|
|
126
|
+
<span class="cline-any cline-yes">1x</span>
|
|
127
|
+
<span class="cline-any cline-yes">1x</span>
|
|
128
|
+
<span class="cline-any cline-yes">1x</span>
|
|
129
|
+
<span class="cline-any cline-yes">1x</span>
|
|
130
|
+
<span class="cline-any cline-yes">1x</span>
|
|
131
|
+
<span class="cline-any cline-yes">1x</span>
|
|
132
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { createRuleFactory } from "./util/createRuleFactory.js";
|
|
133
|
+
|
|
134
|
+
export const forceError = createRuleFactory<{ customMessage?: string }>({
|
|
135
|
+
name: "forceError",
|
|
136
|
+
|
|
137
|
+
check: async (context, opts) => {
|
|
138
|
+
context.addError({
|
|
139
|
+
message: opts?.customMessage
|
|
140
|
+
?? "Forced error (often used to debug package selection)",
|
|
141
|
+
file: context.getPackageJsonPath(),
|
|
142
|
+
});
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
validateOptions: (opts): asserts opts is null | { customMessage: string } => {
|
|
146
|
+
if (opts == null) return;
|
|
147
|
+
|
|
148
|
+
if (typeof opts !== "object") {
|
|
149
|
+
throw new Error("options must be an object if provided");
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const numKeys = Object.keys(opts).length;
|
|
153
|
+
|
|
154
|
+
if (numKeys === 0) return;
|
|
155
|
+
|
|
156
|
+
if (Object.keys(opts).length > 1 || !("customMessage" in opts)) {
|
|
157
|
+
throw new Error("options must only have `customMessage` property");
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (typeof opts.customMessage !== "string") {
|
|
161
|
+
throw new Error("customMessage must be a string");
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
</pre></td></tr></table></pre>
|
|
166
|
+
|
|
167
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
168
|
+
</div><!-- /wrapper -->
|
|
169
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
170
|
+
Code coverage generated by
|
|
171
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
172
|
+
at 2025-01-31T21:00:08.068Z
|
|
173
|
+
</div>
|
|
174
|
+
<script src="../prettify.js"></script>
|
|
175
|
+
<script>
|
|
176
|
+
window.onload = function () {
|
|
177
|
+
prettyPrint();
|
|
178
|
+
};
|
|
179
|
+
</script>
|
|
180
|
+
<script src="../sorter.js"></script>
|
|
181
|
+
<script src="../block-navigation.js"></script>
|
|
182
|
+
</body>
|
|
183
|
+
</html>
|
|
184
|
+
|