@teambit/semantics.entities.semantic-schema 0.0.78 → 0.0.80

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.
Files changed (140) hide show
  1. package/dist/api-schema.d.ts +3 -3
  2. package/dist/api-schema.js +160 -115
  3. package/dist/api-schema.js.map +1 -1
  4. package/dist/export.d.ts +2 -2
  5. package/dist/export.js +27 -23
  6. package/dist/export.js.map +1 -1
  7. package/dist/index.js +134 -39
  8. package/dist/index.js.map +1 -1
  9. package/dist/schema-node-constructor.js +1 -1
  10. package/dist/schema-node-constructor.js.map +1 -1
  11. package/dist/schema-node.js +45 -40
  12. package/dist/schema-node.js.map +1 -1
  13. package/dist/schema-registry.js +36 -23
  14. package/dist/schema-registry.js.map +1 -1
  15. package/dist/schemas/array-literal-expression.js +43 -23
  16. package/dist/schemas/array-literal-expression.js.map +1 -1
  17. package/dist/schemas/class.d.ts +17 -17
  18. package/dist/schemas/class.js +116 -83
  19. package/dist/schemas/class.js.map +1 -1
  20. package/dist/schemas/conditional-type.js +58 -36
  21. package/dist/schemas/conditional-type.js.map +1 -1
  22. package/dist/schemas/constructor.js +46 -18
  23. package/dist/schemas/constructor.js.map +1 -1
  24. package/dist/schemas/decorator.d.ts +12 -12
  25. package/dist/schemas/decorator.js +64 -40
  26. package/dist/schemas/decorator.js.map +1 -1
  27. package/dist/schemas/docs/doc.d.ts +10 -10
  28. package/dist/schemas/docs/doc.js +66 -51
  29. package/dist/schemas/docs/doc.js.map +1 -1
  30. package/dist/schemas/docs/index.js +57 -10
  31. package/dist/schemas/docs/index.js.map +1 -1
  32. package/dist/schemas/docs/property-like-tag.d.ts +5 -5
  33. package/dist/schemas/docs/property-like-tag.js +51 -32
  34. package/dist/schemas/docs/property-like-tag.js.map +1 -1
  35. package/dist/schemas/docs/return-tag.d.ts +6 -6
  36. package/dist/schemas/docs/return-tag.js +47 -29
  37. package/dist/schemas/docs/return-tag.js.map +1 -1
  38. package/dist/schemas/docs/tag.d.ts +5 -5
  39. package/dist/schemas/docs/tag.js +68 -58
  40. package/dist/schemas/docs/tag.js.map +1 -1
  41. package/dist/schemas/enum-member.d.ts +11 -11
  42. package/dist/schemas/enum-member.js +59 -40
  43. package/dist/schemas/enum-member.js.map +1 -1
  44. package/dist/schemas/enum.d.ts +8 -8
  45. package/dist/schemas/enum.js +81 -52
  46. package/dist/schemas/enum.js.map +1 -1
  47. package/dist/schemas/export.d.ts +9 -9
  48. package/dist/schemas/export.js +84 -58
  49. package/dist/schemas/export.js.map +1 -1
  50. package/dist/schemas/expression-with-arguments.js +53 -31
  51. package/dist/schemas/expression-with-arguments.js.map +1 -1
  52. package/dist/schemas/function-like.d.ts +16 -16
  53. package/dist/schemas/function-like.js +136 -99
  54. package/dist/schemas/function-like.js.map +1 -1
  55. package/dist/schemas/get-accessor.js +67 -42
  56. package/dist/schemas/get-accessor.js.map +1 -1
  57. package/dist/schemas/ignored.d.ts +1 -1
  58. package/dist/schemas/ignored.js +49 -30
  59. package/dist/schemas/ignored.js.map +1 -1
  60. package/dist/schemas/index-signature.js +55 -28
  61. package/dist/schemas/index-signature.js.map +1 -1
  62. package/dist/schemas/index.js +620 -107
  63. package/dist/schemas/index.js.map +1 -1
  64. package/dist/schemas/indexed-access-type.js +50 -30
  65. package/dist/schemas/indexed-access-type.js.map +1 -1
  66. package/dist/schemas/inference-type.d.ts +8 -8
  67. package/dist/schemas/inference-type.js +54 -38
  68. package/dist/schemas/inference-type.js.map +1 -1
  69. package/dist/schemas/interface.d.ts +11 -11
  70. package/dist/schemas/interface.js +100 -67
  71. package/dist/schemas/interface.js.map +1 -1
  72. package/dist/schemas/keyword-type.js +35 -22
  73. package/dist/schemas/keyword-type.js.map +1 -1
  74. package/dist/schemas/literal-type.js +35 -22
  75. package/dist/schemas/literal-type.js.map +1 -1
  76. package/dist/schemas/literal-value.js +36 -23
  77. package/dist/schemas/literal-value.js.map +1 -1
  78. package/dist/schemas/module.d.ts +1 -1
  79. package/dist/schemas/module.js +81 -57
  80. package/dist/schemas/module.js.map +1 -1
  81. package/dist/schemas/named-tuple.d.ts +3 -3
  82. package/dist/schemas/named-tuple.js +48 -28
  83. package/dist/schemas/named-tuple.js.map +1 -1
  84. package/dist/schemas/object-literal-expression.js +47 -30
  85. package/dist/schemas/object-literal-expression.js.map +1 -1
  86. package/dist/schemas/parameter.d.ts +5 -5
  87. package/dist/schemas/parameter.js +83 -61
  88. package/dist/schemas/parameter.js.map +1 -1
  89. package/dist/schemas/parenthesized-type.js +45 -26
  90. package/dist/schemas/parenthesized-type.js.map +1 -1
  91. package/dist/schemas/property-assignment.d.ts +10 -10
  92. package/dist/schemas/property-assignment.js +61 -34
  93. package/dist/schemas/property-assignment.js.map +1 -1
  94. package/dist/schemas/set-accessor.d.ts +2 -2
  95. package/dist/schemas/set-accessor.js +60 -35
  96. package/dist/schemas/set-accessor.js.map +1 -1
  97. package/dist/schemas/template-literal-type-span.js +48 -28
  98. package/dist/schemas/template-literal-type-span.js.map +1 -1
  99. package/dist/schemas/template-literal-type.js +47 -27
  100. package/dist/schemas/template-literal-type.js.map +1 -1
  101. package/dist/schemas/this-type.js +29 -19
  102. package/dist/schemas/this-type.js.map +1 -1
  103. package/dist/schemas/tuple-type.js +42 -23
  104. package/dist/schemas/tuple-type.js.map +1 -1
  105. package/dist/schemas/type-array.js +45 -26
  106. package/dist/schemas/type-array.js.map +1 -1
  107. package/dist/schemas/type-intersection.js +45 -26
  108. package/dist/schemas/type-intersection.js.map +1 -1
  109. package/dist/schemas/type-literal.js +56 -37
  110. package/dist/schemas/type-literal.js.map +1 -1
  111. package/dist/schemas/type-operator.js +48 -28
  112. package/dist/schemas/type-operator.js.map +1 -1
  113. package/dist/schemas/type-predicate.d.ts +1 -1
  114. package/dist/schemas/type-predicate.js +56 -36
  115. package/dist/schemas/type-predicate.js.map +1 -1
  116. package/dist/schemas/type-query.js +51 -31
  117. package/dist/schemas/type-query.js.map +1 -1
  118. package/dist/schemas/type-ref.d.ts +8 -8
  119. package/dist/schemas/type-ref.js +138 -101
  120. package/dist/schemas/type-ref.js.map +1 -1
  121. package/dist/schemas/type-union.js +50 -31
  122. package/dist/schemas/type-union.js.map +1 -1
  123. package/dist/schemas/type.js +74 -43
  124. package/dist/schemas/type.js.map +1 -1
  125. package/dist/schemas/unimplemented-schema.js +37 -24
  126. package/dist/schemas/unimplemented-schema.js.map +1 -1
  127. package/dist/schemas/unknown-schema.js +37 -24
  128. package/dist/schemas/unknown-schema.js.map +1 -1
  129. package/dist/schemas/unresolved-schema.js +32 -22
  130. package/dist/schemas/unresolved-schema.js.map +1 -1
  131. package/dist/schemas/variable-like.d.ts +11 -11
  132. package/dist/schemas/variable-like.js +84 -51
  133. package/dist/schemas/variable-like.js.map +1 -1
  134. package/dist/type.js +1 -1
  135. package/dist/type.js.map +1 -1
  136. package/dist/unknown-schema-factory.js +13 -7
  137. package/dist/unknown-schema-factory.js.map +1 -1
  138. package/package.json +4 -4
  139. package/types/asset.d.ts +15 -3
  140. package/dist/preview-1737084088495.js +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"schema-node-constructor.js","sourceRoot":"","sources":["../schema-node-constructor.ts"],"names":[],"mappings":""}
