@monorepolint/rules 0.6.0-alpha.2 → 0.6.0-alpha.3
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 +160 -100
- package/.turbo/turbo-transpile-typescript.log +4 -4
- package/CHANGELOG.md +9 -0
- package/build/js/index.js +399 -246
- package/build/js/index.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/__tests__/utils.d.ts +0 -1
- package/build/types/__tests__/utils.d.ts.map +1 -1
- package/build/types/bannedDependencies.d.ts.map +1 -1
- package/build/types/fileContents.d.ts.map +1 -1
- package/build/types/index.d.ts +3 -3
- 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/packageEntry.d.ts.map +1 -1
- package/build/types/packageOrder.d.ts.map +1 -1
- package/build/types/packageScript.d.ts.map +1 -1
- package/build/types/requireDependency.d.ts +12 -12
- package/build/types/requireDependency.d.ts.map +1 -1
- package/build/types/util/checkAlpha.d.ts.map +1 -1
- package/build/types/util/createRuleFactory.d.ts.map +1 -1
- package/build/types/util/packageDependencyGraphService.d.ts.map +1 -1
- package/coverage/clover.xml +1159 -818
- package/coverage/coverage-final.json +18 -18
- package/coverage/index.html +20 -20
- package/coverage/src/alphabeticalDependencies.ts.html +8 -8
- package/coverage/src/alphabeticalScripts.ts.html +5 -5
- package/coverage/src/bannedDependencies.ts.html +77 -26
- package/coverage/src/consistentDependencies.ts.html +58 -19
- package/coverage/src/consistentVersions.ts.html +169 -58
- package/coverage/src/fileContents.ts.html +47 -23
- package/coverage/src/index.html +67 -67
- package/coverage/src/index.ts.html +32 -32
- package/coverage/src/mustSatisfyPeerDependencies.ts.html +373 -85
- package/coverage/src/nestedWorkspaces.ts.html +59 -20
- package/coverage/src/packageEntry.ts.html +40 -19
- package/coverage/src/packageOrder.ts.html +30 -12
- package/coverage/src/packageScript.ts.html +81 -27
- package/coverage/src/requireDependency.ts.html +83 -32
- package/coverage/src/standardTsconfig.ts.html +81 -18
- package/coverage/src/util/checkAlpha.ts.html +18 -9
- package/coverage/src/util/createRuleFactory.ts.html +16 -4
- package/coverage/src/util/index.html +17 -17
- package/coverage/src/util/makeDirectory.ts.html +5 -5
- package/coverage/src/util/packageDependencyGraphService.ts.html +101 -20
- package/package.json +4 -5
- package/src/__tests__/alphabeticalScripts.spec.ts +12 -4
- package/src/__tests__/bannedDependencies.spec.ts +45 -16
- package/src/__tests__/consistentDependencies.spec.ts +11 -5
- package/src/__tests__/consistentVersions.spec.ts +72 -18
- package/src/__tests__/fileContents.spec.ts +9 -5
- package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +191 -76
- package/src/__tests__/nestedWorkspaces.spec.ts +10 -6
- package/src/__tests__/packageEntry.spec.ts +54 -48
- package/src/__tests__/packageOrder.spec.ts +77 -71
- package/src/__tests__/packageScript.spec.ts +25 -11
- package/src/__tests__/requireDependency.spec.ts +12 -6
- package/src/__tests__/utils.ts +16 -7
- package/src/bannedDependencies.ts +32 -15
- package/src/consistentDependencies.ts +22 -9
- package/src/consistentVersions.ts +84 -47
- package/src/fileContents.ts +19 -11
- package/src/index.ts +3 -3
- package/src/mustSatisfyPeerDependencies.ts +162 -66
- package/src/nestedWorkspaces.ts +23 -10
- package/src/packageEntry.ts +18 -11
- package/src/packageOrder.ts +9 -3
- package/src/packageScript.ts +37 -19
- package/src/requireDependency.ts +28 -11
- package/src/standardTsconfig.ts +31 -10
- package/src/util/checkAlpha.ts +5 -2
- package/src/util/createRuleFactory.ts +6 -2
- package/src/util/packageDependencyGraphService.ts +41 -14
- package/vitest.config.mjs +10 -7
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">87.83% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>65/74</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>13/13</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">87.83% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>65/74</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -134,11 +134,24 @@
|
|
|
134
134
|
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
135
|
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
136
|
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
-
<a name='L72'></a><a href='#L72'>72</a
|
|
138
|
-
<
|
|
139
|
-
<
|
|
140
|
-
<
|
|
141
|
-
<
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
142
155
|
<span class="cline-any cline-neutral"> </span>
|
|
143
156
|
<span class="cline-any cline-neutral"> </span>
|
|
144
157
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -146,6 +159,10 @@
|
|
|
146
159
|
<span class="cline-any cline-neutral"> </span>
|
|
147
160
|
<span class="cline-any cline-neutral"> </span>
|
|
148
161
|
<span class="cline-any cline-neutral"> </span>
|
|
162
|
+
<span class="cline-any cline-yes">1x</span>
|
|
163
|
+
<span class="cline-any cline-yes">1x</span>
|
|
164
|
+
<span class="cline-any cline-yes">1x</span>
|
|
165
|
+
<span class="cline-any cline-yes">1x</span>
|
|
149
166
|
<span class="cline-any cline-neutral"> </span>
|
|
150
167
|
<span class="cline-any cline-yes">1x</span>
|
|
151
168
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -169,6 +186,7 @@
|
|
|
169
186
|
<span class="cline-any cline-yes">7x</span>
|
|
170
187
|
<span class="cline-any cline-yes">7x</span>
|
|
171
188
|
<span class="cline-any cline-yes">28x</span>
|
|
189
|
+
<span class="cline-any cline-yes">28x</span>
|
|
172
190
|
<span class="cline-any cline-yes">14x</span>
|
|
173
191
|
<span class="cline-any cline-yes">14x</span>
|
|
174
192
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -182,25 +200,41 @@
|
|
|
182
200
|
<span class="cline-any cline-no"> </span>
|
|
183
201
|
<span class="cline-any cline-no"> </span>
|
|
184
202
|
<span class="cline-any cline-no"> </span>
|
|
203
|
+
<span class="cline-any cline-no"> </span>
|
|
204
|
+
<span class="cline-any cline-no"> </span>
|
|
205
|
+
<span class="cline-any cline-no"> </span>
|
|
206
|
+
<span class="cline-any cline-no"> </span>
|
|
185
207
|
<span class="cline-any cline-yes">3x</span>
|
|
186
208
|
<span class="cline-any cline-yes">3x</span>
|
|
187
209
|
<span class="cline-any cline-yes">3x</span>
|
|
188
210
|
<span class="cline-any cline-neutral"> </span>
|
|
211
|
+
<span class="cline-any cline-yes">28x</span>
|
|
212
|
+
<span class="cline-any cline-yes">16x</span>
|
|
189
213
|
<span class="cline-any cline-yes">11x</span>
|
|
190
214
|
<span class="cline-any cline-yes">11x</span>
|
|
191
|
-
<span class="cline-any cline-yes">
|
|
192
|
-
<span class="cline-any cline-yes">
|
|
193
|
-
<span class="cline-any cline-yes">
|
|
194
|
-
<span class="cline-any cline-yes">
|
|
195
|
-
<span class="cline-any cline-yes">
|
|
196
|
-
<span class="cline-any cline-yes">
|
|
197
|
-
<span class="cline-any cline-yes">
|
|
198
|
-
<span class="cline-any cline-yes">
|
|
215
|
+
<span class="cline-any cline-yes">11x</span>
|
|
216
|
+
<span class="cline-any cline-yes">11x</span>
|
|
217
|
+
<span class="cline-any cline-yes">11x</span>
|
|
218
|
+
<span class="cline-any cline-yes">11x</span>
|
|
219
|
+
<span class="cline-any cline-yes">11x</span>
|
|
220
|
+
<span class="cline-any cline-yes">11x</span>
|
|
221
|
+
<span class="cline-any cline-yes">5x</span>
|
|
222
|
+
<span class="cline-any cline-yes">5x</span>
|
|
223
|
+
<span class="cline-any cline-yes">5x</span>
|
|
224
|
+
<span class="cline-any cline-yes">5x</span>
|
|
225
|
+
<span class="cline-any cline-yes">5x</span>
|
|
226
|
+
<span class="cline-any cline-yes">1x</span>
|
|
227
|
+
<span class="cline-any cline-yes">1x</span>
|
|
228
|
+
<span class="cline-any cline-yes">5x</span>
|
|
199
229
|
<span class="cline-any cline-yes">4x</span>
|
|
200
230
|
<span class="cline-any cline-yes">4x</span>
|
|
201
|
-
<span class="cline-any cline-yes">
|
|
202
|
-
<span class="cline-any cline-yes">
|
|
231
|
+
<span class="cline-any cline-yes">5x</span>
|
|
232
|
+
<span class="cline-any cline-yes">5x</span>
|
|
233
|
+
<span class="cline-any cline-yes">5x</span>
|
|
234
|
+
<span class="cline-any cline-yes">5x</span>
|
|
235
|
+
<span class="cline-any cline-yes">11x</span>
|
|
203
236
|
<span class="cline-any cline-yes">11x</span>
|
|
237
|
+
<span class="cline-any cline-yes">16x</span>
|
|
204
238
|
<span class="cline-any cline-yes">7x</span>
|
|
205
239
|
<span class="cline-any cline-yes">7x</span>
|
|
206
240
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -219,10 +253,10 @@ import * as r from "runtypes";
|
|
|
219
253
|
import { createRuleFactory } from "./util/createRuleFactory.js";
|
|
220
254
|
|
|
221
255
|
const Options = r.Partial({
|
|
222
|
-
dependencies: r.Dictionary(r.String),
|
|
223
|
-
devDependencies: r.Dictionary(r.String),
|
|
224
|
-
peerDependencies: r.Dictionary(r.String),
|
|
225
|
-
optionalDependencies: r.Dictionary(r.String),
|
|
256
|
+
dependencies: r.Dictionary(r.String.optional()),
|
|
257
|
+
devDependencies: r.Dictionary(r.String.optional()),
|
|
258
|
+
peerDependencies: r.Dictionary(r.String.optional()),
|
|
259
|
+
optionalDependencies: r.Dictionary(r.String.optional()),
|
|
226
260
|
});
|
|
227
261
|
|
|
228
262
|
type Options = r.Static<typeof Options>;
|
|
@@ -239,7 +273,8 @@ export const requireDependency = createRuleFactory({
|
|
|
239
273
|
"peerDependencies" as const,
|
|
240
274
|
"optionalDependencies" as const,
|
|
241
275
|
].forEach((type) => {
|
|
242
|
-
|
|
276
|
+
const expectedEntries = options[type];
|
|
277
|
+
if (!expectedEntries) {
|
|
243
278
|
return;
|
|
244
279
|
}
|
|
245
280
|
|
|
@@ -249,7 +284,11 @@ export const requireDependency = createRuleFactory({
|
|
|
249
284
|
message: `No ${type} block, cannot add required ${type}.`,
|
|
250
285
|
fixer: <span class="fstat-no" title="function not covered" >() => {</span>
|
|
251
286
|
<span class="cstat-no" title="statement not covered" > mutateJson<PackageJson>(packageJsonPath, context.host, (input) => {</span>
|
|
252
|
-
<span class="cstat-no" title="statement not covered" > input[type] =
|
|
287
|
+
<span class="cstat-no" title="statement not covered" > input[type] = Object.fromEntries(</span>
|
|
288
|
+
<span class="cstat-no" title="statement not covered" > Object.entries(expectedEntries).filter(([, v]) =></span>
|
|
289
|
+
<span class="cstat-no" title="statement not covered" > v !== undefined</span>
|
|
290
|
+
<span class="cstat-no" title="statement not covered" > ),</span>
|
|
291
|
+
<span class="cstat-no" title="statement not covered" > ) as Record<string, string>;</span>
|
|
253
292
|
<span class="cstat-no" title="statement not covered" > return input;</span>
|
|
254
293
|
<span class="cstat-no" title="statement not covered" > });</span>
|
|
255
294
|
<span class="cstat-no" title="statement not covered" > },</span>
|
|
@@ -262,12 +301,24 @@ export const requireDependency = createRuleFactory({
|
|
|
262
301
|
context.addError({
|
|
263
302
|
file: packageJsonPath,
|
|
264
303
|
message: `Expected dependency ${dep}@${version}`,
|
|
265
|
-
longMessage: diff(
|
|
304
|
+
longMessage: diff(
|
|
305
|
+
`${dep}@${version}\n`,
|
|
306
|
+
`${dep}@${packageJson[type]![dep] || "missing"}\n`,
|
|
307
|
+
)!,
|
|
266
308
|
fixer: () => {
|
|
267
|
-
mutateJson<PackageJson>(
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
309
|
+
mutateJson<PackageJson>(
|
|
310
|
+
packageJsonPath,
|
|
311
|
+
context.host,
|
|
312
|
+
(input) => {
|
|
313
|
+
if (version === undefined) {
|
|
314
|
+
input[type] = { ...input[type] };
|
|
315
|
+
delete input[type][dep];
|
|
316
|
+
} else {
|
|
317
|
+
input[type] = { ...input[type], [dep]: version };
|
|
318
|
+
}
|
|
319
|
+
return input;
|
|
320
|
+
},
|
|
321
|
+
);
|
|
271
322
|
},
|
|
272
323
|
});
|
|
273
324
|
}
|
|
@@ -283,7 +334,7 @@ export const requireDependency = createRuleFactory({
|
|
|
283
334
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
284
335
|
Code coverage generated by
|
|
285
336
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
286
|
-
at 2025-01-
|
|
337
|
+
at 2025-01-22T17:39:11.886Z
|
|
287
338
|
</div>
|
|
288
339
|
<script src="../prettify.js"></script>
|
|
289
340
|
<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'>152/152</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'>152/152</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -198,12 +198,28 @@
|
|
|
198
198
|
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
199
|
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
200
|
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
-
<a name='L136'></a><a href='#L136'>136</a
|
|
202
|
-
<
|
|
203
|
-
<
|
|
204
|
-
<
|
|
205
|
-
<
|
|
206
|
-
<
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
207
223
|
<span class="cline-any cline-neutral"> </span>
|
|
208
224
|
<span class="cline-any cline-neutral"> </span>
|
|
209
225
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -333,6 +349,32 @@
|
|
|
333
349
|
<span class="cline-any cline-yes">1x</span>
|
|
334
350
|
<span class="cline-any cline-yes">1x</span>
|
|
335
351
|
<span class="cline-any cline-yes">1x</span>
|
|
352
|
+
<span class="cline-any cline-yes">1x</span>
|
|
353
|
+
<span class="cline-any cline-yes">1x</span>
|
|
354
|
+
<span class="cline-any cline-yes">1x</span>
|
|
355
|
+
<span class="cline-any cline-yes">1x</span>
|
|
356
|
+
<span class="cline-any cline-yes">1x</span>
|
|
357
|
+
<span class="cline-any cline-yes">1x</span>
|
|
358
|
+
<span class="cline-any cline-yes">1x</span>
|
|
359
|
+
<span class="cline-any cline-yes">1x</span>
|
|
360
|
+
<span class="cline-any cline-yes">1x</span>
|
|
361
|
+
<span class="cline-any cline-yes">1x</span>
|
|
362
|
+
<span class="cline-any cline-yes">1x</span>
|
|
363
|
+
<span class="cline-any cline-yes">1x</span>
|
|
364
|
+
<span class="cline-any cline-yes">1x</span>
|
|
365
|
+
<span class="cline-any cline-yes">1x</span>
|
|
366
|
+
<span class="cline-any cline-yes">1x</span>
|
|
367
|
+
<span class="cline-any cline-yes">1x</span>
|
|
368
|
+
<span class="cline-any cline-yes">1x</span>
|
|
369
|
+
<span class="cline-any cline-yes">1x</span>
|
|
370
|
+
<span class="cline-any cline-yes">1x</span>
|
|
371
|
+
<span class="cline-any cline-yes">1x</span>
|
|
372
|
+
<span class="cline-any cline-yes">1x</span>
|
|
373
|
+
<span class="cline-any cline-yes">1x</span>
|
|
374
|
+
<span class="cline-any cline-yes">1x</span>
|
|
375
|
+
<span class="cline-any cline-yes">1x</span>
|
|
376
|
+
<span class="cline-any cline-yes">1x</span>
|
|
377
|
+
<span class="cline-any cline-yes">1x</span>
|
|
336
378
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
337
379
|
* Copyright 2019 Palantir Technologies, Inc.
|
|
338
380
|
*
|
|
@@ -419,11 +461,23 @@ function getGenerator(context: Context, opts: Options) {
|
|
|
419
461
|
} else if (opts.templateFile) {
|
|
420
462
|
const { packageDir: workspacePackageDir } = context.getWorkspaceContext();
|
|
421
463
|
const fullPath = path.resolve(workspacePackageDir, opts.templateFile);
|
|
422
|
-
const template = JSON.parse(
|
|
464
|
+
const template = JSON.parse(
|
|
465
|
+
context.host.readFile(fullPath, { encoding: "utf-8" }),
|
|
466
|
+
);
|
|
423
467
|
|
|
424
|
-
return makeGenerator(
|
|
468
|
+
return makeGenerator(
|
|
469
|
+
template,
|
|
470
|
+
opts.excludedReferences,
|
|
471
|
+
opts.additionalReferences,
|
|
472
|
+
opts.tsconfigReferenceFile,
|
|
473
|
+
);
|
|
425
474
|
} else if (opts.template) {
|
|
426
|
-
return makeGenerator(
|
|
475
|
+
return makeGenerator(
|
|
476
|
+
opts.template,
|
|
477
|
+
opts.excludedReferences,
|
|
478
|
+
opts.additionalReferences,
|
|
479
|
+
opts.tsconfigReferenceFile,
|
|
480
|
+
);
|
|
427
481
|
} else {
|
|
428
482
|
throw new Error("Unable to make generator");
|
|
429
483
|
}
|
|
@@ -434,7 +488,7 @@ function makeGenerator(
|
|
|
434
488
|
template: any,
|
|
435
489
|
excludedReferences: ReadonlyArray<string> | undefined,
|
|
436
490
|
additionalReferences: ReadonlyArray<string> | undefined,
|
|
437
|
-
tsconfigReferenceFile?: string
|
|
491
|
+
tsconfigReferenceFile?: string,
|
|
438
492
|
) {
|
|
439
493
|
return async function generator(context: Context) {
|
|
440
494
|
template = {
|
|
@@ -442,15 +496,24 @@ function makeGenerator(
|
|
|
442
496
|
references: [],
|
|
443
497
|
}; // make a copy and ensure we have a references array
|
|
444
498
|
|
|
445
|
-
const nameToDirectory = await context.getWorkspaceContext()
|
|
499
|
+
const nameToDirectory = await context.getWorkspaceContext()
|
|
500
|
+
.getPackageNameToDir();
|
|
446
501
|
|
|
447
502
|
const packageJson = context.getPackageJson();
|
|
448
|
-
const deps = [
|
|
503
|
+
const deps = [
|
|
504
|
+
...Object.keys(packageJson.dependencies || {}),
|
|
505
|
+
...Object.keys(packageJson.devDependencies || {}),
|
|
506
|
+
];
|
|
449
507
|
for (const dep of deps) {
|
|
450
508
|
const packageDir = nameToDirectory.get(dep);
|
|
451
|
-
if (
|
|
452
|
-
|
|
453
|
-
|
|
509
|
+
if (
|
|
510
|
+
packageDir !== undefined
|
|
511
|
+
&& (excludedReferences === undefined
|
|
512
|
+
|| !matchesAnyGlob(dep, excludedReferences))
|
|
513
|
+
) {
|
|
514
|
+
const absoluteReferencePath = tsconfigReferenceFile !== undefined
|
|
515
|
+
? path.join(packageDir, tsconfigReferenceFile)
|
|
516
|
+
: packageDir;
|
|
454
517
|
template.references.push({
|
|
455
518
|
path: path.relative(context.packageDir, absoluteReferencePath),
|
|
456
519
|
});
|
|
@@ -475,7 +538,7 @@ function makeGenerator(
|
|
|
475
538
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
476
539
|
Code coverage generated by
|
|
477
540
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
478
|
-
at 2025-01-
|
|
541
|
+
at 2025-01-22T17:39:11.886Z
|
|
479
542
|
</div>
|
|
480
543
|
<script src="../prettify.js"></script>
|
|
481
544
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">95.
|
|
26
|
+
<span class="strong">95.55% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>43/45</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">95.
|
|
47
|
+
<span class="strong">95.55% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>43/45</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -122,8 +122,10 @@
|
|
|
122
122
|
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
123
|
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
124
|
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
-
<a name='L60'></a><a href='#L60'>60</a
|
|
126
|
-
<
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
127
129
|
<span class="cline-any cline-neutral"> </span>
|
|
128
130
|
<span class="cline-any cline-neutral"> </span>
|
|
129
131
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -131,6 +133,7 @@
|
|
|
131
133
|
<span class="cline-any cline-neutral"> </span>
|
|
132
134
|
<span class="cline-any cline-neutral"> </span>
|
|
133
135
|
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-yes">1x</span>
|
|
134
137
|
<span class="cline-any cline-neutral"> </span>
|
|
135
138
|
<span class="cline-any cline-yes">1x</span>
|
|
136
139
|
<span class="cline-any cline-yes">4x</span>
|
|
@@ -181,6 +184,9 @@
|
|
|
181
184
|
<span class="cline-any cline-yes">1x</span>
|
|
182
185
|
<span class="cline-any cline-yes">4x</span>
|
|
183
186
|
<span class="cline-any cline-yes">4x</span>
|
|
187
|
+
<span class="cline-any cline-yes">4x</span>
|
|
188
|
+
<span class="cline-any cline-yes">4x</span>
|
|
189
|
+
<span class="cline-any cline-yes">4x</span>
|
|
184
190
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*!
|
|
185
191
|
* Copyright 2019 Palantir Technologies, Inc.
|
|
186
192
|
*
|
|
@@ -193,7 +199,7 @@ import { diff } from "jest-diff";
|
|
|
193
199
|
|
|
194
200
|
export function checkAlpha(
|
|
195
201
|
context: Context,
|
|
196
|
-
block: "dependencies" | "devDependencies" | "peerDependencies" | "scripts"
|
|
202
|
+
block: "dependencies" | "devDependencies" | "peerDependencies" | "scripts",
|
|
197
203
|
) {
|
|
198
204
|
const packageJson = context.getPackageJson();
|
|
199
205
|
const packagePath = context.getPackageJsonPath();
|
|
@@ -237,7 +243,10 @@ function arrayOrderCompare(a: ReadonlyArray<string>, b: ReadonlyArray<s
|
|
|
237
243
|
return true;
|
|
238
244
|
}
|
|
239
245
|
|
|
240
|
-
export function createIncorrectOrderErrorMessage(
|
|
246
|
+
export function createIncorrectOrderErrorMessage(
|
|
247
|
+
block: string,
|
|
248
|
+
packageName: string,
|
|
249
|
+
) {
|
|
241
250
|
return `Incorrect order of ${block} in ${packageName}'s package.json`;
|
|
242
251
|
}
|
|
243
252
|
</pre></td></tr></table></pre>
|
|
@@ -247,7 +256,7 @@ export function createIncorrectOrderErrorMessage(block: string, packageName: str
|
|
|
247
256
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
248
257
|
Code coverage generated by
|
|
249
258
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
250
|
-
at 2025-01-
|
|
259
|
+
at 2025-01-22T17:39:11.886Z
|
|
251
260
|
</div>
|
|
252
261
|
<script src="../../prettify.js"></script>
|
|
253
262
|
<script>
|
|
@@ -96,7 +96,15 @@
|
|
|
96
96
|
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
97
|
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
98
|
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
-
<a name='L34'></a><a href='#L34'>34</a
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
105
|
+
<span class="cline-any cline-neutral"> </span>
|
|
106
|
+
<span class="cline-any cline-neutral"> </span>
|
|
107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
100
108
|
<span class="cline-any cline-neutral"> </span>
|
|
101
109
|
<span class="cline-any cline-neutral"> </span>
|
|
102
110
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -133,7 +141,11 @@
|
|
|
133
141
|
|
|
134
142
|
export type ValidateOptionsFn<X> = (options: unknown) => asserts options is X;
|
|
135
143
|
export type RuleFactoryFn<T> = (ruleEntry: RuleEntry<T>) => RuleModule<T>;
|
|
136
|
-
export type RuleCheckFn<O> = (
|
|
144
|
+
export type RuleCheckFn<O> = (
|
|
145
|
+
context: Context,
|
|
146
|
+
options: O,
|
|
147
|
+
extra: { id: string },
|
|
148
|
+
) => Promise<unknown> | unknown;
|
|
137
149
|
|
|
138
150
|
export interface RuleFactoryOptions<X> {
|
|
139
151
|
name: string;
|
|
@@ -149,7 +161,7 @@ export function createRuleFactory<X>({
|
|
|
149
161
|
validateOptions,
|
|
150
162
|
printStats,
|
|
151
163
|
}: RuleFactoryOptions<X>): RuleFactoryFn<X> {
|
|
152
|
-
return function
|
|
164
|
+
return function(ruleEntry) {
|
|
153
165
|
const id = ruleEntry.id ?? `${name} :: ${globalId++}`;
|
|
154
166
|
return {
|
|
155
167
|
id,
|
|
@@ -169,7 +181,7 @@ export function createRuleFactory<X>({
|
|
|
169
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
170
182
|
Code coverage generated by
|
|
171
183
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
172
|
-
at 2025-01-
|
|
184
|
+
at 2025-01-22T17:39:11.886Z
|
|
173
185
|
</div>
|
|
174
186
|
<script src="../../prettify.js"></script>
|
|
175
187
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">92.
|
|
26
|
+
<span class="strong">92.3% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>144/156</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">92.
|
|
47
|
+
<span class="strong">92.3% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>144/156</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,17 +80,17 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file high" data-value="checkAlpha.ts"><a href="checkAlpha.ts.html">checkAlpha.ts</a></td>
|
|
83
|
-
<td data-value="95.
|
|
83
|
+
<td data-value="95.55" class="pic high">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="95.
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="95.55" class="pct high">95.55%</td>
|
|
87
|
+
<td data-value="45" class="abs high">43/45</td>
|
|
88
88
|
<td data-value="90" class="pct high">90%</td>
|
|
89
89
|
<td data-value="10" class="abs high">9/10</td>
|
|
90
90
|
<td data-value="100" class="pct high">100%</td>
|
|
91
91
|
<td data-value="4" class="abs high">4/4</td>
|
|
92
|
-
<td data-value="95.
|
|
93
|
-
<td data-value="
|
|
92
|
+
<td data-value="95.55" class="pct high">95.55%</td>
|
|
93
|
+
<td data-value="45" class="abs high">43/45</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -114,28 +114,28 @@
|
|
|
114
114
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
115
115
|
</td>
|
|
116
116
|
<td data-value="100" class="pct high">100%</td>
|
|
117
|
-
<td data-value="
|
|
117
|
+
<td data-value="14" class="abs high">14/14</td>
|
|
118
118
|
<td data-value="100" class="pct high">100%</td>
|
|
119
119
|
<td data-value="4" class="abs high">4/4</td>
|
|
120
120
|
<td data-value="100" class="pct high">100%</td>
|
|
121
121
|
<td data-value="1" class="abs high">1/1</td>
|
|
122
122
|
<td data-value="100" class="pct high">100%</td>
|
|
123
|
-
<td data-value="
|
|
123
|
+
<td data-value="14" class="abs high">14/14</td>
|
|
124
124
|
</tr>
|
|
125
125
|
|
|
126
126
|
<tr>
|
|
127
127
|
<td class="file high" data-value="packageDependencyGraphService.ts"><a href="packageDependencyGraphService.ts.html">packageDependencyGraphService.ts</a></td>
|
|
128
|
-
<td data-value="87.
|
|
128
|
+
<td data-value="87.17" class="pic high">
|
|
129
129
|
<div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
|
|
130
130
|
</td>
|
|
131
|
-
<td data-value="87.
|
|
132
|
-
<td data-value="
|
|
131
|
+
<td data-value="87.17" class="pct high">87.17%</td>
|
|
132
|
+
<td data-value="78" class="abs high">68/78</td>
|
|
133
133
|
<td data-value="61.53" class="pct medium">61.53%</td>
|
|
134
134
|
<td data-value="13" class="abs medium">8/13</td>
|
|
135
135
|
<td data-value="100" class="pct high">100%</td>
|
|
136
136
|
<td data-value="4" class="abs high">4/4</td>
|
|
137
|
-
<td data-value="87.
|
|
138
|
-
<td data-value="
|
|
137
|
+
<td data-value="87.17" class="pct high">87.17%</td>
|
|
138
|
+
<td data-value="78" class="abs high">68/78</td>
|
|
139
139
|
</tr>
|
|
140
140
|
|
|
141
141
|
</tbody>
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
147
147
|
Code coverage generated by
|
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
149
|
-
at 2025-01-
|
|
149
|
+
at 2025-01-22T17:39:11.886Z
|
|
150
150
|
</div>
|
|
151
151
|
<script src="../../prettify.js"></script>
|
|
152
152
|
<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'>14/14</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'>14/14</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
<span class="cline-any cline-neutral"> </span>
|
|
95
95
|
<span class="cline-any cline-neutral"> </span>
|
|
96
96
|
<span class="cline-any cline-neutral"> </span>
|
|
97
|
-
<span class="cline-any cline-
|
|
98
|
-
<span class="cline-any cline-
|
|
97
|
+
<span class="cline-any cline-yes">1x</span>
|
|
98
|
+
<span class="cline-any cline-yes">1x</span>
|
|
99
99
|
<span class="cline-any cline-neutral"> </span>
|
|
100
100
|
<span class="cline-any cline-yes">1x</span>
|
|
101
101
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -142,7 +142,7 @@ export function makeDirectoryRecursively(directoryPath: string) {
|
|
|
142
142
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
143
143
|
Code coverage generated by
|
|
144
144
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
145
|
-
at 2025-01-
|
|
145
|
+
at 2025-01-22T17:39:11.886Z
|
|
146
146
|
</div>
|
|
147
147
|
<script src="../../prettify.js"></script>
|
|
148
148
|
<script>
|