@next-core/build-config-factory 2.23.0 → 2.23.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/CHANGELOG.md CHANGED
@@ -3,6 +3,44 @@
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.23.4](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.23.3...@next-core/build-config-factory@2.23.4) (2022-07-15)
7
+
8
+ **Note:** Version bump only for package @next-core/build-config-factory
9
+
10
+
11
+
12
+
13
+
14
+ ## [2.23.3](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.23.2...@next-core/build-config-factory@2.23.3) (2022-07-14)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **generateBrickDocs:** filter element childern without supported decorators ([a2f8e50](https://github.com/easyops-cn/next-core/commit/a2f8e50425a6a1c6aec4ed2d6c21858d2d4dbea4))
20
+
21
+
22
+
23
+
24
+
25
+ ## [2.23.2](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.23.1...@next-core/build-config-factory@2.23.2) (2022-07-12)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * **generateBrickDocs:** support wrapping intersection types ([9dca68d](https://github.com/easyops-cn/next-core/commit/9dca68d14396fec7f250c2ad41ba95464dcc3577))
31
+
32
+
33
+
34
+
35
+
36
+ ## [2.23.1](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.23.0...@next-core/build-config-factory@2.23.1) (2022-07-12)
37
+
38
+ **Note:** Version bump only for package @next-core/build-config-factory
39
+
40
+
41
+
42
+
43
+
6
44
  # [2.23.0](https://github.com/easyops-cn/next-core/compare/@next-core/build-config-factory@2.22.0...@next-core/build-config-factory@2.23.0) (2022-07-12)
7
45
 
8
46
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/build-config-factory",
3
- "version": "2.23.0",
3
+ "version": "2.23.4",
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,7 +18,7 @@
18
18
  },
19
19
  "sideEffects": false,
20
20
  "dependencies": {
21
- "@next-core/brick-utils": "^2.37.21",
21
+ "@next-core/brick-utils": "^2.37.23",
22
22
  "@next-core/repo-config": "^0.2.1",
23
23
  "@next-core/typedoc-plugin-filter-inherit": "^1.2.2",
24
24
  "@next-core/webpack-config-factory": "^2.16.6",
@@ -37,5 +37,5 @@
37
37
  "typedoc": "^0.19.2",
38
38
  "typedoc-plugin-no-inherit": "^1.2.2"
39
39
  },
40
- "gitHead": "c8dfe32cac64f85af7aa55e420d6b5182d1c1505"
40
+ "gitHead": "0d6a08eafd7c0969db0495a29bd1a99fb3913c07"
41
41
  }
@@ -11,7 +11,7 @@ const brickKindMap = {
11
11
  };
12
12
  const extraScanPaths = ["src/interfaces"];
13
13
 
14
- const supportedDecorators = ["property", "event", "method"];
14
+ const supportedDecoratorSet = new Set(["property", "event", "method"]);
15
15
  const methodComments = ["params", "description", "deprecated"];
16
16
  const eventDocComments = ["detail", "description", "deprecated"];
17
17
  const propertyDocComments = [
@@ -225,7 +225,7 @@ function getRealBrickDocCategory(brick) {
225
225
  }
226
226
 
227
227
  const finder = brick.decorators.find((d) =>
228
- supportedDecorators.includes(d.name)
228
+ supportedDecoratorSet.has(d.name)
229
229
  );
230
230
 
231
231
  if (finder) {
@@ -314,6 +314,14 @@ function existBrickDocId(element) {
314
314
  }
315
315
  }
316
316
 
317
+ function wrapBracketByParentType(typeStr, parentType) {
318
+ return parentType === "array" ||
319
+ parentType === "union" ||
320
+ parentType === "intersection"
321
+ ? `(${typeStr})`
322
+ : typeStr;
323
+ }
324
+
317
325
  function extractRealInterfaceType(typeData, parentType) {
318
326
  switch (typeData?.type) {
319
327
  case "reference":
@@ -335,15 +343,13 @@ function extractRealInterfaceType(typeData, parentType) {
335
343
  typeData.elementType,
336
344
  typeData.type
337
345
  )}[]`;
338
- case "union": {
339
- const typeStr = typeData.types
340
- .map((type) => extractRealInterfaceType(type, typeData.type))
341
- .join(" | ");
342
-
343
- return parentType === "array" || parentType === "union"
344
- ? `(${typeStr})`
345
- : typeStr;
346
- }
346
+ case "union":
347
+ return wrapBracketByParentType(
348
+ typeData.types
349
+ .map((type) => extractRealInterfaceType(type, typeData.type))
350
+ .join(" | "),
351
+ parentType
352
+ );
347
353
  case "stringLiteral":
348
354
  return `"${typeData.value}"`;
349
355
  case "intrinsic":
@@ -351,9 +357,12 @@ function extractRealInterfaceType(typeData, parentType) {
351
357
  case "unknown": // unknown 暂定是`type`中的数字类型,e.g: type t = 0 | 1 | 'string'
352
358
  return typeData.name;
353
359
  case "intersection":
354
- return typeData.types
355
- .map((type) => extractRealInterfaceType(type))
356
- .join(" & ");
360
+ return wrapBracketByParentType(
361
+ typeData.types
362
+ .map((type) => extractRealInterfaceType(type, typeData.type))
363
+ .join(" & "),
364
+ parentType
365
+ );
357
366
  case "reflection": {
358
367
  if (typeData.declaration) {
359
368
  const {
@@ -373,25 +382,23 @@ function extractRealInterfaceType(typeData, parentType) {
373
382
  )
374
383
  .join(", ")}) => ${extractRealInterfaceType(type)}`;
375
384
 
376
- return parentType === "array" || parentType === "union"
377
- ? `(${typeStr})`
378
- : typeStr;
385
+ return wrapBracketByParentType(typeStr, parentType);
379
386
  } else {
380
387
  return `{ ${[
381
388
  ...children.map(
382
389
  (child) =>
383
390
  `${child.name}${
384
391
  child.flags?.isOptional ? "?" : ""
385
- }: ${extractRealInterfaceType(child.type)};`
392
+ }: ${extractRealInterfaceType(child.type)}`
386
393
  ),
387
394
  ...indexSignature.map((item) => {
388
395
  const parameter = item.parameters[0];
389
396
  return `[${parameter.name}: ${extractRealInterfaceType(
390
397
  parameter.type.type,
391
398
  parameter.type
392
- )}]: ${extractRealInterfaceType(item.type)};`;
399
+ )}]: ${extractRealInterfaceType(item.type)}`;
393
400
  }),
394
- ].join(" ")} }`;
401
+ ].join("; ")} }`;
395
402
  }
396
403
  } else {
397
404
  return "object";
@@ -536,6 +543,14 @@ function traverseElementUsedInterfaceIds(
536
543
  traversedTypeSet
537
544
  ) {
538
545
  element.children.forEach((child) => {
546
+ if (
547
+ !child.decorators?.some((decorator) =>
548
+ supportedDecoratorSet.has(decorator.name)
549
+ )
550
+ ) {
551
+ return;
552
+ }
553
+
539
554
  if (child.kindString === "Method") {
540
555
  child.signatures[0].parameters?.map((parameter) =>
541
556
  traverseUsedReferenceIdsByType(