@teambit/semantics.entities.semantic-schema 0.0.10 → 0.0.13

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 (134) hide show
  1. package/api-schema.ts +18 -22
  2. package/dist/api-schema.d.ts +6 -19
  3. package/dist/api-schema.js +22 -12
  4. package/dist/api-schema.js.map +1 -1
  5. package/dist/{schemas/export.d.ts → export.d.ts} +5 -10
  6. package/dist/{schemas/export.js → export.js} +4 -5
  7. package/dist/export.js.map +1 -0
  8. package/dist/index.d.ts +2 -1
  9. package/dist/index.js +7 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/schema-node.d.ts +9 -8
  12. package/dist/schema-node.js +16 -0
  13. package/dist/schema-node.js.map +1 -1
  14. package/dist/schema-obj-to-class.d.ts +10 -0
  15. package/dist/schema-obj-to-class.js +56 -0
  16. package/dist/schema-obj-to-class.js.map +1 -0
  17. package/dist/schemas/class.d.ts +2 -9
  18. package/dist/schemas/class.js +15 -9
  19. package/dist/schemas/class.js.map +1 -1
  20. package/dist/schemas/constructor.d.ts +4 -15
  21. package/dist/schemas/constructor.js +16 -8
  22. package/dist/schemas/constructor.js.map +1 -1
  23. package/dist/schemas/enum.d.ts +8 -0
  24. package/dist/schemas/enum.js +21 -0
  25. package/dist/schemas/enum.js.map +1 -1
  26. package/dist/schemas/function-like.d.ts +10 -18
  27. package/dist/schemas/function-like.js +30 -20
  28. package/dist/schemas/function-like.js.map +1 -1
  29. package/dist/schemas/get-accessor.d.ts +7 -14
  30. package/dist/schemas/get-accessor.js +17 -11
  31. package/dist/schemas/get-accessor.js.map +1 -1
  32. package/dist/schemas/index-signature.d.ts +6 -12
  33. package/dist/schemas/index-signature.js +19 -9
  34. package/dist/schemas/index-signature.js.map +1 -1
  35. package/dist/schemas/index.d.ts +4 -1
  36. package/dist/schemas/index.js +9 -3
  37. package/dist/schemas/index.js.map +1 -1
  38. package/dist/schemas/indexed-access-type.d.ts +8 -0
  39. package/dist/schemas/indexed-access-type.js +31 -0
  40. package/dist/schemas/indexed-access-type.js.map +1 -0
  41. package/dist/schemas/inference-type.d.ts +6 -8
  42. package/dist/schemas/inference-type.js +9 -8
  43. package/dist/schemas/inference-type.js.map +1 -1
  44. package/dist/schemas/interface.d.ts +6 -12
  45. package/dist/schemas/interface.js +16 -9
  46. package/dist/schemas/interface.js.map +1 -1
  47. package/dist/schemas/keyword-type.d.ts +4 -7
  48. package/dist/schemas/keyword-type.js +5 -8
  49. package/dist/schemas/keyword-type.js.map +1 -1
  50. package/dist/schemas/literal-type.d.ts +5 -4
  51. package/dist/schemas/literal-type.js +5 -2
  52. package/dist/schemas/literal-type.js.map +1 -1
  53. package/dist/schemas/module.d.ts +5 -8
  54. package/dist/schemas/module.js +16 -6
  55. package/dist/schemas/module.js.map +1 -1
  56. package/dist/schemas/parameter.d.ts +5 -13
  57. package/dist/schemas/parameter.js +17 -12
  58. package/dist/schemas/parameter.js.map +1 -1
  59. package/dist/schemas/parenthesized-type.d.ts +11 -0
  60. package/dist/schemas/parenthesized-type.js +31 -0
  61. package/dist/schemas/parenthesized-type.js.map +1 -0
  62. package/dist/schemas/set-accessor.d.ts +7 -12
  63. package/dist/schemas/set-accessor.js +17 -11
  64. package/dist/schemas/set-accessor.js.map +1 -1
  65. package/dist/schemas/tuple-type.d.ts +5 -10
  66. package/dist/schemas/tuple-type.js +16 -8
  67. package/dist/schemas/tuple-type.js.map +1 -1
  68. package/dist/schemas/type-array.d.ts +5 -10
  69. package/dist/schemas/type-array.js +16 -8
  70. package/dist/schemas/type-array.js.map +1 -1
  71. package/dist/schemas/type-intersection.d.ts +5 -10
  72. package/dist/schemas/type-intersection.js +16 -8
  73. package/dist/schemas/type-intersection.js.map +1 -1
  74. package/dist/schemas/type-literal.d.ts +5 -10
  75. package/dist/schemas/type-literal.js +16 -8
  76. package/dist/schemas/type-literal.js.map +1 -1
  77. package/dist/schemas/type-operator.d.ts +6 -12
  78. package/dist/schemas/type-operator.js +16 -9
  79. package/dist/schemas/type-operator.js.map +1 -1
  80. package/dist/schemas/type-predicate.d.ts +22 -0
  81. package/dist/schemas/type-predicate.js +44 -0
  82. package/dist/schemas/type-predicate.js.map +1 -0
  83. package/dist/schemas/type-query.d.ts +6 -10
  84. package/dist/schemas/type-query.js +17 -10
  85. package/dist/schemas/type-query.js.map +1 -1
  86. package/dist/schemas/type-ref.d.ts +15 -10
  87. package/dist/schemas/type-ref.js +34 -16
  88. package/dist/schemas/type-ref.js.map +1 -1
  89. package/dist/schemas/type-union.d.ts +5 -10
  90. package/dist/schemas/type-union.js +16 -8
  91. package/dist/schemas/type-union.js.map +1 -1
  92. package/dist/schemas/type.d.ts +7 -14
  93. package/dist/schemas/type.js +17 -11
  94. package/dist/schemas/type.js.map +1 -1
  95. package/dist/schemas/variable.d.ts +9 -14
  96. package/dist/schemas/variable.js +19 -13
  97. package/dist/schemas/variable.js.map +1 -1
  98. package/{schemas/export.ts → export.ts} +5 -8
  99. package/index.ts +5 -2
  100. package/package-tar/teambit-semantics.entities.semantic-schema-0.0.13.tgz +0 -0
  101. package/package.json +6 -3
  102. package/{preview-1652757984397.js → preview-1653449228788.js} +1 -1
  103. package/schema-node.ts +13 -6
  104. package/schema-obj-to-class.ts +36 -0
  105. package/schemas/class.ts +8 -9
  106. package/schemas/constructor.ts +10 -10
  107. package/schemas/enum.ts +13 -0
  108. package/schemas/function-like.ts +36 -23
  109. package/schemas/get-accessor.ts +10 -12
  110. package/schemas/index-signature.ts +13 -9
  111. package/schemas/index.ts +4 -1
  112. package/schemas/indexed-access-type.ts +18 -0
  113. package/schemas/inference-type.ts +7 -9
  114. package/schemas/interface.ts +10 -9
  115. package/schemas/keyword-type.ts +4 -9
  116. package/schemas/literal-type.ts +5 -3
  117. package/schemas/module.ts +9 -7
  118. package/schemas/parameter.ts +12 -13
  119. package/schemas/parenthesized-type.ts +20 -0
  120. package/schemas/set-accessor.ts +10 -12
  121. package/schemas/tuple-type.ts +10 -8
  122. package/schemas/type-array.ts +10 -8
  123. package/schemas/type-intersection.ts +10 -8
  124. package/schemas/type-literal.ts +10 -8
  125. package/schemas/type-operator.ts +10 -9
  126. package/schemas/type-predicate.ts +36 -0
  127. package/schemas/type-query.ts +10 -11
  128. package/schemas/type-ref.ts +39 -20
  129. package/schemas/type-union.ts +9 -8
  130. package/schemas/type.ts +10 -10
  131. package/schemas/variable.ts +12 -14
  132. package/tsconfig.json +1 -0
  133. package/dist/schemas/export.js.map +0 -1
  134. package/package-tar/teambit-semantics.entities.semantic-schema-0.0.10.tgz +0 -0
