@adaptivestone/framework 4.6.0 → 4.8.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 +14 -1
- package/Cli.js +1 -0
- package/cluster.js +1 -2
- package/commands/GetOpenApiJson.js +1 -2
- package/commands/SyncIndexes.js +1 -1
- package/commands/migration/Migrate.js +2 -2
- package/controllers/Auth.js +3 -5
- package/controllers/index.js +0 -3
- package/coverage/clover.xml +2035 -1926
- package/coverage/coverage-final.json +43 -40
- package/coverage/framework/config/auth.js.html +6 -6
- package/coverage/framework/config/http.js.html +10 -10
- package/coverage/framework/config/i18n.js.html +13 -13
- package/coverage/framework/config/index.html +1 -1
- package/coverage/framework/config/log.js.html +23 -23
- package/coverage/framework/config/mail.js.html +30 -30
- package/coverage/framework/config/mongo.js.html +4 -4
- package/coverage/framework/config/rateLimiter.js.html +17 -17
- package/coverage/framework/config/redis.js.html +5 -5
- package/coverage/framework/config/validate.js.html +4 -4
- package/coverage/framework/controllers/Auth.js.html +97 -103
- package/coverage/framework/controllers/Home.js.html +27 -27
- package/coverage/framework/controllers/index.html +15 -15
- package/coverage/framework/controllers/index.js.html +58 -67
- package/coverage/framework/controllers/test/SomeController.js.html +44 -89
- package/coverage/framework/controllers/test/index.html +17 -17
- package/coverage/framework/helpers/files.js.html +310 -0
- package/coverage/framework/helpers/index.html +131 -0
- package/coverage/framework/helpers/logger.js.html +142 -0
- package/coverage/framework/helpers/redis/clearNamespace.js.html +10 -10
- package/coverage/framework/helpers/redis/index.html +1 -1
- package/coverage/framework/index.html +19 -19
- package/coverage/framework/models/Migration.js.html +130 -0
- package/coverage/framework/models/Sequence.js.html +11 -11
- package/coverage/framework/models/User.js.html +130 -130
- package/coverage/framework/models/index.html +20 -5
- package/coverage/framework/modules/AbstractController.js.html +100 -106
- package/coverage/framework/modules/AbstractModel.js.html +58 -58
- package/coverage/framework/modules/Base.js.html +70 -403
- package/coverage/framework/modules/index.html +24 -24
- package/coverage/framework/server.js.html +704 -338
- package/coverage/framework/services/cache/Cache.js.html +96 -81
- package/coverage/framework/services/cache/index.html +19 -19
- package/coverage/framework/services/documentation/DocumentationGenerator.js.html +39 -45
- package/coverage/framework/services/documentation/index.html +11 -11
- package/coverage/framework/services/http/HttpServer.js.html +90 -90
- package/coverage/framework/services/http/index.html +1 -1
- package/coverage/framework/services/http/middleware/AbstractMiddleware.js.html +45 -45
- package/coverage/framework/services/http/middleware/Auth.js.html +19 -19
- package/coverage/framework/services/http/middleware/GetUserByToken.js.html +36 -36
- package/coverage/framework/services/http/middleware/I18n.js.html +67 -67
- package/coverage/framework/services/http/middleware/Pagination.js.html +21 -21
- package/coverage/framework/services/http/middleware/PrepareAppInfo.js.html +5 -5
- package/coverage/framework/services/http/middleware/RateLimiter.js.html +19 -19
- package/coverage/framework/services/http/middleware/RequestLogger.js.html +21 -21
- package/coverage/framework/services/http/middleware/RequestParser.js.html +7 -7
- package/coverage/framework/services/http/middleware/Role.js.html +43 -43
- package/coverage/framework/services/http/middleware/index.html +33 -33
- package/coverage/framework/services/http/middleware/test/CheckFlag.js.html +9 -9
- package/coverage/framework/services/http/middleware/test/index.html +1 -1
- package/coverage/framework/services/messaging/email/index.html +1 -1
- package/coverage/framework/services/messaging/email/index.js.html +67 -67
- package/coverage/framework/services/messaging/index.html +1 -1
- package/coverage/framework/services/messaging/index.js.html +6 -6
- package/coverage/framework/services/validate/ValidateService.js.html +155 -167
- package/coverage/framework/services/validate/drivers/AbstractValidator.js.html +24 -24
- package/coverage/framework/services/validate/drivers/CustomValidator.js.html +14 -14
- package/coverage/framework/services/validate/drivers/YupValidator.js.html +41 -41
- package/coverage/framework/services/validate/drivers/index.html +1 -1
- package/coverage/framework/services/validate/index.html +5 -5
- package/coverage/index.html +91 -76
- package/helpers/files.js +75 -0
- package/helpers/logger.js +19 -0
- package/models/Migration.test.js +19 -0
- package/modules/AbstractController.js +2 -4
- package/modules/Base.js +8 -119
- package/modules/BaseCli.js +0 -4
- package/package.json +2 -2
- package/server.d.ts +14 -1
- package/server.js +208 -86
- package/services/cache/Cache.js +10 -5
- package/services/cache/Cache.test.js +81 -0
- package/services/documentation/DocumentationGenerator.js +18 -20
- package/services/http/middleware/Auth.test.js +57 -0
- package/services/http/middleware/I18n.test.js +15 -3
- package/services/http/middleware/PrepareAppInfo.test.js +1 -1
- package/services/http/middleware/Role.test.js +93 -0
- package/services/validate/ValidateService.js +3 -7
- package/tests/setup.js +1 -0
- package/tests/setupVitest.js +1 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">86.41% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>140/162</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'>11/11</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">55.55% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>10/
|
|
42
|
+
<span class='fraction'>10/18</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">86.41% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>140/162</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -225,32 +225,17 @@
|
|
|
225
225
|
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
226
|
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
227
|
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
-
<
|
|
230
|
-
<
|
|
231
|
-
<
|
|
232
|
-
<
|
|
233
|
-
<
|
|
234
|
-
<
|
|
235
|
-
<
|
|
236
|
-
<
|
|
237
|
-
<
|
|
238
|
-
<
|
|
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">11x</span>
|
|
244
|
-
<span class="cline-any cline-yes">11x</span>
|
|
245
|
-
<span class="cline-any cline-yes">11x</span>
|
|
246
|
-
<span class="cline-any cline-yes">11x</span>
|
|
247
|
-
<span class="cline-any cline-yes">11x</span>
|
|
248
|
-
<span class="cline-any cline-yes">11x</span>
|
|
249
|
-
<span class="cline-any cline-yes">11x</span>
|
|
250
|
-
<span class="cline-any cline-yes">11x</span>
|
|
251
|
-
<span class="cline-any cline-yes">11x</span>
|
|
252
|
-
<span class="cline-any cline-yes">11x</span>
|
|
253
|
-
<span class="cline-any cline-yes">11x</span>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">15x</span>
|
|
229
|
+
<span class="cline-any cline-yes">15x</span>
|
|
230
|
+
<span class="cline-any cline-yes">15x</span>
|
|
231
|
+
<span class="cline-any cline-yes">15x</span>
|
|
232
|
+
<span class="cline-any cline-yes">15x</span>
|
|
233
|
+
<span class="cline-any cline-yes">15x</span>
|
|
234
|
+
<span class="cline-any cline-yes">15x</span>
|
|
235
|
+
<span class="cline-any cline-yes">15x</span>
|
|
236
|
+
<span class="cline-any cline-yes">15x</span>
|
|
237
|
+
<span class="cline-any cline-yes">15x</span>
|
|
238
|
+
<span class="cline-any cline-yes">15x</span>
|
|
254
239
|
<span class="cline-any cline-yes">2x</span>
|
|
255
240
|
<span class="cline-any cline-yes">2x</span>
|
|
256
241
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -316,46 +301,31 @@
|
|
|
316
301
|
<span class="cline-any cline-yes">2x</span>
|
|
317
302
|
<span class="cline-any cline-yes">2x</span>
|
|
318
303
|
<span class="cline-any cline-yes">2x</span>
|
|
304
|
+
<span class="cline-any cline-yes">10x</span>
|
|
305
|
+
<span class="cline-any cline-yes">10x</span>
|
|
319
306
|
<span class="cline-any cline-yes">2x</span>
|
|
320
307
|
<span class="cline-any cline-yes">2x</span>
|
|
321
308
|
<span class="cline-any cline-yes">2x</span>
|
|
322
309
|
<span class="cline-any cline-yes">2x</span>
|
|
323
|
-
<span class="cline-any cline-yes">
|
|
324
|
-
<span class="cline-any cline-yes">
|
|
325
|
-
<span class="cline-any cline-yes">2x</span>
|
|
326
|
-
<span class="cline-any cline-no"> </span>
|
|
327
|
-
<span class="cline-any cline-no"> </span>
|
|
328
|
-
<span class="cline-any cline-yes">2x</span>
|
|
329
|
-
<span class="cline-any cline-yes">2x</span>
|
|
330
|
-
<span class="cline-any cline-yes">2x</span>
|
|
331
|
-
<span class="cline-any cline-yes">2x</span>
|
|
332
|
-
<span class="cline-any cline-yes">11x</span>
|
|
333
|
-
<span class="cline-any cline-yes">11x</span>
|
|
310
|
+
<span class="cline-any cline-yes">15x</span>
|
|
311
|
+
<span class="cline-any cline-yes">15x</span>
|
|
334
312
|
<span class="cline-any cline-yes">2x</span>
|
|
335
313
|
<span class="cline-any cline-no"> </span>
|
|
336
314
|
<span class="cline-any cline-no"> </span>
|
|
337
|
-
<span class="cline-any cline-yes">
|
|
338
|
-
<span class="cline-any cline-yes">
|
|
315
|
+
<span class="cline-any cline-yes">15x</span>
|
|
316
|
+
<span class="cline-any cline-yes">15x</span>
|
|
339
317
|
<span class="cline-any cline-yes">1x</span>
|
|
340
318
|
<span class="cline-any cline-no"> </span>
|
|
341
319
|
<span class="cline-any cline-no"> </span>
|
|
342
320
|
<span class="cline-any cline-yes">1x</span>
|
|
343
321
|
<span class="cline-any cline-yes">1x</span>
|
|
344
|
-
<span class="cline-any cline-yes">
|
|
345
|
-
<span class="cline-any cline-yes">1x</span>
|
|
346
|
-
<span class="cline-any cline-yes">1x</span>
|
|
347
|
-
<span class="cline-any cline-yes">1x</span>
|
|
348
|
-
<span class="cline-any cline-yes">1x</span>
|
|
349
|
-
<span class="cline-any cline-yes">11x</span>
|
|
350
|
-
<span class="cline-any cline-no"> </span>
|
|
351
|
-
<span class="cline-any cline-yes">2x</span>
|
|
322
|
+
<span class="cline-any cline-yes">15x</span>
|
|
352
323
|
<span class="cline-any cline-yes">2x</span>
|
|
353
324
|
<span class="cline-any cline-yes">2x</span>
|
|
354
325
|
<span class="cline-any cline-yes">2x</span>
|
|
355
326
|
<span class="cline-any cline-yes">2x</span>
|
|
356
|
-
<span class="cline-any cline-yes">
|
|
357
|
-
<span class="cline-any cline-yes">
|
|
358
|
-
<span class="cline-any cline-yes">11x</span>
|
|
327
|
+
<span class="cline-any cline-yes">15x</span>
|
|
328
|
+
<span class="cline-any cline-yes">15x</span>
|
|
359
329
|
<span class="cline-any cline-yes">1x</span>
|
|
360
330
|
<span class="cline-any cline-yes">1x</span>
|
|
361
331
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -395,19 +365,19 @@
|
|
|
395
365
|
<span class="cline-any cline-no"> </span>
|
|
396
366
|
<span class="cline-any cline-no"> </span>
|
|
397
367
|
<span class="cline-any cline-no"> </span>
|
|
398
|
-
<span class="cline-any cline-yes">
|
|
399
|
-
<span class="cline-any cline-yes">
|
|
400
|
-
<span class="cline-any cline-yes">
|
|
401
|
-
<span class="cline-any cline-yes">
|
|
402
|
-
<span class="cline-any cline-yes">
|
|
403
|
-
<span class="cline-any cline-yes">
|
|
404
|
-
<span class="cline-any cline-yes">
|
|
405
|
-
<span class="cline-any cline-yes">
|
|
406
|
-
<span class="cline-any cline-yes">
|
|
407
|
-
<span class="cline-any cline-yes">
|
|
408
|
-
<span class="cline-any cline-yes">
|
|
409
|
-
<span class="cline-any cline-yes">
|
|
410
|
-
<span class="cline-any cline-yes">
|
|
368
|
+
<span class="cline-any cline-yes">15x</span>
|
|
369
|
+
<span class="cline-any cline-yes">15x</span>
|
|
370
|
+
<span class="cline-any cline-yes">15x</span>
|
|
371
|
+
<span class="cline-any cline-yes">15x</span>
|
|
372
|
+
<span class="cline-any cline-yes">15x</span>
|
|
373
|
+
<span class="cline-any cline-yes">15x</span>
|
|
374
|
+
<span class="cline-any cline-yes">15x</span>
|
|
375
|
+
<span class="cline-any cline-yes">15x</span>
|
|
376
|
+
<span class="cline-any cline-yes">15x</span>
|
|
377
|
+
<span class="cline-any cline-yes">15x</span>
|
|
378
|
+
<span class="cline-any cline-yes">15x</span>
|
|
379
|
+
<span class="cline-any cline-yes">15x</span>
|
|
380
|
+
<span class="cline-any cline-yes">15x</span>
|
|
411
381
|
<span class="cline-any cline-yes">1x</span>
|
|
412
382
|
<span class="cline-any cline-yes">1x</span>
|
|
413
383
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -479,13 +449,6 @@ class SomeController extends AbstractController {
|
|
|
479
449
|
name: yup.string(),
|
|
480
450
|
}),
|
|
481
451
|
},
|
|
482
|
-
'/someDataItems': {
|
|
483
|
-
handler: this.getSomeDataItems,
|
|
484
|
-
request: yup.object().shape({
|
|
485
|
-
items: yup.array().of(yup.string()),
|
|
486
|
-
key: yup.string(),
|
|
487
|
-
}),
|
|
488
|
-
},
|
|
489
452
|
},
|
|
490
453
|
patch: {
|
|
491
454
|
'/userAvatar': {
|
|
@@ -499,9 +462,9 @@ class SomeController extends AbstractController {
|
|
|
499
462
|
'/putInfo': {
|
|
500
463
|
handler: this.putInfo,
|
|
501
464
|
request: yup.object().shape({
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
465
|
+
field: yup.string(),
|
|
466
|
+
}),
|
|
467
|
+
middleware: [[RoleMiddleware, { roles: ['admin'] }]],
|
|
505
468
|
},
|
|
506
469
|
},
|
|
507
470
|
};
|
|
@@ -522,14 +485,6 @@ class SomeController extends AbstractController {
|
|
|
522
485
|
const { page, limit, name } = req.appInfo.query;
|
|
523
486
|
return res.status(200).json({ data: { page, limit, name } });
|
|
524
487
|
}
|
|
525
|
-
|
|
526
|
-
<span class="fstat-no" title="function not covered" > async getSomeDataItems(req, res) {</span>
|
|
527
|
-
<span class="cstat-no" title="statement not covered" > const { items, key } = req.appInfo.request;</span>
|
|
528
|
-
|
|
529
|
-
await this.app.cache.getSetValue(key, () => items, 5);
|
|
530
|
-
|
|
531
|
-
return res.status(200).json({ data: items });
|
|
532
|
-
}
|
|
533
488
|
|
|
534
489
|
// eslint-disable-next-line class-methods-use-this
|
|
535
490
|
<span class="fstat-no" title="function not covered" > async postQueryParamaters(req, res) {</span>
|
|
@@ -601,7 +556,7 @@ module.exports = SomeController;
|
|
|
601
556
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
602
557
|
Code coverage generated by
|
|
603
558
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
604
|
-
at 2023-09-
|
|
559
|
+
at 2023-09-21T04:47:08.309Z
|
|
605
560
|
</div>
|
|
606
561
|
<script src="../../../prettify.js"></script>
|
|
607
562
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">86.41% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>140/162</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'>11/11</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">55.55% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>10/
|
|
42
|
+
<span class='fraction'>10/18</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">86.41% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>140/162</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="SomeController.js"><a href="SomeController.js.html">SomeController.js</a></td>
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="86.41" class="pic high">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="86.41" class="pct high">86.41%</td>
|
|
87
|
+
<td data-value="162" class="abs high">140/162</td>
|
|
88
88
|
<td data-value="100" class="pct high">100%</td>
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
89
|
+
<td data-value="11" class="abs high">11/11</td>
|
|
90
|
+
<td data-value="55.55" class="pct medium">55.55%</td>
|
|
91
|
+
<td data-value="18" class="abs medium">10/18</td>
|
|
92
|
+
<td data-value="86.41" class="pct high">86.41%</td>
|
|
93
|
+
<td data-value="162" class="abs high">140/162</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
</tbody>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2023-09-
|
|
104
|
+
at 2023-09-21T04:47:08.309Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for framework/helpers/files.js</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">framework/helpers</a> files.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">89.33% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>67/75</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">89.47% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>17/19</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'>2/2</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">89.33% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>67/75</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 oninput="onInput()" 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>
|
|
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>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
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>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">15x</span>
|
|
142
|
+
<span class="cline-any cline-yes">15x</span>
|
|
143
|
+
<span class="cline-any cline-yes">15x</span>
|
|
144
|
+
<span class="cline-any cline-yes">15x</span>
|
|
145
|
+
<span class="cline-any cline-yes">45x</span>
|
|
146
|
+
<span class="cline-any cline-yes">45x</span>
|
|
147
|
+
<span class="cline-any cline-yes">45x</span>
|
|
148
|
+
<span class="cline-any cline-yes">45x</span>
|
|
149
|
+
<span class="cline-any cline-yes">45x</span>
|
|
150
|
+
<span class="cline-any cline-yes">45x</span>
|
|
151
|
+
<span class="cline-any cline-yes">45x</span>
|
|
152
|
+
<span class="cline-any cline-yes">45x</span>
|
|
153
|
+
<span class="cline-any cline-yes">45x</span>
|
|
154
|
+
<span class="cline-any cline-yes">45x</span>
|
|
155
|
+
<span class="cline-any cline-yes">45x</span>
|
|
156
|
+
<span class="cline-any cline-yes">45x</span>
|
|
157
|
+
<span class="cline-any cline-yes">690x</span>
|
|
158
|
+
<span class="cline-any cline-yes">30x</span>
|
|
159
|
+
<span class="cline-any cline-yes">30x</span>
|
|
160
|
+
<span class="cline-any cline-yes">660x</span>
|
|
161
|
+
<span class="cline-any cline-yes">660x</span>
|
|
162
|
+
<span class="cline-any cline-yes">690x</span>
|
|
163
|
+
<span class="cline-any cline-yes">30x</span>
|
|
164
|
+
<span class="cline-any cline-yes">30x</span>
|
|
165
|
+
<span class="cline-any cline-yes">30x</span>
|
|
166
|
+
<span class="cline-any cline-yes">690x</span>
|
|
167
|
+
<span class="cline-any cline-yes">180x</span>
|
|
168
|
+
<span class="cline-any cline-yes">180x</span>
|
|
169
|
+
<span class="cline-any cline-yes">690x</span>
|
|
170
|
+
<span class="cline-any cline-no"> </span>
|
|
171
|
+
<span class="cline-any cline-no"> </span>
|
|
172
|
+
<span class="cline-any cline-no"> </span>
|
|
173
|
+
<span class="cline-any cline-yes">450x</span>
|
|
174
|
+
<span class="cline-any cline-yes">45x</span>
|
|
175
|
+
<span class="cline-any cline-yes">45x</span>
|
|
176
|
+
<span class="cline-any cline-yes">45x</span>
|
|
177
|
+
<span class="cline-any cline-yes">45x</span>
|
|
178
|
+
<span class="cline-any cline-yes">45x</span>
|
|
179
|
+
<span class="cline-any cline-yes">45x</span>
|
|
180
|
+
<span class="cline-any cline-yes">45x</span>
|
|
181
|
+
<span class="cline-any cline-yes">45x</span>
|
|
182
|
+
<span class="cline-any cline-yes">45x</span>
|
|
183
|
+
<span class="cline-any cline-yes">45x</span>
|
|
184
|
+
<span class="cline-any cline-yes">45x</span>
|
|
185
|
+
<span class="cline-any cline-yes">45x</span>
|
|
186
|
+
<span class="cline-any cline-yes">45x</span>
|
|
187
|
+
<span class="cline-any cline-yes">45x</span>
|
|
188
|
+
<span class="cline-any cline-yes">45x</span>
|
|
189
|
+
<span class="cline-any cline-yes">225x</span>
|
|
190
|
+
<span class="cline-any cline-yes">225x</span>
|
|
191
|
+
<span class="cline-any cline-yes">225x</span>
|
|
192
|
+
<span class="cline-any cline-yes">225x</span>
|
|
193
|
+
<span class="cline-any cline-yes">225x</span>
|
|
194
|
+
<span class="cline-any cline-yes">225x</span>
|
|
195
|
+
<span class="cline-any cline-yes">225x</span>
|
|
196
|
+
<span class="cline-any cline-no"> </span>
|
|
197
|
+
<span class="cline-any cline-no"> </span>
|
|
198
|
+
<span class="cline-any cline-no"> </span>
|
|
199
|
+
<span class="cline-any cline-no"> </span>
|
|
200
|
+
<span class="cline-any cline-no"> </span>
|
|
201
|
+
<span class="cline-any cline-yes">225x</span>
|
|
202
|
+
<span class="cline-any cline-yes">45x</span>
|
|
203
|
+
<span class="cline-any cline-yes">45x</span>
|
|
204
|
+
<span class="cline-any cline-yes">225x</span>
|
|
205
|
+
<span class="cline-any cline-yes">225x</span>
|
|
206
|
+
<span class="cline-any cline-yes">225x</span>
|
|
207
|
+
<span class="cline-any cline-yes">225x</span>
|
|
208
|
+
<span class="cline-any cline-yes">225x</span>
|
|
209
|
+
<span class="cline-any cline-yes">45x</span>
|
|
210
|
+
<span class="cline-any cline-yes">15x</span>
|
|
211
|
+
<span class="cline-any cline-yes">15x</span>
|
|
212
|
+
<span class="cline-any cline-yes">15x</span>
|
|
213
|
+
<span class="cline-any cline-yes">15x</span>
|
|
214
|
+
<span class="cline-any cline-yes">15x</span>
|
|
215
|
+
<span class="cline-any cline-yes">15x</span>
|
|
216
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const fs = require('node:fs').promises;
|
|
217
|
+
const { join } = require('node:path');
|
|
218
|
+
|
|
219
|
+
const getFilesPathWithInheritance = async ({
|
|
220
|
+
internalFolder,
|
|
221
|
+
externalFolder,
|
|
222
|
+
logger,
|
|
223
|
+
loggerFileType = '',
|
|
224
|
+
filter: { startWithCapital = true, notTests = true, notHidden = true } = {},
|
|
225
|
+
}) => {
|
|
226
|
+
let [internalFiles, externalFiles] = await Promise.all([
|
|
227
|
+
fs.readdir(internalFolder, { recursive: true, withFileTypes: true }),
|
|
228
|
+
fs.readdir(externalFolder, { recursive: true, withFileTypes: true }),
|
|
229
|
+
]);
|
|
230
|
+
|
|
231
|
+
const filterIndexFile = (fileDirent) => {
|
|
232
|
+
if (!fileDirent.isFile()) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
const fileArray = fileDirent.name.split('/');
|
|
236
|
+
const file = fileArray[fileArray.length - 1];
|
|
237
|
+
if (startWithCapital && file[0] !== file[0].toUpperCase()) {
|
|
238
|
+
// not start with capital
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
if (notTests && file.endsWith('.test.js')) {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
if (notHidden && file[0] === '.') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
245
|
+
<span class="cstat-no" title="statement not covered" > // not start with dot</span>
|
|
246
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
247
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
248
|
+
return true;
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
internalFiles = internalFiles
|
|
252
|
+
.filter(filterIndexFile)
|
|
253
|
+
.map((fileDirent) =>
|
|
254
|
+
join(fileDirent.path, fileDirent.name).replace(`${internalFolder}/`, ''),
|
|
255
|
+
);
|
|
256
|
+
externalFiles = externalFiles
|
|
257
|
+
.filter(filterIndexFile)
|
|
258
|
+
.map((fileDirent) =>
|
|
259
|
+
join(fileDirent.path, fileDirent.name).replace(`${externalFolder}/`, ''),
|
|
260
|
+
);
|
|
261
|
+
|
|
262
|
+
const filesToLoad = [];
|
|
263
|
+
for (const file of internalFiles) {
|
|
264
|
+
if (externalFiles.includes(file)) {
|
|
265
|
+
logger(
|
|
266
|
+
`Skipping register INTERNAL file '${file}' ${
|
|
267
|
+
loggerFileType ? `of type ${loggerFileType}` : ''
|
|
268
|
+
} as it override by EXTERNAL ONE`,
|
|
269
|
+
);
|
|
270
|
+
}<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
|
|
271
|
+
<span class="cstat-no" title="statement not covered" > filesToLoad.push({</span>
|
|
272
|
+
<span class="cstat-no" title="statement not covered" > path: `${internalFolder}/${file}`,</span>
|
|
273
|
+
<span class="cstat-no" title="statement not covered" > file,</span>
|
|
274
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
275
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
for (const file of externalFiles) {
|
|
279
|
+
filesToLoad.push({
|
|
280
|
+
path: `${externalFolder}/${file}`,
|
|
281
|
+
file,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
return filesToLoad;
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
module.exports = {
|
|
288
|
+
// eslint-disable-next-line import/prefer-default-export
|
|
289
|
+
getFilesPathWithInheritance,
|
|
290
|
+
};
|
|
291
|
+
</pre></td></tr></table></pre>
|
|
292
|
+
|
|
293
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
294
|
+
</div><!-- /wrapper -->
|
|
295
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
296
|
+
Code coverage generated by
|
|
297
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
298
|
+
at 2023-09-21T04:47:08.309Z
|
|
299
|
+
</div>
|
|
300
|
+
<script src="../../prettify.js"></script>
|
|
301
|
+
<script>
|
|
302
|
+
window.onload = function () {
|
|
303
|
+
prettyPrint();
|
|
304
|
+
};
|
|
305
|
+
</script>
|
|
306
|
+
<script src="../../sorter.js"></script>
|
|
307
|
+
<script src="../../block-navigation.js"></script>
|
|
308
|
+
</body>
|
|
309
|
+
</html>
|
|
310
|
+
|