1
+ {"version":3,"names":[],"sources":["schema-node-constructor.ts"],"sourcesContent":["import { SchemaNode } from './schema-node';\n\nexport interface SchemaNodeConstructor {\n new (...args: any[]): SchemaNode;\n readonly prototype: SchemaNode;\n name: string;\n fromObject(obj: Record<string, any>): SchemaNode;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,53 +1,58 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.SchemaNode = void 0;
4
- const lodash_1 = require("lodash");
7
+ function _lodash() {
8
+ const data = require("lodash");
9
+ _lodash = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
5
14
  /**
6
15
  * a convenient abstract class for all schema to extend.
7
16
  * the reason for having it as an abstract class and not an interface, for now, is mostly for the `__schema` prop.
8
17
  * this way it won't need to be implemented in each one of the subclasses.
9
18
  */
10
19
  class SchemaNode {
11
- constructor() {
12
- this.__schema = this.constructor.name;
13
- }
14
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
- static fromObject(obj) {
16
- throw new Error(`Method 'fromObject' not implemented in subclass.`);
17
- }
18
- toObject() {
19
- return (0, lodash_1.pickBy)({
20
- __schema: this.__schema,
21
- location: this.location,
22
- doc: this.doc ? this.doc.toObject() : undefined,
23
- signature: this.signature,
24
- name: this.name,
25
- }, (v) => v !== undefined);
26
- }
27
- getNodes() {
28
- return [this];
29
- }
30
- getAllNodesRecursively(visitedNodes = new Set()) {
31
- if (visitedNodes.has(this)) {
32
- return [];
33
- }
34
- visitedNodes.add(this);
35
- const nodes = this.getNodes();
36
- return [this, ...nodes.flatMap((node) => node.getAllNodesRecursively(visitedNodes))];
20
+ __schema = this.constructor.name;
21
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
22
+ static fromObject(obj) {
23
+ throw new Error(`Method 'fromObject' not implemented in subclass.`);
24
+ }
25
+ toObject() {
26
+ return (0, _lodash().pickBy)({
27
+ __schema: this.__schema,
28
+ location: this.location,
29
+ doc: this.doc ? this.doc.toObject() : undefined,
30
+ signature: this.signature,
31
+ name: this.name
32
+ }, v => v !== undefined);
33
+ }
34
+ getNodes() {
35
+ return [this];
36
+ }
37
+ getAllNodesRecursively(visitedNodes = new Set()) {
38
+ if (visitedNodes.has(this)) {
39
+ return [];
37
40
  }
38
- findNode(predicate, visitedNodes = new Set()) {
39
- if (predicate(this))
40
- return this;
41
- if (visitedNodes.has(this))
42
- return undefined;
43
- visitedNodes.add(this);
44
- for (const child of this.getNodes()) {
45
- const foundNode = child.findNode(predicate, visitedNodes);
46
- if (foundNode)
47
- return foundNode;
48
- }
49
- return undefined;
41
+ visitedNodes.add(this);
42
+ const nodes = this.getNodes();
43
+ return [this, ...nodes.flatMap(node => node.getAllNodesRecursively(visitedNodes))];
44
+ }
45
+ findNode(predicate, visitedNodes = new Set()) {
46
+ if (predicate(this)) return this;
47
+ if (visitedNodes.has(this)) return undefined;
48
+ visitedNodes.add(this);
49
+ for (const child of this.getNodes()) {
50
+ const foundNode = child.findNode(predicate, visitedNodes);
51
+ if (foundNode) return foundNode;
50
52
  }
53
+ return undefined;
54
+ }
51
55
  }
52
56
  exports.SchemaNode = SchemaNode;
57
+
53
58
  //# sourceMappingURL=schema-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-node.js","sourceRoot":"","sources":["../schema-node.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAiBhC;;;;GAIG;AACH,MAAsB,UAAU;IAAhC;QACW,aAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAuD5C,CAAC;IAjDC,6DAA6D;IAC7D,MAAM,CAAC,UAAU,CAAC,GAAwB;QACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ;QACN,OAAO,IAAA,eAAM,EACX;YACE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;YAC/C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CACvB,CAAC;IACJ,CAAC;IAKD,QAAQ;QACN,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,eAAe,IAAI,GAAG,EAAc;QACzD,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,QAAQ,CAAC,SAAwC,EAAE,eAAe,IAAI,GAAG,EAAc;QACrF,IAAI,SAAS,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAE7C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC1D,IAAI,SAAS;gBAAE,OAAO,SAAS,CAAC;QAClC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAxDD,gCAwDC"}
1
+ {"version":3,"names":["_lodash","data","require","SchemaNode","__schema","constructor","name","fromObject","obj","Error","toObject","pickBy","location","doc","undefined","signature","v","getNodes","getAllNodesRecursively","visitedNodes","Set","has","add","nodes","flatMap","node","findNode","predicate","child","foundNode","exports"],"sources":["schema-node.ts"],"sourcesContent":["import { pickBy } from 'lodash';\nimport { DocSchema } from './schemas';\n\nexport interface ISchemaNode {\n __schema: string;\n location: SchemaLocation;\n doc?: DocSchema;\n signature?: string;\n name?: string;\n toObject(): Record<string, any>;\n toString(options?: { color?: boolean }): string;\n toFullSignature(options?: { showDocs?: boolean }): string;\n getNodes(): SchemaNode[];\n findNode(predicate: (node: SchemaNode) => boolean, visitedNodes?: Set<SchemaNode>): SchemaNode | undefined;\n getAllNodesRecursively(visitedNodes?: Set<SchemaNode>): SchemaNode[];\n}\n\n/**\n * a convenient abstract class for all schema to extend.\n * the reason for having it as an abstract class and not an interface, for now, is mostly for the `__schema` prop.\n * this way it won't need to be implemented in each one of the subclasses.\n */\nexport abstract class SchemaNode implements ISchemaNode {\n readonly __schema = this.constructor.name;\n abstract readonly location: SchemaLocation;\n readonly doc?: DocSchema;\n readonly signature?: string;\n readonly name?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static fromObject(obj: Record<string, any>): SchemaNode {\n throw new Error(`Method 'fromObject' not implemented in subclass.`);\n }\n\n toObject(): Record<string, any> {\n return pickBy(\n {\n __schema: this.__schema,\n location: this.location,\n doc: this.doc ? this.doc.toObject() : undefined,\n signature: this.signature,\n name: this.name,\n },\n (v) => v !== undefined\n );\n }\n\n abstract toString(options?: { color?: boolean }): string;\n abstract toFullSignature(options?: { showDocs?: boolean }): string;\n\n getNodes(): SchemaNode[] {\n return [this];\n }\n\n getAllNodesRecursively(visitedNodes = new Set<SchemaNode>()): SchemaNode[] {\n if (visitedNodes.has(this)) {\n return [];\n }\n\n visitedNodes.add(this);\n\n const nodes = this.getNodes();\n return [this, ...nodes.flatMap((node) => node.getAllNodesRecursively(visitedNodes))];\n }\n\n findNode(predicate: (node: SchemaNode) => boolean, visitedNodes = new Set<SchemaNode>()): SchemaNode | undefined {\n if (predicate(this)) return this;\n if (visitedNodes.has(this)) return undefined;\n\n visitedNodes.add(this);\n\n for (const child of this.getNodes()) {\n const foundNode = child.findNode(predicate, visitedNodes);\n if (foundNode) return foundNode;\n }\n\n return undefined;\n }\n}\n\nexport type SchemaLocation = {\n /**\n * file-path relative to the component root-dir. normalized to Linux.\n */\n filePath: string;\n line: number;\n character: number;\n};\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAiBA;AACA;AACA;AACA;AACA;AACO,MAAeE,UAAU,CAAwB;EAC7CC,QAAQ,GAAG,IAAI,CAACC,WAAW,CAACC,IAAI;EAMzC;EACA,OAAOC,UAAUA,CAACC,GAAwB,EAAc;IACtD,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;EACrE;EAEAC,QAAQA,CAAA,EAAwB;IAC9B,OAAO,IAAAC,gBAAM,EACX;MACEP,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBQ,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,GAAG,EAAE,IAAI,CAACA,GAAG,GAAG,IAAI,CAACA,GAAG,CAACH,QAAQ,CAAC,CAAC,GAAGI,SAAS;MAC/CC,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBT,IAAI,EAAE,IAAI,CAACA;IACb,CAAC,EACAU,CAAC,IAAKA,CAAC,KAAKF,SACf,CAAC;EACH;EAKAG,QAAQA,CAAA,EAAiB;IACvB,OAAO,CAAC,IAAI,CAAC;EACf;EAEAC,sBAAsBA,CAACC,YAAY,GAAG,IAAIC,GAAG,CAAa,CAAC,EAAgB;IACzE,IAAID,YAAY,CAACE,GAAG,CAAC,IAAI,CAAC,EAAE;MAC1B,OAAO,EAAE;IACX;IAEAF,YAAY,CAACG,GAAG,CAAC,IAAI,CAAC;IAEtB,MAAMC,KAAK,GAAG,IAAI,CAACN,QAAQ,CAAC,CAAC;IAC7B,OAAO,CAAC,IAAI,EAAE,GAAGM,KAAK,CAACC,OAAO,CAAEC,IAAI,IAAKA,IAAI,CAACP,sBAAsB,CAACC,YAAY,CAAC,CAAC,CAAC;EACtF;EAEAO,QAAQA,CAACC,SAAwC,EAAER,YAAY,GAAG,IAAIC,GAAG,CAAa,CAAC,EAA0B;IAC/G,IAAIO,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;IAChC,IAAIR,YAAY,CAACE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAOP,SAAS;IAE5CK,YAAY,CAACG,GAAG,CAAC,IAAI,CAAC;IAEtB,KAAK,MAAMM,KAAK,IAAI,IAAI,CAACX,QAAQ,CAAC,CAAC,EAAE;MACnC,MAAMY,SAAS,GAAGD,KAAK,CAACF,QAAQ,CAACC,SAAS,EAAER,YAAY,CAAC;MACzD,IAAIU,SAAS,EAAE,OAAOA,SAAS;IACjC;IAEA,OAAOf,SAAS;EAClB;AACF;AAACgB,OAAA,CAAA3B,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -1,31 +1,44 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.SchemaRegistry = void 0;
4
- const unknown_schema_factory_1 = require("./unknown-schema-factory");
7
+ function _unknownSchemaFactory() {
8
+ const data = require("./unknown-schema-factory");
9
+ _unknownSchemaFactory = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
5
14
  class SchemaRegistry {
6
- constructor() {
7
- this._schemas = {};
8
- }
9
- static register(schema) {
10
- if (this.instance._schemas[schema.name])
11
- return;
12
- this.instance._schemas[schema.name] = schema;
13
- }
14
- static schemas() {
15
- return this.instance._schemas;
15
+ static instance = new SchemaRegistry();
16
+ constructor() {
17
+ this._schemas = {};
18
+ }
19
+ static register(schema) {
20
+ if (this.instance._schemas[schema.name]) return;
21
+ this.instance._schemas[schema.name] = schema;
22
+ }
23
+ static schemas() {
24
+ return this.instance._schemas;
25
+ }
26
+ static fromObject(obj) {
27
+ if (!obj.__schema) {
28
+ throw new Error(`fatal: "__schema" is missing, make sure the transformer is set on SchemaNode type`);
16
29
  }
17
- static fromObject(obj) {
18
- if (!obj.__schema) {
19
- throw new Error(`fatal: "__schema" is missing, make sure the transformer is set on SchemaNode type`);
20
- }
21
- const SchemaClass = this.instance._schemas[obj.__schema];
22
- if (!SchemaClass) {
23
- // for backward and forward compatibility, to not break the users, it's better to return an unknown schema than throwing.
24
- return unknown_schema_factory_1.UnknownSchemaFactory.create(obj.location || { path: '', line: 0, character: 0 }, obj.__schema, obj);
25
- }
26
- return SchemaClass.fromObject(obj);
30
+ const SchemaClass = this.instance._schemas[obj.__schema];
31
+ if (!SchemaClass) {
32
+ // for backward and forward compatibility, to not break the users, it's better to return an unknown schema than throwing.
33
+ return _unknownSchemaFactory().UnknownSchemaFactory.create(obj.location || {
34
+ path: '',
35
+ line: 0,
36
+ character: 0
37
+ }, obj.__schema, obj);
27
38
  }
39
+ return SchemaClass.fromObject(obj);
40
+ }
28
41
  }
29
42
  exports.SchemaRegistry = SchemaRegistry;
30
- SchemaRegistry.instance = new SchemaRegistry();
43
+
31
44
  //# sourceMappingURL=schema-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-registry.js","sourceRoot":"","sources":["../schema-registry.ts"],"names":[],"mappings":";;;AACA,qEAAgE;AAEhE,MAAa,cAAc;IAIzB;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAA6B;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAwB;QACxC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,yHAAyH;YACzH,OAAO,6CAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;;AA5BH,wCA6BC;AA5BgB,uBAAQ,GAAG,IAAI,cAAc,EAAE,CAAC"}
1
+ {"version":3,"names":["_unknownSchemaFactory","data","require","SchemaRegistry","instance","constructor","_schemas","register","schema","name","schemas","fromObject","obj","__schema","Error","SchemaClass","UnknownSchemaFactory","create","location","path","line","character","exports"],"sources":["schema-registry.ts"],"sourcesContent":["import { SchemaNodeConstructor } from './schema-node-constructor';\nimport { UnknownSchemaFactory } from './unknown-schema-factory';\n\nexport class SchemaRegistry {\n private static instance = new SchemaRegistry();\n private _schemas: Record<string, SchemaNodeConstructor>;\n\n private constructor() {\n this._schemas = {};\n }\n\n static register(schema: SchemaNodeConstructor) {\n if (this.instance._schemas[schema.name]) return;\n this.instance._schemas[schema.name] = schema;\n }\n\n static schemas() {\n return this.instance._schemas;\n }\n\n static fromObject(obj: Record<string, any>) {\n if (!obj.__schema) {\n throw new Error(`fatal: \"__schema\" is missing, make sure the transformer is set on SchemaNode type`);\n }\n\n const SchemaClass = this.instance._schemas[obj.__schema];\n if (!SchemaClass) {\n // for backward and forward compatibility, to not break the users, it's better to return an unknown schema than throwing.\n return UnknownSchemaFactory.create(obj.location || { path: '', line: 0, character: 0 }, obj.__schema, obj);\n }\n return SchemaClass.fromObject(obj);\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,sBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,qBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,cAAc,CAAC;EAC1B,OAAeC,QAAQ,GAAG,IAAID,cAAc,CAAC,CAAC;EAGtCE,WAAWA,CAAA,EAAG;IACpB,IAAI,CAACC,QAAQ,GAAG,CAAC,CAAC;EACpB;EAEA,OAAOC,QAAQA,CAACC,MAA6B,EAAE;IAC7C,IAAI,IAAI,CAACJ,QAAQ,CAACE,QAAQ,CAACE,MAAM,CAACC,IAAI,CAAC,EAAE;IACzC,IAAI,CAACL,QAAQ,CAACE,QAAQ,CAACE,MAAM,CAACC,IAAI,CAAC,GAAGD,MAAM;EAC9C;EAEA,OAAOE,OAAOA,CAAA,EAAG;IACf,OAAO,IAAI,CAACN,QAAQ,CAACE,QAAQ;EAC/B;EAEA,OAAOK,UAAUA,CAACC,GAAwB,EAAE;IAC1C,IAAI,CAACA,GAAG,CAACC,QAAQ,EAAE;MACjB,MAAM,IAAIC,KAAK,CAAC,mFAAmF,CAAC;IACtG;IAEA,MAAMC,WAAW,GAAG,IAAI,CAACX,QAAQ,CAACE,QAAQ,CAACM,GAAG,CAACC,QAAQ,CAAC;IACxD,IAAI,CAACE,WAAW,EAAE;MAChB;MACA,OAAOC,4CAAoB,CAACC,MAAM,CAACL,GAAG,CAACM,QAAQ,IAAI;QAAEC,IAAI,EAAE,EAAE;QAAEC,IAAI,EAAE,CAAC;QAAEC,SAAS,EAAE;MAAE,CAAC,EAAET,GAAG,CAACC,QAAQ,EAAED,GAAG,CAAC;IAC5G;IACA,OAAOG,WAAW,CAACJ,UAAU,CAACC,GAAG,CAAC;EACpC;AACF;AAACU,OAAA,CAAAnB,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -1,28 +1,48 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
3
6
  exports.ArrayLiteralExpressionSchema = void 0;
4
- const schema_node_1 = require("../schema-node");
5
- const schema_registry_1 = require("../schema-registry");
6
- class ArrayLiteralExpressionSchema extends schema_node_1.SchemaNode {
7
- constructor(members, location) {
8
- super();
9
- this.members = members;
10
- this.location = location;
11
- }
12
- toObject() {
13
- return Object.assign(Object.assign({}, super.toObject()), { members: this.members.map((member) => member.toObject()), location: this.location });
14
- }
15
- static fromObject(obj) {
16
- const members = obj.members.map((member) => schema_registry_1.SchemaRegistry.fromObject(member));
17
- return new ArrayLiteralExpressionSchema(members, obj.location);
18
- }
19
- toString() {
20
- return `[${this.members.join(', ')}]`;
21
- }
22
- toFullSignature(options) {
23
- const membersStr = this.members.map((member) => member.toFullSignature(options)).join(', ');
24
- return `[${membersStr}]`;
25
- }
7
+ function _schemaNode() {
8
+ const data = require("../schema-node");
9
+ _schemaNode = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _schemaRegistry() {
15
+ const data = require("../schema-registry");
16
+ _schemaRegistry = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ class ArrayLiteralExpressionSchema extends _schemaNode().SchemaNode {
22
+ constructor(members, location) {
23
+ super();
24
+ this.members = members;
25
+ this.location = location;
26
+ }
27
+ toObject() {
28
+ return {
29
+ ...super.toObject(),
30
+ members: this.members.map(member => member.toObject()),
31
+ location: this.location
32
+ };
33
+ }
34
+ static fromObject(obj) {
35
+ const members = obj.members.map(member => _schemaRegistry().SchemaRegistry.fromObject(member));
36
+ return new ArrayLiteralExpressionSchema(members, obj.location);
37
+ }
38
+ toString() {
39
+ return `[${this.members.join(', ')}]`;
40
+ }
41
+ toFullSignature(options) {
42
+ const membersStr = this.members.map(member => member.toFullSignature(options)).join(', ');
43
+ return `[${membersStr}]`;
44
+ }
26
45
  }
27
46
  exports.ArrayLiteralExpressionSchema = ArrayLiteralExpressionSchema;
47
+
28
48
  //# sourceMappingURL=array-literal-expression.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array-literal-expression.js","sourceRoot":"","sources":["../../schemas/array-literal-expression.ts"],"names":[],"mappings":";;;AAAA,gDAA4D;AAC5D,wDAAoD;AAEpD,MAAa,4BAA6B,SAAQ,wBAAU;IAC1D,YACW,OAAqB,EACrB,QAAwB;QAEjC,KAAK,EAAE,CAAC;QAHC,YAAO,GAAP,OAAO,CAAc;QACrB,aAAQ,GAAR,QAAQ,CAAgB;IAGnC,CAAC;IAED,QAAQ;QACN,uCACK,KAAK,CAAC,QAAQ,EAAE,KACnB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EACxD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IACvB;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAwB;QACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gCAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,OAAO,IAAI,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACxC,CAAC;IAED,eAAe,CAAC,OAAgC;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5F,OAAO,IAAI,UAAU,GAAG,CAAC;IAC3B,CAAC;CACF;AA7BD,oEA6BC"}
1
+ {"version":3,"names":["_schemaNode","data","require","_schemaRegistry","ArrayLiteralExpressionSchema","SchemaNode","constructor","members","location","toObject","map","member","fromObject","obj","SchemaRegistry","toString","join","toFullSignature","options","membersStr","exports"],"sources":["array-literal-expression.ts"],"sourcesContent":["import { SchemaLocation, SchemaNode } from '../schema-node';\nimport { SchemaRegistry } from '../schema-registry';\n\nexport class ArrayLiteralExpressionSchema extends SchemaNode {\n constructor(\n readonly members: SchemaNode[],\n readonly location: SchemaLocation\n ) {\n super();\n }\n\n toObject() {\n return {\n ...super.toObject(),\n members: this.members.map((member) => member.toObject()),\n location: this.location,\n };\n }\n\n static fromObject(obj: Record<string, any>): ArrayLiteralExpressionSchema {\n const members = obj.members.map((member) => SchemaRegistry.fromObject(member));\n return new ArrayLiteralExpressionSchema(members, obj.location);\n }\n\n toString(): string {\n return `[${this.members.join(', ')}]`;\n }\n\n toFullSignature(options?: { showDocs?: boolean }): string {\n const membersStr = this.members.map((member) => member.toFullSignature(options)).join(', ');\n return `[${membersStr}]`;\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,gBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,eAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,4BAA4B,SAASC,wBAAU,CAAC;EAC3DC,WAAWA,CACAC,OAAqB,EACrBC,QAAwB,EACjC;IACA,KAAK,CAAC,CAAC;IAAC,KAHCD,OAAqB,GAArBA,OAAqB;IAAA,KACrBC,QAAwB,GAAxBA,QAAwB;EAGnC;EAEAC,QAAQA,CAAA,EAAG;IACT,OAAO;MACL,GAAG,KAAK,CAACA,QAAQ,CAAC,CAAC;MACnBF,OAAO,EAAE,IAAI,CAACA,OAAO,CAACG,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACF,QAAQ,CAAC,CAAC,CAAC;MACxDD,QAAQ,EAAE,IAAI,CAACA;IACjB,CAAC;EACH;EAEA,OAAOI,UAAUA,CAACC,GAAwB,EAAgC;IACxE,MAAMN,OAAO,GAAGM,GAAG,CAACN,OAAO,CAACG,GAAG,CAAEC,MAAM,IAAKG,gCAAc,CAACF,UAAU,CAACD,MAAM,CAAC,CAAC;IAC9E,OAAO,IAAIP,4BAA4B,CAACG,OAAO,EAAEM,GAAG,CAACL,QAAQ,CAAC;EAChE;EAEAO,QAAQA,CAAA,EAAW;IACjB,OAAO,IAAI,IAAI,CAACR,OAAO,CAACS,IAAI,CAAC,IAAI,CAAC,GAAG;EACvC;EAEAC,eAAeA,CAACC,OAAgC,EAAU;IACxD,MAAMC,UAAU,GAAG,IAAI,CAACZ,OAAO,CAACG,GAAG,CAAEC,MAAM,IAAKA,MAAM,CAACM,eAAe,CAACC,OAAO,CAAC,CAAC,CAACF,IAAI,CAAC,IAAI,CAAC;IAC3F,OAAO,IAAIG,UAAU,GAAG;EAC1B;AACF;AAACC,OAAA,CAAAhB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -5,13 +5,13 @@ export declare class ClassSchema extends SchemaNode {
5
5
  readonly name: string;
6
6
  readonly location: SchemaLocation;
7
7
  readonly signature: string;
8
- readonly typeParams?: string[];
9
- readonly extendsNodes?: ExpressionWithTypeArgumentsSchema[];
10
- readonly implementNodes?: ExpressionWithTypeArgumentsSchema[];
11
- readonly decorators?: SchemaNode[];
8
+ readonly typeParams?: string[] | undefined;
9
+ readonly extendsNodes?: ExpressionWithTypeArgumentsSchema[] | undefined;
10
+ readonly implementNodes?: ExpressionWithTypeArgumentsSchema[] | undefined;
11
+ readonly decorators?: SchemaNode[] | undefined;
12
12
  readonly members: SchemaNode[];
13
13
  readonly doc?: DocSchema;
14
- constructor(name: string, members: SchemaNode[], location: SchemaLocation, signature: string, doc?: DocSchema, typeParams?: string[], extendsNodes?: ExpressionWithTypeArgumentsSchema[], implementNodes?: ExpressionWithTypeArgumentsSchema[], decorators?: SchemaNode[]);
14
+ constructor(name: string, members: SchemaNode[], location: SchemaLocation, signature: string, doc?: DocSchema, typeParams?: string[] | undefined, extendsNodes?: ExpressionWithTypeArgumentsSchema[] | undefined, implementNodes?: ExpressionWithTypeArgumentsSchema[] | undefined, decorators?: SchemaNode[] | undefined);
15
15
  getNodes(): SchemaNode[];
16
16
  toString(options?: {
17
17
  color?: boolean;
@@ -24,35 +24,35 @@ export declare class ClassSchema extends SchemaNode {
24
24
  members: Record<string, any>[];
25
25
  doc: {
26
26
  __schema: string;
27
- name: string;
27
+ name: string | undefined;
28
28
  location: SchemaLocation;
29
- signature: string;
29
+ signature: string | undefined;
30
30
  raw: string;
31
- comment: string;
31
+ comment: string | undefined;
32
32
  tags: {
33
33
  __schema: string;
34
34
  location: SchemaLocation;
35
- name: string;
36
- signature: string;
35
+ name: string | undefined;
36
+ signature: string | undefined;
37
37
  tagName: string;
38
- comment: string;
39
- }[];
40
- };
38
+ comment: string | undefined;
39
+ }[] | undefined;
40
+ } | undefined;
41
41
  signature: string;
42
- typeParams: string[];
42
+ typeParams: string[] | undefined;
43
43
  extendsNodes: {
44
44
  name: string;
45
45
  location: SchemaLocation;
46
46
  typeArgs: Record<string, any>[];
47
47
  expression: SchemaNode;
48
- }[];
48
+ }[] | undefined;
49
49
  implementNodes: {
50
50
  name: string;
51
51
  location: SchemaLocation;
52
52
  typeArgs: Record<string, any>[];
53
53
  expression: SchemaNode;
54
- }[];
55
- decorators: Record<string, any>[];
54
+ }[] | undefined;
55
+ decorators: Record<string, any>[] | undefined;
56
56
  };
57
57
  static fromObject(obj: Record<string, any>): ClassSchema;
58
58
  static fromSchema(node: ClassSchema, memberTransformer?: (_node: SchemaNode) => SchemaNode): ClassSchema;
@@ -1,93 +1,126 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
6
  exports.ClassSchema = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const schema_node_1 = require("../schema-node");
9
- const docs_1 = require("./docs");
10
- const expression_with_arguments_1 = require("./expression-with-arguments");
11
- const schema_registry_1 = require("../schema-registry");
12
- class ClassSchema extends schema_node_1.SchemaNode {
13
- constructor(name, members, location, signature, doc, typeParams, extendsNodes, implementNodes, decorators) {
14
- super();
15
- this.name = name;
16
- this.location = location;
17
- this.signature = signature;
18
- this.typeParams = typeParams;
19
- this.extendsNodes = extendsNodes;
20
- this.implementNodes = implementNodes;
21
- this.decorators = decorators;
22
- this.members = members;
23
- this.doc = doc;
24
- }
25
- getNodes() {
26
- return this.members;
27
- }
28
- toString(options) {
29
- var _a;
30
- const boldUnderline = (options === null || options === void 0 ? void 0 : options.color) ? chalk_1.default.bold.underline : (str) => str;
31
- const membersStr = this.members.map((m) => `* ${m.toString(options)}`).join('\n');
32
- const decoratorsStr = (_a = this.decorators) === null || _a === void 0 ? void 0 : _a.map((decorator) => decorator.toString(options)).join('\n');
33
- return `${this.decorators ? `${decoratorsStr}\n` : ''}${boldUnderline(this.name)}\n${membersStr}`;
7
+ function _chalk() {
8
+ const data = _interopRequireDefault(require("chalk"));
9
+ _chalk = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ function _schemaNode() {
15
+ const data = require("../schema-node");
16
+ _schemaNode = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
21
+ function _docs() {
22
+ const data = require("./docs");
23
+ _docs = function () {
24
+ return data;
25
+ };
26
+ return data;
27
+ }
28
+ function _expressionWithArguments() {
29
+ const data = require("./expression-with-arguments");
30
+ _expressionWithArguments = function () {
31
+ return data;
32
+ };
33
+ return data;
34
+ }
35
+ function _schemaRegistry() {
36
+ const data = require("../schema-registry");
37
+ _schemaRegistry = function () {
38
+ return data;
39
+ };
40
+ return data;
41
+ }
42
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
43
+ class ClassSchema extends _schemaNode().SchemaNode {
44
+ constructor(name, members, location, signature, doc, typeParams, extendsNodes, implementNodes, decorators) {
45
+ super();
46
+ this.name = name;
47
+ this.location = location;
48
+ this.signature = signature;
49
+ this.typeParams = typeParams;
50
+ this.extendsNodes = extendsNodes;
51
+ this.implementNodes = implementNodes;
52
+ this.decorators = decorators;
53
+ this.members = members;
54
+ this.doc = doc;
55
+ }
56
+ getNodes() {
57
+ return this.members;
58
+ }
59
+ toString(options) {
60
+ const boldUnderline = options?.color ? _chalk().default.bold.underline : str => str;
61
+ const membersStr = this.members.map(m => `* ${m.toString(options)}`).join('\n');
62
+ const decoratorsStr = this.decorators?.map(decorator => decorator.toString(options)).join('\n');
63
+ return `${this.decorators ? `${decoratorsStr}\n` : ''}${boldUnderline(this.name)}\n${membersStr}`;
64
+ }
65
+ toFullSignature(options) {
66
+ let result = '';
67
+ if (options?.showDocs && this.doc) {
68
+ result += `${this.doc.toFullSignature()}\n`;
34
69
  }
35
- toFullSignature(options) {
36
- var _a;
37
- let result = '';
38
- if ((options === null || options === void 0 ? void 0 : options.showDocs) && this.doc) {
39
- result += `${this.doc.toFullSignature()}\n`;
40
- }
41
- const decoratorsStr = (_a = this.decorators) === null || _a === void 0 ? void 0 : _a.map((decorator) => decorator.toFullSignature(options)).join('\n');
42
- if (decoratorsStr) {
43
- result += `${decoratorsStr}\n`;
44
- }
45
- let classDeclaration = `class ${this.name}`;
46
- if (this.typeParams && this.typeParams.length > 0) {
47
- classDeclaration += `<${this.typeParams.join(', ')}>`;
48
- }
49
- if (this.extendsNodes && this.extendsNodes.length > 0) {
50
- const extendsStr = this.extendsNodes.map((node) => node.toFullSignature(options)).join(', ');
51
- classDeclaration += ` extends ${extendsStr}`;
52
- }
53
- if (this.implementNodes && this.implementNodes.length > 0) {
54
- const implementsStr = this.implementNodes.map((node) => node.toFullSignature(options)).join(', ');
55
- classDeclaration += ` implements ${implementsStr}`;
56
- }
57
- result += `${classDeclaration} {\n`;
58
- const membersStr = this.members
59
- .map((member) => {
60
- const memberStr = member.toFullSignature(options);
61
- return memberStr
62
- .split('\n')
63
- .map((line) => ` ${line}`)
64
- .join('\n');
65
- })
66
- .join('\n');
67
- result += `${membersStr}\n`;
68
- result += `}`;
69
- return result;
70
+ const decoratorsStr = this.decorators?.map(decorator => decorator.toFullSignature(options)).join('\n');
71
+ if (decoratorsStr) {
72
+ result += `${decoratorsStr}\n`;
70
73
  }
71
- toObject() {
72
- var _a, _b, _c, _d;
73
- return Object.assign(Object.assign({}, super.toObject()), { name: this.name, members: this.members.map((member) => member.toObject()), doc: (_a = this.doc) === null || _a === void 0 ? void 0 : _a.toObject(), signature: this.signature, typeParams: this.typeParams, extendsNodes: (_b = this.extendsNodes) === null || _b === void 0 ? void 0 : _b.map((node) => node.toObject()), implementNodes: (_c = this.implementNodes) === null || _c === void 0 ? void 0 : _c.map((node) => node.toObject()), decorators: (_d = this.decorators) === null || _d === void 0 ? void 0 : _d.map((decorator) => decorator.toObject()) });
74
+ let classDeclaration = `class ${this.name}`;
75
+ if (this.typeParams && this.typeParams.length > 0) {
76
+ classDeclaration += `<${this.typeParams.join(', ')}>`;
74
77
  }
75
- static fromObject(obj) {
76
- var _a, _b, _c;
77
- const name = obj.name;
78
- const members = obj.members.map((member) => schema_registry_1.SchemaRegistry.fromObject(member));
79
- const location = obj.location;
80
- const signature = obj.signature;
81
- const doc = obj.doc ? docs_1.DocSchema.fromObject(obj.doc) : undefined;
82
- const typeParams = obj.typeParams;
83
- const extendsNodes = (_a = obj.extendsNodes) === null || _a === void 0 ? void 0 : _a.map((node) => expression_with_arguments_1.ExpressionWithTypeArgumentsSchema.fromObject(node));
84
- const implementNodes = (_b = obj.implementNodes) === null || _b === void 0 ? void 0 : _b.map((node) => expression_with_arguments_1.ExpressionWithTypeArgumentsSchema.fromObject(node));
85
- const decorators = (_c = obj.decorators) === null || _c === void 0 ? void 0 : _c.map((decorator) => schema_registry_1.SchemaRegistry.fromObject(decorator));
86
- return new ClassSchema(name, members, location, signature, doc, typeParams, extendsNodes, implementNodes, decorators);
78
+ if (this.extendsNodes && this.extendsNodes.length > 0) {
79
+ const extendsStr = this.extendsNodes.map(node => node.toFullSignature(options)).join(', ');
80
+ classDeclaration += ` extends ${extendsStr}`;
87
81
  }
88
- static fromSchema(node, memberTransformer = (_node) => _node) {
89
- return new ClassSchema(node.name, node.members.map(memberTransformer), node.location, node.signature, node.doc, node.typeParams, node.extendsNodes, node.implementNodes, node.decorators);
82
+ if (this.implementNodes && this.implementNodes.length > 0) {
83
+ const implementsStr = this.implementNodes.map(node => node.toFullSignature(options)).join(', ');
84
+ classDeclaration += ` implements ${implementsStr}`;
90
85
  }
86
+ result += `${classDeclaration} {\n`;
87
+ const membersStr = this.members.map(member => {
88
+ const memberStr = member.toFullSignature(options);
89
+ return memberStr.split('\n').map(line => ` ${line}`).join('\n');
90
+ }).join('\n');
91
+ result += `${membersStr}\n`;
92
+ result += `}`;
93
+ return result;
94
+ }
95
+ toObject() {
96
+ return {
97
+ ...super.toObject(),
98
+ name: this.name,
99
+ members: this.members.map(member => member.toObject()),
100
+ doc: this.doc?.toObject(),
101
+ signature: this.signature,
102
+ typeParams: this.typeParams,
103
+ extendsNodes: this.extendsNodes?.map(node => node.toObject()),
104
+ implementNodes: this.implementNodes?.map(node => node.toObject()),
105
+ decorators: this.decorators?.map(decorator => decorator.toObject())
106
+ };
107
+ }
108
+ static fromObject(obj) {
109
+ const name = obj.name;
110
+ const members = obj.members.map(member => _schemaRegistry().SchemaRegistry.fromObject(member));
111
+ const location = obj.location;
112
+ const signature = obj.signature;
113
+ const doc = obj.doc ? _docs().DocSchema.fromObject(obj.doc) : undefined;
114
+ const typeParams = obj.typeParams;
115
+ const extendsNodes = obj.extendsNodes?.map(node => _expressionWithArguments().ExpressionWithTypeArgumentsSchema.fromObject(node));
116
+ const implementNodes = obj.implementNodes?.map(node => _expressionWithArguments().ExpressionWithTypeArgumentsSchema.fromObject(node));
117
+ const decorators = obj.decorators?.map(decorator => _schemaRegistry().SchemaRegistry.fromObject(decorator));
118
+ return new ClassSchema(name, members, location, signature, doc, typeParams, extendsNodes, implementNodes, decorators);
119
+ }
120
+ static fromSchema(node, memberTransformer = _node => _node) {
121
+ return new ClassSchema(node.name, node.members.map(memberTransformer), node.location, node.signature, node.doc, node.typeParams, node.extendsNodes, node.implementNodes, node.decorators);
122
+ }
91
123
  }
92
124
  exports.ClassSchema = ClassSchema;
125
+
93
126
  //# sourceMappingURL=class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"class.js","sourceRoot":"","sources":["../../schemas/class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_schemaNode","_docs","_expressionWithArguments","_schemaRegistry","e","__esModule","default","ClassSchema","SchemaNode","constructor","name","members","location","signature","doc","typeParams","extendsNodes","implementNodes","decorators","getNodes","toString","options","boldUnderline","color","chalk","bold","underline","str","membersStr","map","m","join","decoratorsStr","decorator","toFullSignature","result","showDocs","classDeclaration","length","extendsStr","node","implementsStr","member","memberStr","split","line","toObject","fromObject","obj","SchemaRegistry","DocSchema","undefined","ExpressionWithTypeArgumentsSchema","fromSchema","memberTransformer","_node","exports"],"sources":["class.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { SchemaLocation, SchemaNode } from '../schema-node';\nimport { DocSchema } from './docs';\nimport { ExpressionWithTypeArgumentsSchema } from './expression-with-arguments';\nimport { SchemaRegistry } from '../schema-registry';\n\nexport class ClassSchema extends SchemaNode {\n readonly members: SchemaNode[];\n readonly doc?: DocSchema;\n\n constructor(\n readonly name: string,\n members: SchemaNode[],\n readonly location: SchemaLocation,\n readonly signature: string,\n doc?: DocSchema,\n readonly typeParams?: string[],\n readonly extendsNodes?: ExpressionWithTypeArgumentsSchema[],\n readonly implementNodes?: ExpressionWithTypeArgumentsSchema[],\n readonly decorators?: SchemaNode[]\n ) {\n super();\n this.members = members;\n this.doc = doc;\n }\n\n getNodes() {\n return this.members;\n }\n\n toString(options?: { color?: boolean }): string {\n const boldUnderline = options?.color ? chalk.bold.underline : (str: string) => str;\n const membersStr = this.members.map((m) => `* ${m.toString(options)}`).join('\\n');\n const decoratorsStr = this.decorators?.map((decorator) => decorator.toString(options)).join('\\n');\n return `${this.decorators ? `${decoratorsStr}\\n` : ''}${boldUnderline(this.name)}\\n${membersStr}`;\n }\n\n toFullSignature(options?: { showDocs?: boolean }): string {\n let result = '';\n\n if (options?.showDocs && this.doc) {\n result += `${this.doc.toFullSignature()}\\n`;\n }\n\n const decoratorsStr = this.decorators?.map((decorator) => decorator.toFullSignature(options)).join('\\n');\n if (decoratorsStr) {\n result += `${decoratorsStr}\\n`;\n }\n\n let classDeclaration = `class ${this.name}`;\n\n if (this.typeParams && this.typeParams.length > 0) {\n classDeclaration += `<${this.typeParams.join(', ')}>`;\n }\n\n if (this.extendsNodes && this.extendsNodes.length > 0) {\n const extendsStr = this.extendsNodes.map((node) => node.toFullSignature(options)).join(', ');\n classDeclaration += ` extends ${extendsStr}`;\n }\n\n if (this.implementNodes && this.implementNodes.length > 0) {\n const implementsStr = this.implementNodes.map((node) => node.toFullSignature(options)).join(', ');\n classDeclaration += ` implements ${implementsStr}`;\n }\n\n result += `${classDeclaration} {\\n`;\n\n const membersStr = this.members\n .map((member) => {\n const memberStr = member.toFullSignature(options);\n return memberStr\n .split('\\n')\n .map((line) => ` ${line}`)\n .join('\\n');\n })\n .join('\\n');\n\n result += `${membersStr}\\n`;\n\n result += `}`;\n\n return result;\n }\n\n toObject() {\n return {\n ...super.toObject(),\n name: this.name,\n members: this.members.map((member) => member.toObject()),\n doc: this.doc?.toObject(),\n signature: this.signature,\n typeParams: this.typeParams,\n extendsNodes: this.extendsNodes?.map((node) => node.toObject()),\n implementNodes: this.implementNodes?.map((node) => node.toObject()),\n decorators: this.decorators?.map((decorator) => decorator.toObject()),\n };\n }\n\n static fromObject(obj: Record<string, any>): ClassSchema {\n const name = obj.name;\n const members = obj.members.map((member: any) => SchemaRegistry.fromObject(member));\n const location = obj.location;\n const signature = obj.signature;\n const doc = obj.doc ? DocSchema.fromObject(obj.doc) : undefined;\n const typeParams = obj.typeParams;\n const extendsNodes = obj.extendsNodes?.map((node: any) => ExpressionWithTypeArgumentsSchema.fromObject(node));\n const implementNodes = obj.implementNodes?.map((node: any) => ExpressionWithTypeArgumentsSchema.fromObject(node));\n const decorators = obj.decorators?.map((decorator: any) => SchemaRegistry.fromObject(decorator));\n return new ClassSchema(\n name,\n members,\n location,\n signature,\n doc,\n typeParams,\n extendsNodes,\n implementNodes,\n decorators\n );\n }\n\n static fromSchema(node: ClassSchema, memberTransformer: (_node: SchemaNode) => SchemaNode = (_node) => _node) {\n return new ClassSchema(\n node.name,\n node.members.map(memberTransformer),\n node.location,\n node.signature,\n node.doc,\n node.typeParams,\n node.extendsNodes,\n node.implementNodes,\n node.decorators\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}