package/api-schema.ts CHANGED
@@ -1,21 +1,25 @@
1
+ import { Transform, plainToInstance } from 'class-transformer';
1
2
  import chalk from 'chalk';
2
3
  import {
3
4
  ClassSchema,
4
- Export,
5
+ EnumSchema,
5
6
  FunctionLikeSchema,
6
7
  InterfaceSchema,
7
8
  Module,
8
9
  TypeSchema,
9
10
  VariableSchema,
10
11
  } from './schemas';
11
- import { SchemaNode } from './schema-node';
12
+ import { Location, SchemaNode } from './schema-node';
13
+ import { schemaObjToInstance } from './schema-obj-to-class';
12
14
 
13
- export type PlainSemanticSchema = {
14
- exports?: Export[];
15
- };
15
+ export class APISchema extends SchemaNode {
16
+ @Transform(schemaObjToInstance)
17
+ readonly module: Module;
16
18
 
17
- export class APISchema implements SchemaNode {
18
- constructor(readonly module: Module) {}
19
+ constructor(readonly location: Location, module: Module) {
20
+ super();
21
+ this.module = module;
22
+ }
19
23
 
20
24
  toString() {
21
25
  return JSON.stringify(
@@ -25,20 +29,13 @@ export class APISchema implements SchemaNode {
25
29
  );
26
30
  }
27
31
 
28
- toObject() {
29
- return {
30
- constructorName: this.constructor.name,
31
- module: this.module.toObject(),
32
- filename: '',
33
- };
34
- }
35
-
36
32
  toStringPerType() {
37
33
  const getSection = (ClassObj, sectionName: string) => {
38
34
  const objects = this.module.exports.filter((exp) => exp instanceof ClassObj);
39
35
  if (!objects.length) {
40
36
  return '';
41
37
  }
38
+
42
39
  return `${chalk.green.bold(sectionName)}\n${objects.map((c) => c.toString()).join('\n')}\n\n`;
43
40
  };
44
41
 
@@ -48,17 +45,16 @@ export class APISchema implements SchemaNode {
48
45
  getSection(InterfaceSchema, 'Interfaces') +
49
46
  getSection(FunctionLikeSchema, 'Functions') +
50
47
  getSection(VariableSchema, 'Variables') +
51
- getSection(TypeSchema, 'Types')
48
+ getSection(TypeSchema, 'Types') +
49
+ getSection(EnumSchema, 'Enums')
52
50
  );
53
51
  }
54
52
 
55
53
  listSignatures() {
56
- return this.module.exports.map((exp) => exp.getSignature?.());
54
+ return this.module.exports.map((exp) => exp.signature);
57
55
  }
58
56
 
59
- static fromSchema() {}
60
-
61
- // static from(plainSchema: PlainSemanticSchema) {
62
- // return new APISchema(plainSchema.exports);
63
- // }
57
+ static fromObject(obj: Record<string, any>): APISchema {
58
+ return plainToInstance(APISchema, obj);
59
+ }
64
60
  }
@@ -1,24 +1,11 @@
1
- import { Export, Module } from './schemas';
2
- import { SchemaNode } from './schema-node';
3
- export declare type PlainSemanticSchema = {
4
- exports?: Export[];
5
- };
6
- export declare class APISchema implements SchemaNode {
1
+ import { Module } from './schemas';
2
+ import { Location, SchemaNode } from './schema-node';
3
+ export declare class APISchema extends SchemaNode {
4
+ readonly location: Location;
7
5
  readonly module: Module;
8
- constructor(module: Module);
6
+ constructor(location: Location, module: Module);
9
7
  toString(): string;
10
- toObject(): {
11
- constructorName: string;
12
- module: {
13
- constructorName: string;
14
- namespace: string;
15
- exports: (Record<string, any> & {
16
- constructorName: string;
17
- })[];
18
- };
19
- filename: string;
20
- };
21
8
  toStringPerType(): string;
22
9
  listSignatures(): string[];
23
- static fromSchema(): void;
10
+ static fromObject(obj: Record<string, any>): APISchema;
24
11
  }
@@ -1,25 +1,29 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  exports.APISchema = void 0;
13
+ const class_transformer_1 = require("class-transformer");
7
14
  const chalk_1 = __importDefault(require("chalk"));
8
15
  const schemas_1 = require("./schemas");
9
- class APISchema {
10
- constructor(module) {
16
+ const schema_node_1 = require("./schema-node");
17
+ const schema_obj_to_class_1 = require("./schema-obj-to-class");
18
+ class APISchema extends schema_node_1.SchemaNode {
19
+ constructor(location, module) {
20
+ super();
21
+ this.location = location;
11
22
  this.module = module;
12
23
  }
13
24
  toString() {
14
25
  return JSON.stringify(this.module.exports.map((exp) => exp.toObject()), undefined, 2);
15
26
  }
16
- toObject() {
17
- return {
18
- constructorName: this.constructor.name,
19
- module: this.module.toObject(),
20
- filename: '',
21
- };
22
- }
23
27
  toStringPerType() {
24
28
  const getSection = (ClassObj, sectionName) => {
25
29
  const objects = this.module.exports.filter((exp) => exp instanceof ClassObj);
@@ -33,12 +37,18 @@ class APISchema {
33
37
  getSection(schemas_1.InterfaceSchema, 'Interfaces') +
34
38
  getSection(schemas_1.FunctionLikeSchema, 'Functions') +
35
39
  getSection(schemas_1.VariableSchema, 'Variables') +
36
- getSection(schemas_1.TypeSchema, 'Types'));
40
+ getSection(schemas_1.TypeSchema, 'Types') +
41
+ getSection(schemas_1.EnumSchema, 'Enums'));
37
42
  }
38
43
  listSignatures() {
39
- return this.module.exports.map((exp) => { var _a; return (_a = exp.getSignature) === null || _a === void 0 ? void 0 : _a.call(exp); });
44
+ return this.module.exports.map((exp) => exp.signature);
45
+ }
46
+ static fromObject(obj) {
47
+ return (0, class_transformer_1.plainToInstance)(APISchema, obj);
40
48
  }
41
- static fromSchema() { }
42
49
  }
50
+ __decorate([
51
+ (0, class_transformer_1.Transform)(schema_obj_to_class_1.schemaObjToInstance)
52
+ ], APISchema.prototype, "module", void 0);
43
53
  exports.APISchema = APISchema;
44
54
  //# sourceMappingURL=api-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-schema.js","sourceRoot":"","sources":["../api-schema.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,uCAQmB;AAOnB,MAAa,SAAS;IACpB,YAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEvC,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAChD,SAAS,EACT,CAAC,CACF,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9B,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,eAAe;QACb,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,WAAmB,EAAE,EAAE;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,YAAY,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACnB,OAAO,EAAE,CAAC;aACX;YACD,OAAO,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChG,CAAC,CAAC;QAEF,OAAO,CACL,UAAU,CAAC,gBAAM,EAAE,YAAY,CAAC;YAChC,UAAU,CAAC,qBAAW,EAAE,SAAS,CAAC;YAClC,UAAU,CAAC,yBAAe,EAAE,YAAY,CAAC;YACzC,UAAU,CAAC,4BAAkB,EAAE,WAAW,CAAC;YAC3C,UAAU,CAAC,wBAAc,EAAE,WAAW,CAAC;YACvC,UAAU,CAAC,oBAAU,EAAE,OAAO,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,MAAA,GAAG,CAAC,YAAY,+CAAhB,GAAG,CAAiB,CAAA,EAAA,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,UAAU,KAAI,CAAC;CAKvB;AA/CD,8BA+CC"}
1
+ {"version":3,"file":"api-schema.js","sourceRoot":"","sources":["../api-schema.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA+D;AAC/D,kDAA0B;AAC1B,uCAQmB;AACnB,+CAAqD;AACrD,+DAA4D;AAE5D,MAAa,SAAU,SAAQ,wBAAU;IAIvC,YAAqB,QAAkB,EAAE,MAAc;QACrD,KAAK,EAAE,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAU;QAErC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAChD,SAAS,EACT,CAAC,CACF,CAAC;IACJ,CAAC;IAED,eAAe;QACb,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,WAAmB,EAAE,EAAE;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,YAAY,QAAQ,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACnB,OAAO,EAAE,CAAC;aACX;YAED,OAAO,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChG,CAAC,CAAC;QAEF,OAAO,CACL,UAAU,CAAC,gBAAM,EAAE,YAAY,CAAC;YAChC,UAAU,CAAC,qBAAW,EAAE,SAAS,CAAC;YAClC,UAAU,CAAC,yBAAe,EAAE,YAAY,CAAC;YACzC,UAAU,CAAC,4BAAkB,EAAE,WAAW,CAAC;YAC3C,UAAU,CAAC,wBAAc,EAAE,WAAW,CAAC;YACvC,UAAU,CAAC,oBAAU,EAAE,OAAO,CAAC;YAC/B,UAAU,CAAC,oBAAU,EAAE,OAAO,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAwB;QACxC,OAAO,IAAA,mCAAe,EAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AA3CC;IADC,IAAA,6BAAS,EAAC,yCAAmB,CAAC;yCACP;AAF1B,8BA6CC"}
@@ -1,15 +1,14 @@
1
- import { SchemaNode } from '../schema-node';
2
1
  declare type Primitive = string | number | boolean | null | undefined;
3
2
  export declare type StaticProperties = Map<string, Primitive>;
4
- export declare class Export implements SchemaNode {
3
+ /**
4
+ * @todo: this was implemented before all other schemas and is used only for composition.
5
+ * it needs to be align with other schemas.
6
+ */
7
+ export declare class Export {
5
8
  /**
6
9
  * named export identifier of the module export.
7
10
  */
8
11
  readonly identifier: string;
9
- /**
10
- * API node.
11
- */
12
- readonly nodes?: SchemaNode[];
13
12
  /**
14
13
  * static properties attached to this export
15
14
  * @example
@@ -23,10 +22,6 @@ export declare class Export implements SchemaNode {
23
22
  * named export identifier of the module export.
24
23
  */
25
24
  identifier: string,
26
- /**
27
- * API node.
28
- */
29
- nodes?: SchemaNode[],
30
25
  /**
31
26
  * static properties attached to this export
32
27
  * @example
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Export = void 0;
4
+ /**
5
+ * @todo: this was implemented before all other schemas and is used only for composition.
6
+ * it needs to be align with other schemas.
7
+ */
4
8
  class Export {
5
9
  constructor(
6
10
  /**
7
11
  * named export identifier of the module export.
8
12
  */
9
13
  identifier,
10
- /**
11
- * API node.
12
- */
13
- nodes,
14
14
  /**
15
15
  * static properties attached to this export
16
16
  * @example
@@ -20,7 +20,6 @@ class Export {
20
20
  */
21
21
  staticProperties) {
22
22
  this.identifier = identifier;
23
- this.nodes = nodes;
24
23
  this.staticProperties = staticProperties;
25
24
  }
26
25
  toObject() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../export.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAa,MAAM;IACjB;IACE;;OAEG;IACM,UAAkB;IAE3B;;;;;;OAMG;IACM,gBAAmC;QATnC,eAAU,GAAV,UAAU,CAAQ;QASlB,qBAAgB,GAAhB,gBAAgB,CAAmB;IAC3C,CAAC;IAEJ,QAAQ;QACN,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YACtC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;CACF;AAvBD,wBAuBC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { APISchema } from './api-schema';
2
+ export { Export, StaticProperties } from './export';
2
3
  export type { SchemaNode, Location } from './schema-node';
3
- export { Export, Module, StaticProperties, FunctionLikeSchema, Modifier, TypeRefSchema, VariableSchema, ClassSchema, ConstructorSchema, TypeSchema, TypeIntersectionSchema, TypeUnionSchema, TypeLiteralSchema, IndexSignatureSchema, InterfaceSchema, GetAccessorSchema, SetAccessorSchema, TypeQuerySchema, InferenceTypeSchema, LiteralTypeSchema, KeywordTypeSchema, TypeArraySchema, TypeOperatorSchema, TupleTypeSchema, ParameterSchema, } from './schemas';
4
+ export { Module, FunctionLikeSchema, Modifier, TypeRefSchema, VariableSchema, ClassSchema, ConstructorSchema, TypeSchema, TypeIntersectionSchema, TypeUnionSchema, TypeLiteralSchema, IndexSignatureSchema, InterfaceSchema, GetAccessorSchema, SetAccessorSchema, TypeQuerySchema, InferenceTypeSchema, LiteralTypeSchema, KeywordTypeSchema, TypeArraySchema, TypeOperatorSchema, TupleTypeSchema, ParameterSchema, EnumSchema, ParenthesizedTypeSchema, TypePredicateSchema, IndexedAccessSchema, } from './schemas';
4
5
  export type { JSONSchema, JSONSchemaObject } from './json-schema';
package/dist/index.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParameterSchema = exports.TupleTypeSchema = exports.TypeOperatorSchema = exports.TypeArraySchema = exports.KeywordTypeSchema = exports.LiteralTypeSchema = exports.InferenceTypeSchema = exports.TypeQuerySchema = exports.SetAccessorSchema = exports.GetAccessorSchema = exports.InterfaceSchema = exports.IndexSignatureSchema = exports.TypeLiteralSchema = exports.TypeUnionSchema = exports.TypeIntersectionSchema = exports.TypeSchema = exports.ConstructorSchema = exports.ClassSchema = exports.VariableSchema = exports.TypeRefSchema = exports.FunctionLikeSchema = exports.Module = exports.Export = exports.APISchema = void 0;
3
+ exports.IndexedAccessSchema = exports.TypePredicateSchema = exports.ParenthesizedTypeSchema = exports.EnumSchema = exports.ParameterSchema = exports.TupleTypeSchema = exports.TypeOperatorSchema = exports.TypeArraySchema = exports.KeywordTypeSchema = exports.LiteralTypeSchema = exports.InferenceTypeSchema = exports.TypeQuerySchema = exports.SetAccessorSchema = exports.GetAccessorSchema = exports.InterfaceSchema = exports.IndexSignatureSchema = exports.TypeLiteralSchema = exports.TypeUnionSchema = exports.TypeIntersectionSchema = exports.TypeSchema = exports.ConstructorSchema = exports.ClassSchema = exports.VariableSchema = exports.TypeRefSchema = exports.FunctionLikeSchema = exports.Module = exports.Export = exports.APISchema = void 0;
4
4
  var api_schema_1 = require("./api-schema");
5
5
  Object.defineProperty(exports, "APISchema", { enumerable: true, get: function () { return api_schema_1.APISchema; } });
6
+ var export_1 = require("./export");
7
+ Object.defineProperty(exports, "Export", { enumerable: true, get: function () { return export_1.Export; } });
6
8
  var schemas_1 = require("./schemas");
7
- Object.defineProperty(exports, "Export", { enumerable: true, get: function () { return schemas_1.Export; } });
8
9
  Object.defineProperty(exports, "Module", { enumerable: true, get: function () { return schemas_1.Module; } });
9
10
  Object.defineProperty(exports, "FunctionLikeSchema", { enumerable: true, get: function () { return schemas_1.FunctionLikeSchema; } });
10
11
  Object.defineProperty(exports, "TypeRefSchema", { enumerable: true, get: function () { return schemas_1.TypeRefSchema; } });
@@ -27,4 +28,8 @@ Object.defineProperty(exports, "TypeArraySchema", { enumerable: true, get: funct
27
28
  Object.defineProperty(exports, "TypeOperatorSchema", { enumerable: true, get: function () { return schemas_1.TypeOperatorSchema; } });
28
29
  Object.defineProperty(exports, "TupleTypeSchema", { enumerable: true, get: function () { return schemas_1.TupleTypeSchema; } });
29
30
  Object.defineProperty(exports, "ParameterSchema", { enumerable: true, get: function () { return schemas_1.ParameterSchema; } });
31
+ Object.defineProperty(exports, "EnumSchema", { enumerable: true, get: function () { return schemas_1.EnumSchema; } });
32
+ Object.defineProperty(exports, "ParenthesizedTypeSchema", { enumerable: true, get: function () { return schemas_1.ParenthesizedTypeSchema; } });
33
+ Object.defineProperty(exports, "TypePredicateSchema", { enumerable: true, get: function () { return schemas_1.TypePredicateSchema; } });
34
+ Object.defineProperty(exports, "IndexedAccessSchema", { enumerable: true, get: function () { return schemas_1.IndexedAccessSchema; } });
30
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB,qCA0BmB;AAzBjB,iGAAA,MAAM,OAAA;AACN,iGAAA,MAAM,OAAA;AAEN,6GAAA,kBAAkB,OAAA;AAElB,wGAAA,aAAa,OAAA;AACb,yGAAA,cAAc,OAAA;AACd,sGAAA,WAAW,OAAA;AACX,4GAAA,iBAAiB,OAAA;AACjB,qGAAA,UAAU,OAAA;AACV,iHAAA,sBAAsB,OAAA;AACtB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,+GAAA,oBAAoB,OAAA;AACpB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AACjB,0GAAA,eAAe,OAAA;AACf,8GAAA,mBAAmB,OAAA;AACnB,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AACjB,0GAAA,eAAe,OAAA;AACf,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,0GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,mCAAoD;AAA3C,gGAAA,MAAM,OAAA;AAEf,qCA4BmB;AA3BjB,iGAAA,MAAM,OAAA;AACN,6GAAA,kBAAkB,OAAA;AAElB,wGAAA,aAAa,OAAA;AACb,yGAAA,cAAc,OAAA;AACd,sGAAA,WAAW,OAAA;AACX,4GAAA,iBAAiB,OAAA;AACjB,qGAAA,UAAU,OAAA;AACV,iHAAA,sBAAsB,OAAA;AACtB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,+GAAA,oBAAoB,OAAA;AACpB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AACjB,0GAAA,eAAe,OAAA;AACf,8GAAA,mBAAmB,OAAA;AACnB,4GAAA,iBAAiB,OAAA;AACjB,4GAAA,iBAAiB,OAAA;AACjB,0GAAA,eAAe,OAAA;AACf,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,0GAAA,eAAe,OAAA;AACf,qGAAA,UAAU,OAAA;AACV,kHAAA,uBAAuB,OAAA;AACvB,8GAAA,mBAAmB,OAAA;AACnB,8GAAA,mBAAmB,OAAA"}
@@ -1,13 +1,14 @@
1
1
  /**
2
- * an interface for implementing a new schema node.
2
+ * a convenient abstract class for all schema to extend.
3
+ * the reason for having it as an abstract class and not an interface, for now, is mostly for the `__schema` prop.
4
+ * this way it won't need to be implemented in each one of the subclasses.
3
5
  */
4
- export interface SchemaNode {
5
- readonly location?: Location;
6
- getSignature?(): string;
7
- toString(): string;
8
- toObject(): Record<string, any> & {
9
- constructorName: string;
10
- };
6
+ export declare abstract class SchemaNode {
7
+ readonly __schema: string;
8
+ abstract readonly location: Location;
9
+ readonly signature?: string;
10
+ abstract toString(): string;
11
+ toObject(): Record<string, any>;
11
12
  }
12
13
  export declare type Location = {
13
14
  file: string;
@@ -1,3 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemaNode = void 0;
4
+ const class_transformer_1 = require("class-transformer");
5
+ /**
6
+ * a convenient abstract class for all schema to extend.
7
+ * the reason for having it as an abstract class and not an interface, for now, is mostly for the `__schema` prop.
8
+ * this way it won't need to be implemented in each one of the subclasses.
9
+ */
10
+ class SchemaNode {
11
+ constructor() {
12
+ this.__schema = this.constructor.name;
13
+ }
14
+ toObject() {
15
+ return (0, class_transformer_1.instanceToPlain)(this);
16
+ }
17
+ }
18
+ exports.SchemaNode = SchemaNode;
3
19
  //# sourceMappingURL=schema-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-node.js","sourceRoot":"","sources":["../schema-node.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"schema-node.js","sourceRoot":"","sources":["../schema-node.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD;;;;GAIG;AACH,MAAsB,UAAU;IAAhC;QACW,aAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAS5C,CAAC;IAHC,QAAQ;QACN,OAAO,IAAA,mCAAe,EAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF;AAVD,gCAUC"}
@@ -0,0 +1,10 @@
1
+ import { TransformationType } from 'class-transformer';
2
+ import { SchemaNode } from './schema-node';
3
+ export declare function schemaObjArrayToInstances({ value, type }: {
4
+ value: SchemaNode[];
5
+ type: TransformationType;
6
+ }): SchemaNode[];
7
+ export declare function schemaObjToInstance({ value, type }: {
8
+ value: Record<string, any>;
9
+ type: TransformationType;
10
+ }): Record<string, any>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.schemaObjToInstance = exports.schemaObjArrayToInstances = void 0;
23
+ const class_transformer_1 = require("class-transformer");
24
+ const lodash_1 = require("lodash");
25
+ const Schemas = __importStar(require("./schemas"));
26
+ function schemaObjArrayToInstances({ value, type }) {
27
+ if (type !== class_transformer_1.TransformationType.PLAIN_TO_CLASS) {
28
+ return value;
29
+ }
30
+ return value.map((obj) => transformFromObjectToInstance(obj));
31
+ }
32
+ exports.schemaObjArrayToInstances = schemaObjArrayToInstances;
33
+ function schemaObjToInstance({ value, type }) {
34
+ if (type !== class_transformer_1.TransformationType.PLAIN_TO_CLASS) {
35
+ return value;
36
+ }
37
+ return transformFromObjectToInstance(value);
38
+ }
39
+ exports.schemaObjToInstance = schemaObjToInstance;
40
+ function transformFromObjectToInstance(obj) {
41
+ if (!obj.__schema) {
42
+ throw new Error(`fatal: "__schema" is missing, make sure the transformer is set on SchemaNode type`);
43
+ }
44
+ const SchemaClass = getClassBySchemaName(obj.__schema);
45
+ return (0, class_transformer_1.plainToInstance)(SchemaClass, obj);
46
+ }
47
+ function getClassBySchemaName(schemaName) {
48
+ const schemasClasses = (0, lodash_1.compact)(Object.values(Schemas));
49
+ const schemaClass = schemasClasses.find((schema) => schema.name === schemaName);
50
+ if (!schemaClass) {
51
+ throw new Error(`unable to find schema "${schemaName}". the following schemas are supported:
52
+ ${schemasClasses.map((s) => s.name).join(', ')}`);
53
+ }
54
+ return schemaClass;
55
+ }
56
+ //# sourceMappingURL=schema-obj-to-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-obj-to-class.js","sourceRoot":"","sources":["../schema-obj-to-class.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA0F;AAC1F,mCAAiC;AAEjC,mDAAqC;AAErC,SAAgB,yBAAyB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAqD;IAC1G,IAAI,IAAI,KAAK,sCAAkB,CAAC,cAAc,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AALD,8DAKC;AAED,SAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,IAAI,EAA4D;IAC3G,IAAI,IAAI,KAAK,sCAAkB,CAAC,cAAc,EAAE;QAC9C,OAAO,KAAK,CAAC;KACd;IACD,OAAO,6BAA6B,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AALD,kDAKC;AAED,SAAS,6BAA6B,CAAC,GAAwB;IAC7D,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;KACtG;IACD,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,IAAA,mCAAe,EAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,MAAM,cAAc,GAAG,IAAA,gBAAO,EAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAChF,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU;EACtD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC/C;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -1,15 +1,8 @@
1
1
  import { Location, SchemaNode } from '../schema-node';
2
- export declare class ClassSchema implements SchemaNode {
2
+ export declare class ClassSchema extends SchemaNode {
3
3
  readonly className: string;
4
- readonly members: SchemaNode[];
5
4
  readonly location: Location;
5
+ readonly members: SchemaNode[];
6
6
  constructor(className: string, members: SchemaNode[], location: Location);
7
- toObject(): {
8
- constructorName: string;
9
- name: string;
10
- members: (Record<string, any> & {
11
- constructorName: string;
12
- })[];
13
- };
14
7
  toString(): string;
15
8
  }
@@ -1,27 +1,33 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  exports.ClassSchema = void 0;
13
+ const class_transformer_1 = require("class-transformer");
7
14
  const chalk_1 = __importDefault(require("chalk"));
8
- class ClassSchema {
15
+ const schema_node_1 = require("../schema-node");
16
+ const schema_obj_to_class_1 = require("../schema-obj-to-class");
17
+ class ClassSchema extends schema_node_1.SchemaNode {
9
18
  constructor(className, members, location) {
19
+ super();
10
20
  this.className = className;
11
- this.members = members;
12
21
  this.location = location;
13
- }
14
- toObject() {
15
- return {
16
- constructorName: this.constructor.name,
17
- name: this.className,
18
- members: this.members.map((member) => member.toObject()),
19
- };
22
+ this.members = members;
20
23
  }
21
24
  toString() {
22
25
  const membersStr = this.members.map((m) => `* ${m.toString()}`).join('\n');
23
26
  return `${chalk_1.default.bold.underline(this.className)}\n${membersStr}`;
24
27
  }
25
28
  }
29
+ __decorate([
30
+ (0, class_transformer_1.Transform)(schema_obj_to_class_1.schemaObjArrayToInstances)
31
+ ], ClassSchema.prototype, "members", void 0);
26
32
  exports.ClassSchema = ClassSchema;
27
33
  //# sourceMappingURL=class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"class.js","sourceRoot":"","sources":["../../schemas/class.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,MAAa,WAAW;IACtB,YAAqB,SAAiB,EAAW,OAAqB,EAAW,QAAkB;QAA9E,cAAS,GAAT,SAAS,CAAQ;QAAW,YAAO,GAAP,OAAO,CAAc;QAAW,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEvG,QAAQ;QACN,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YACtC,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,OAAO,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;IAClE,CAAC;CACF;AAfD,kCAeC"}
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../schemas/class.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA8C;AAC9C,kDAA0B;AAC1B,gDAAsD;AACtD,gEAAmE;AAEnE,MAAa,WAAY,SAAQ,wBAAU;IAGzC,YAAqB,SAAiB,EAAE,OAAqB,EAAW,QAAkB;QACxF,KAAK,EAAE,CAAC;QADW,cAAS,GAAT,SAAS,CAAQ;QAAkC,aAAQ,GAAR,QAAQ,CAAU;QAExF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,OAAO,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE,CAAC;IAClE,CAAC;CACF;AAVC;IADC,IAAA,6BAAS,EAAC,+CAAyB,CAAC;4CACN;AAFjC,kCAYC"}
@@ -1,19 +1,8 @@
1
- import { SchemaNode } from '../schema-node';
1
+ import { Location, SchemaNode } from '../schema-node';
2
2
  import { ParameterSchema } from './parameter';
3
- export declare class ConstructorSchema implements SchemaNode {
3
+ export declare class ConstructorSchema extends SchemaNode {
4
+ readonly location: Location;
4
5
  readonly params: ParameterSchema[];
5
- constructor(params: ParameterSchema[]);
6
+ constructor(location: Location, params: ParameterSchema[]);
6
7
  toString(): string;
7
- toObject(): {
8
- constructorName: string;
9
- args: {
10
- constructorName: string;
11
- name: string;
12
- type: Record<string, any> & {
13
- constructorName: string;
14
- };
15
- defaultValue: any;
16
- description: string;
17
- }[];
18
- };
19
8
  }
@@ -1,24 +1,32 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  exports.ConstructorSchema = void 0;
13
+ const class_transformer_1 = require("class-transformer");
7
14
  const chalk_1 = __importDefault(require("chalk"));
8
- class ConstructorSchema {
9
- constructor(params) {
15
+ const schema_node_1 = require("../schema-node");
16
+ const schema_obj_to_class_1 = require("../schema-obj-to-class");
17
+ class ConstructorSchema extends schema_node_1.SchemaNode {
18
+ constructor(location, params) {
19
+ super();
20
+ this.location = location;
10
21
  this.params = params;
11
22
  }
12
23
  toString() {
13
24
  const paramsStr = this.params.map((param) => param.toString()).join(', ');
14
25
  return `${chalk_1.default.bold('constructor')}(${paramsStr})`;
15
26
  }
16
- toObject() {
17
- return {
18
- constructorName: this.constructor.name,
19
- args: this.params.map((arg) => arg.toObject()),
20
- };
21
- }
22
27
  }
28
+ __decorate([
29
+ (0, class_transformer_1.Transform)(schema_obj_to_class_1.schemaObjArrayToInstances)
30
+ ], ConstructorSchema.prototype, "params", void 0);
23
31
  exports.ConstructorSchema = ConstructorSchema;
24
32
  //# sourceMappingURL=constructor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constructor.js","sourceRoot":"","sources":["../../schemas/constructor.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAI1B,MAAa,iBAAiB;IAC5B,YAAqB,MAAyB;QAAzB,WAAM,GAAN,MAAM,CAAmB;IAAG,CAAC;IAElD,QAAQ;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,OAAO,GAAG,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,SAAS,GAAG,CAAC;IACtD,CAAC;IAED,QAAQ;QACN,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YACtC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;CACF;AAdD,8CAcC"}
1
+ {"version":3,"file":"constructor.js","sourceRoot":"","sources":["../../schemas/constructor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA8C;AAC9C,kDAA0B;AAC1B,gDAAsD;AAEtD,gEAAmE;AAEnE,MAAa,iBAAkB,SAAQ,wBAAU;IAG/C,YAAqB,QAAkB,EAAE,MAAyB;QAChE,KAAK,EAAE,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAU;QAErC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,OAAO,GAAG,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,SAAS,GAAG,CAAC;IACtD,CAAC;CACF;AAVC;IADC,IAAA,6BAAS,EAAC,+CAAyB,CAAC;iDACF;AAFrC,8CAYC"}
@@ -0,0 +1,8 @@
1
+ import { Location, SchemaNode } from '../schema-node';
2
+ export declare class EnumSchema extends SchemaNode {
3
+ readonly location: Location;
4
+ readonly name: string;
5
+ readonly members: string[];
6
+ constructor(location: Location, name: string, members: string[]);
7
+ toString(): string;
8
+ }
@@ -1 +1,22 @@
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 });
6
+ exports.EnumSchema = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const schema_node_1 = require("../schema-node");
9
+ class EnumSchema extends schema_node_1.SchemaNode {
10
+ constructor(location, name, members) {
11
+ super();
12
+ this.location = location;
13
+ this.name = name;
14
+ this.members = members;
15
+ }
16
+ toString() {
17
+ const membersStr = this.members.map((m) => `* ${m.toString()}`).join('\n');
18
+ return `${chalk_1.default.bold.underline(this.name)}\n${membersStr}`;
19
+ }
20
+ }
21
+ exports.EnumSchema = EnumSchema;
1
22
  //# sourceMappingURL=enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../schemas/enum.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../schemas/enum.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAAsD;AAEtD,MAAa,UAAW,SAAQ,wBAAU;IACxC,YAAqB,QAAkB,EAAW,IAAY,EAAW,OAAiB;QACxF,KAAK,EAAE,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAU;QAAW,SAAI,GAAJ,IAAI,CAAQ;QAAW,YAAO,GAAP,OAAO,CAAU;IAE1F,CAAC;IAED,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,OAAO,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;IAC7D,CAAC;CACF;AATD,gCASC"}
@@ -1,26 +1,18 @@
1
1
  import { Location, SchemaNode } from '../schema-node';
2
2
  import { ParameterSchema } from './parameter';
3
- export declare type Modifier = 'static' | 'public' | 'private' | 'protected' | 'readonly' | 'abstract' | 'async' | 'override';
4
- export declare class FunctionLikeSchema implements SchemaNode {
3
+ export declare type Modifier = 'static' | 'public' | 'private' | 'protected' | 'readonly' | 'abstract' | 'async' | 'override' | 'export';
4
+ /**
5
+ * function-like can be a function, method, arrow-function, variable-function, etc.
6
+ */
7
+ export declare class FunctionLikeSchema extends SchemaNode {
8
+ readonly location: Location;
5
9
  readonly name: string;
6
- readonly params: ParameterSchema[];
7
- readonly returnType: SchemaNode;
8
10
  readonly signature: string;
9
- readonly location: Location;
10
11
  readonly modifiers: Modifier[];
11
- constructor(name: string, params: ParameterSchema[], returnType: SchemaNode, signature: string, location: Location, modifiers?: Modifier[]);
12
- serialize(): void;
13
- toJsonSchema(): void;
12
+ readonly returnType: SchemaNode;
13
+ readonly params: ParameterSchema[];
14
+ constructor(location: Location, name: string, params: ParameterSchema[], returnType: SchemaNode, signature: string, modifiers?: Modifier[]);
14
15
  getSignature(): string;
15
- toObject(): {
16
- constructorName: string;
17
- name: string;
18
- params: ParameterSchema[];
19
- returnType: Record<string, any> & {
20
- constructorName: string;
21
- };
22
- signature: string;
23
- modifiers: Modifier[];
24
- };
25
16
  toString(): string;
17
+ private modifiersToString;
26
18
  }