@next-core/build-config-factory 2.18.51 → 2.20.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 +36 -0
- package/package.json +4 -4
- package/src/generateBrickDocs.js +102 -24
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,42 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.20.0](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.19.0...@next-core/build-config-factory@2.20.0) (2022-07-05)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **generateBrickDocs:** support infer required and default of property and detail of event from declaration ([6a60f26](https://github.com/easyops-cn/next-core/commit/6a60f26563683d89d5b36bb766f973cb23522e70))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [2.19.0](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.18.52...@next-core/build-config-factory@2.19.0) (2022-07-05)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **generateBrickDocs:** type will not be traversed in another module once traversed ([c539bcf](https://github.com/easyops-cn/next-core/commit/c539bcf86a8d7d0955f4115373db838032c5c677))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Features
|
|
26
|
+
|
|
27
|
+
* **generateBrickDocs:** add support for extendedTypes ([12c9e53](https://github.com/easyops-cn/next-core/commit/12c9e536b07104a9ee8478cbe8c2aa6887751335))
|
|
28
|
+
* **generateBrickDocs:** add support for index signature ([1f16c2c](https://github.com/easyops-cn/next-core/commit/1f16c2c1a961a43a139f8bef1117c8eb4e4ba3f6))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## [2.18.52](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.18.51...@next-core/build-config-factory@2.18.52) (2022-06-28)
|
|
35
|
+
|
|
36
|
+
**Note:** Version bump only for package @next-core/build-config-factory
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
6
42
|
## [2.18.51](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.18.50...@next-core/build-config-factory@2.18.51) (2022-06-27)
|
|
7
43
|
|
|
8
44
|
**Note:** Version bump only for package @next-core/build-config-factory
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/build-config-factory",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.20.0",
|
|
4
4
|
"description": "build config factory",
|
|
5
5
|
"homepage": "https://github.com/easyops-cn/next-core/tree/master/packages/build-config-factory",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
},
|
|
19
19
|
"sideEffects": false,
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@next-core/brick-utils": "^2.37.
|
|
21
|
+
"@next-core/brick-utils": "^2.37.20",
|
|
22
22
|
"@next-core/repo-config": "^0.2.1",
|
|
23
23
|
"@next-core/typedoc-plugin-filter-inherit": "^1.2.2",
|
|
24
|
-
"@next-core/webpack-config-factory": "^2.16.
|
|
24
|
+
"@next-core/webpack-config-factory": "^2.16.6",
|
|
25
25
|
"change-case": "^4.1.2",
|
|
26
26
|
"chokidar": "^3.5.3",
|
|
27
27
|
"fs-extra": "^10.1.0",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"typedoc": "^0.19.2",
|
|
38
38
|
"typedoc-plugin-no-inherit": "^1.2.2"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "81ac28a0f1346239d497cd23acc7795e5f8c21cc"
|
|
41
41
|
}
|
package/src/generateBrickDocs.js
CHANGED
|
@@ -101,11 +101,12 @@ function convertTagsToMapByFields(tags, fields) {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
function composeBrickDocProperties(brick) {
|
|
104
|
-
const { name, comment } = brick;
|
|
105
|
-
const type = brick.type && brick.type.type;
|
|
104
|
+
const { name, comment, type, flags, defaultValue } = brick;
|
|
106
105
|
return {
|
|
107
106
|
name,
|
|
108
|
-
type: extractRealInterfaceType(type,
|
|
107
|
+
type: extractRealInterfaceType(type?.type, type),
|
|
108
|
+
required: flags?.isOptional !== true,
|
|
109
|
+
default: defaultValue,
|
|
109
110
|
...convertTagsToMapByFields(get(comment, "tags", []), propertyDocComments),
|
|
110
111
|
};
|
|
111
112
|
}
|
|
@@ -122,11 +123,19 @@ function getEventTypeByDecorators(decorators) {
|
|
|
122
123
|
return null;
|
|
123
124
|
}
|
|
124
125
|
|
|
126
|
+
function getDetailTypeByEventType(type) {
|
|
127
|
+
if (type.name === "EventEmitter" && type.typeArguments?.length > 0) {
|
|
128
|
+
const argument = type.typeArguments[0];
|
|
129
|
+
return extractRealInterfaceType(argument.type, argument);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
125
133
|
function composeBrickDocEvents(brick) {
|
|
126
|
-
const { comment, decorators } = brick;
|
|
134
|
+
const { comment, decorators, type } = brick;
|
|
127
135
|
|
|
128
136
|
return {
|
|
129
137
|
type: getEventTypeByDecorators(decorators),
|
|
138
|
+
detail: getDetailTypeByEventType(type),
|
|
130
139
|
...convertTagsToMapByFields(get(comment, "tags", []), eventDocComments),
|
|
131
140
|
};
|
|
132
141
|
}
|
|
@@ -392,16 +401,32 @@ function extractBrickDocInterface(typeIds, references) {
|
|
|
392
401
|
name: finder.name,
|
|
393
402
|
typeParameter: getTypeParameter(finder),
|
|
394
403
|
kind: "interface",
|
|
395
|
-
|
|
396
|
-
|
|
404
|
+
extendedTypes: finder.extendedTypes,
|
|
405
|
+
children:
|
|
406
|
+
finder.children?.map((child) => {
|
|
407
|
+
return {
|
|
408
|
+
name: child.name,
|
|
409
|
+
type: extractRealInterfaceType(child.type.type, child.type),
|
|
410
|
+
required: !get(child, ["flags", "isOptional"], false),
|
|
411
|
+
description: get(child, ["comment", "shortText"], "").trim(),
|
|
412
|
+
};
|
|
413
|
+
}) || [],
|
|
414
|
+
indexSignature:
|
|
415
|
+
finder.indexSignature?.map((child) => {
|
|
397
416
|
return {
|
|
398
417
|
name: child.name,
|
|
418
|
+
parameters: child.parameters.map((parameter) => ({
|
|
419
|
+
...parameter,
|
|
420
|
+
type: extractRealInterfaceType(
|
|
421
|
+
parameter.type.type,
|
|
422
|
+
parameter.type
|
|
423
|
+
),
|
|
424
|
+
})),
|
|
399
425
|
type: extractRealInterfaceType(child.type.type, child.type),
|
|
400
426
|
required: !get(child, ["flags", "isOptional"], false),
|
|
401
427
|
description: get(child, ["comment", "shortText"], "").trim(),
|
|
402
428
|
};
|
|
403
|
-
}),
|
|
404
|
-
],
|
|
429
|
+
}) || [],
|
|
405
430
|
};
|
|
406
431
|
}
|
|
407
432
|
|
|
@@ -438,10 +463,16 @@ function traverseExtraInterfaceReferences(modules, References) {
|
|
|
438
463
|
function traverseElementUsedInterfaceIds(
|
|
439
464
|
element,
|
|
440
465
|
usedReferenceIds,
|
|
441
|
-
references
|
|
466
|
+
references,
|
|
467
|
+
traversedTypeSet
|
|
442
468
|
) {
|
|
443
469
|
element.children.forEach((child) => {
|
|
444
|
-
traverseUsedReferenceIdsByType(
|
|
470
|
+
traverseUsedReferenceIdsByType(
|
|
471
|
+
child.type,
|
|
472
|
+
usedReferenceIds,
|
|
473
|
+
references,
|
|
474
|
+
traversedTypeSet
|
|
475
|
+
);
|
|
445
476
|
});
|
|
446
477
|
}
|
|
447
478
|
|
|
@@ -461,13 +492,19 @@ function traverseModules(modules, brickDocs) {
|
|
|
461
492
|
if (!elementId) return;
|
|
462
493
|
|
|
463
494
|
const usedReferenceIds = new Set();
|
|
495
|
+
const traversedTypeSet = new Set();
|
|
464
496
|
const classElement = module.children.find(
|
|
465
497
|
(child) => child.id === elementId && existBrickDocId(child)
|
|
466
498
|
);
|
|
467
499
|
if (!classElement) return;
|
|
468
500
|
const { comment, children, groups } = classElement;
|
|
469
501
|
const references = [...module.children, ...extraInterfaceReferencesValues];
|
|
470
|
-
traverseElementUsedInterfaceIds(
|
|
502
|
+
traverseElementUsedInterfaceIds(
|
|
503
|
+
classElement,
|
|
504
|
+
usedReferenceIds,
|
|
505
|
+
references,
|
|
506
|
+
traversedTypeSet
|
|
507
|
+
);
|
|
471
508
|
const brick = {
|
|
472
509
|
...extractBrickDocBaseKind(comment.tags),
|
|
473
510
|
...extractBrickDocComplexKind(groups, children),
|
|
@@ -480,25 +517,38 @@ function traverseModules(modules, brickDocs) {
|
|
|
480
517
|
});
|
|
481
518
|
}
|
|
482
519
|
|
|
483
|
-
function traverseUsedReferenceIdsByType(
|
|
520
|
+
function traverseUsedReferenceIdsByType(
|
|
521
|
+
type,
|
|
522
|
+
usedReferenceIds,
|
|
523
|
+
references,
|
|
524
|
+
traversedTypeSet
|
|
525
|
+
) {
|
|
484
526
|
if (!type || !type.type) return;
|
|
485
527
|
|
|
486
|
-
if (type
|
|
528
|
+
if (traversedTypeSet.has(type)) {
|
|
487
529
|
return;
|
|
488
530
|
}
|
|
489
|
-
|
|
531
|
+
|
|
532
|
+
traversedTypeSet.add(type);
|
|
533
|
+
|
|
490
534
|
switch (type.type) {
|
|
491
535
|
case "union":
|
|
492
536
|
case "intersection":
|
|
493
537
|
type.types.forEach((item) =>
|
|
494
|
-
traverseUsedReferenceIdsByType(
|
|
538
|
+
traverseUsedReferenceIdsByType(
|
|
539
|
+
item,
|
|
540
|
+
usedReferenceIds,
|
|
541
|
+
references,
|
|
542
|
+
traversedTypeSet
|
|
543
|
+
)
|
|
495
544
|
);
|
|
496
545
|
break;
|
|
497
546
|
case "array":
|
|
498
547
|
traverseUsedReferenceIdsByType(
|
|
499
548
|
type.elementType,
|
|
500
549
|
usedReferenceIds,
|
|
501
|
-
references
|
|
550
|
+
references,
|
|
551
|
+
traversedTypeSet
|
|
502
552
|
);
|
|
503
553
|
break;
|
|
504
554
|
case "reference":
|
|
@@ -507,12 +557,18 @@ function traverseUsedReferenceIdsByType(type, usedReferenceIds, references) {
|
|
|
507
557
|
traverseUsedReferenceIdsByReflection(
|
|
508
558
|
references.find((child) => child.id === type.id),
|
|
509
559
|
usedReferenceIds,
|
|
510
|
-
references
|
|
560
|
+
references,
|
|
561
|
+
traversedTypeSet
|
|
511
562
|
);
|
|
512
563
|
}
|
|
513
564
|
if (type.typeArguments && type.typeArguments.length > 0) {
|
|
514
565
|
type.typeArguments.forEach((item) =>
|
|
515
|
-
traverseUsedReferenceIdsByType(
|
|
566
|
+
traverseUsedReferenceIdsByType(
|
|
567
|
+
item,
|
|
568
|
+
usedReferenceIds,
|
|
569
|
+
references,
|
|
570
|
+
traversedTypeSet
|
|
571
|
+
)
|
|
516
572
|
);
|
|
517
573
|
}
|
|
518
574
|
break;
|
|
@@ -521,7 +577,8 @@ function traverseUsedReferenceIdsByType(type, usedReferenceIds, references) {
|
|
|
521
577
|
traverseUsedReferenceIdsByType(
|
|
522
578
|
type.objectType,
|
|
523
579
|
usedReferenceIds,
|
|
524
|
-
references
|
|
580
|
+
references,
|
|
581
|
+
traversedTypeSet
|
|
525
582
|
);
|
|
526
583
|
break;
|
|
527
584
|
}
|
|
@@ -530,20 +587,40 @@ function traverseUsedReferenceIdsByType(type, usedReferenceIds, references) {
|
|
|
530
587
|
function traverseUsedReferenceIdsByReflection(
|
|
531
588
|
reflection,
|
|
532
589
|
usedReferenceIds,
|
|
533
|
-
references
|
|
590
|
+
references,
|
|
591
|
+
traversedTypeSet
|
|
534
592
|
) {
|
|
535
593
|
if (!reflection) {
|
|
536
594
|
return;
|
|
537
595
|
}
|
|
538
596
|
switch (reflection.kindString) {
|
|
539
597
|
case "Interface":
|
|
598
|
+
reflection.extendedTypes?.forEach((type) =>
|
|
599
|
+
traverseUsedReferenceIdsByType(
|
|
600
|
+
type,
|
|
601
|
+
usedReferenceIds,
|
|
602
|
+
references,
|
|
603
|
+
traversedTypeSet
|
|
604
|
+
)
|
|
605
|
+
);
|
|
540
606
|
reflection.children
|
|
541
|
-
|
|
607
|
+
?.filter((item) => item.kindString === "Property")
|
|
608
|
+
.forEach((item) =>
|
|
609
|
+
traverseUsedReferenceIdsByType(
|
|
610
|
+
item.type,
|
|
611
|
+
usedReferenceIds,
|
|
612
|
+
references,
|
|
613
|
+
traversedTypeSet
|
|
614
|
+
)
|
|
615
|
+
);
|
|
616
|
+
reflection.indexSignature
|
|
617
|
+
?.filter((item) => item.kindString === "Index signature")
|
|
542
618
|
.forEach((item) =>
|
|
543
619
|
traverseUsedReferenceIdsByType(
|
|
544
620
|
item.type,
|
|
545
621
|
usedReferenceIds,
|
|
546
|
-
references
|
|
622
|
+
references,
|
|
623
|
+
traversedTypeSet
|
|
547
624
|
)
|
|
548
625
|
);
|
|
549
626
|
break;
|
|
@@ -551,7 +628,8 @@ function traverseUsedReferenceIdsByReflection(
|
|
|
551
628
|
traverseUsedReferenceIdsByType(
|
|
552
629
|
reflection.type,
|
|
553
630
|
usedReferenceIds,
|
|
554
|
-
references
|
|
631
|
+
references,
|
|
632
|
+
traversedTypeSet
|
|
555
633
|
);
|
|
556
634
|
break;
|
|
557
635
|
}
|
|
@@ -590,7 +668,7 @@ function generateBrickBook(docsJson) {
|
|
|
590
668
|
fs.writeFileSync(storiesPath, JSON.stringify(stories, null, 2), {
|
|
591
669
|
encoding: "utf-8",
|
|
592
670
|
});
|
|
593
|
-
console.log("Brick book written to
|
|
671
|
+
console.log("Brick book written to stories.json.");
|
|
594
672
|
}
|
|
595
673
|
|
|
596
674
|
module.exports = function generateBrickDocs(packageName) {
|