@teambit/semantics.entities.semantic-schema 0.0.0-e4ef0e951da794f03096a5cc407420f4cde8b878
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/api-schema.ts +167 -0
- package/dist/api-schema.d.ts +36 -0
- package/dist/api-schema.js +171 -0
- package/dist/api-schema.js.map +1 -0
- package/dist/export.d.ts +38 -0
- package/dist/export.js +37 -0
- package/dist/export.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +137 -0
- package/dist/index.js.map +1 -0
- package/dist/schema-node-constructor.d.ts +7 -0
- package/dist/schema-node-constructor.js +3 -0
- package/dist/schema-node-constructor.js.map +1 -0
- package/dist/schema-node.d.ts +51 -0
- package/dist/schema-node.js +67 -0
- package/dist/schema-node.js.map +1 -0
- package/dist/schema-registry.d.ts +17 -0
- package/dist/schema-registry.js +63 -0
- package/dist/schema-registry.js.map +1 -0
- package/dist/schemas/array-literal-expression.d.ts +15 -0
- package/dist/schemas/array-literal-expression.js +48 -0
- package/dist/schemas/array-literal-expression.js.map +1 -0
- package/dist/schemas/class.d.ts +59 -0
- package/dist/schemas/class.js +126 -0
- package/dist/schemas/class.js.map +1 -0
- package/dist/schemas/conditional-type.d.ts +25 -0
- package/dist/schemas/conditional-type.js +67 -0
- package/dist/schemas/conditional-type.js.map +1 -0
- package/dist/schemas/constructor.d.ts +9 -0
- package/dist/schemas/constructor.js +51 -0
- package/dist/schemas/constructor.js.map +1 -0
- package/dist/schemas/decorator.d.ts +35 -0
- package/dist/schemas/decorator.js +70 -0
- package/dist/schemas/decorator.js.map +1 -0
- package/dist/schemas/docs/doc.d.ts +30 -0
- package/dist/schemas/docs/doc.js +74 -0
- package/dist/schemas/docs/doc.js.map +1 -0
- package/dist/schemas/docs/index.d.ts +4 -0
- package/dist/schemas/docs/index.js +59 -0
- package/dist/schemas/docs/index.js.map +1 -0
- package/dist/schemas/docs/property-like-tag.d.ts +26 -0
- package/dist/schemas/docs/property-like-tag.js +59 -0
- package/dist/schemas/docs/property-like-tag.js.map +1 -0
- package/dist/schemas/docs/return-tag.d.ts +25 -0
- package/dist/schemas/docs/return-tag.js +55 -0
- package/dist/schemas/docs/return-tag.js.map +1 -0
- package/dist/schemas/docs/tag.d.ts +45 -0
- package/dist/schemas/docs/tag.js +75 -0
- package/dist/schemas/docs/tag.js.map +1 -0
- package/dist/schemas/enum-member.d.ts +36 -0
- package/dist/schemas/enum-member.js +66 -0
- package/dist/schemas/enum-member.js.map +1 -0
- package/dist/schemas/enum.d.ts +37 -0
- package/dist/schemas/enum.js +87 -0
- package/dist/schemas/enum.js.map +1 -0
- package/dist/schemas/export.d.ts +41 -0
- package/dist/schemas/export.js +92 -0
- package/dist/schemas/export.js.map +1 -0
- package/dist/schemas/expression-with-arguments.d.ts +19 -0
- package/dist/schemas/expression-with-arguments.js +59 -0
- package/dist/schemas/expression-with-arguments.js.map +1 -0
- package/dist/schemas/function-like.d.ts +66 -0
- package/dist/schemas/function-like.js +147 -0
- package/dist/schemas/function-like.js.map +1 -0
- package/dist/schemas/get-accessor.d.ts +22 -0
- package/dist/schemas/get-accessor.js +73 -0
- package/dist/schemas/get-accessor.js.map +1 -0
- package/dist/schemas/ignored.d.ts +17 -0
- package/dist/schemas/ignored.js +54 -0
- package/dist/schemas/ignored.js.map +1 -0
- package/dist/schemas/index-signature.d.ts +23 -0
- package/dist/schemas/index-signature.js +65 -0
- package/dist/schemas/index-signature.js.map +1 -0
- package/dist/schemas/index.d.ts +49 -0
- package/dist/schemas/index.js +623 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/indexed-access-type.d.ts +17 -0
- package/dist/schemas/indexed-access-type.js +55 -0
- package/dist/schemas/indexed-access-type.js.map +1 -0
- package/dist/schemas/inference-type.d.ts +22 -0
- package/dist/schemas/inference-type.js +65 -0
- package/dist/schemas/inference-type.js.map +1 -0
- package/dist/schemas/interface.d.ts +49 -0
- package/dist/schemas/interface.js +108 -0
- package/dist/schemas/interface.js.map +1 -0
- package/dist/schemas/keyword-type.d.ts +15 -0
- package/dist/schemas/keyword-type.js +43 -0
- package/dist/schemas/keyword-type.js.map +1 -0
- package/dist/schemas/literal-type.d.ts +15 -0
- package/dist/schemas/literal-type.js +43 -0
- package/dist/schemas/literal-type.js.map +1 -0
- package/dist/schemas/literal-value.d.ts +12 -0
- package/dist/schemas/literal-value.js +41 -0
- package/dist/schemas/literal-value.js.map +1 -0
- package/dist/schemas/module.d.ts +22 -0
- package/dist/schemas/module.js +87 -0
- package/dist/schemas/module.js.map +1 -0
- package/dist/schemas/named-tuple.d.ts +19 -0
- package/dist/schemas/named-tuple.js +53 -0
- package/dist/schemas/named-tuple.js.map +1 -0
- package/dist/schemas/object-literal-expression.d.ts +18 -0
- package/dist/schemas/object-literal-expression.js +52 -0
- package/dist/schemas/object-literal-expression.js.map +1 -0
- package/dist/schemas/parameter.d.ts +27 -0
- package/dist/schemas/parameter.js +95 -0
- package/dist/schemas/parameter.js.map +1 -0
- package/dist/schemas/parenthesized-type.d.ts +21 -0
- package/dist/schemas/parenthesized-type.js +54 -0
- package/dist/schemas/parenthesized-type.js.map +1 -0
- package/dist/schemas/property-assignment.d.ts +37 -0
- package/dist/schemas/property-assignment.js +67 -0
- package/dist/schemas/property-assignment.js.map +1 -0
- package/dist/schemas/set-accessor.d.ts +28 -0
- package/dist/schemas/set-accessor.js +65 -0
- package/dist/schemas/set-accessor.js.map +1 -0
- package/dist/schemas/template-literal-type-span.d.ts +19 -0
- package/dist/schemas/template-literal-type-span.js +53 -0
- package/dist/schemas/template-literal-type-span.js.map +1 -0
- package/dist/schemas/template-literal-type.d.ts +22 -0
- package/dist/schemas/template-literal-type.js +52 -0
- package/dist/schemas/template-literal-type.js.map +1 -0
- package/dist/schemas/this-type.d.ts +12 -0
- package/dist/schemas/this-type.js +37 -0
- package/dist/schemas/this-type.js.map +1 -0
- package/dist/schemas/tuple-type.d.ts +16 -0
- package/dist/schemas/tuple-type.js +47 -0
- package/dist/schemas/tuple-type.js.map +1 -0
- package/dist/schemas/type-array.d.ts +17 -0
- package/dist/schemas/type-array.js +50 -0
- package/dist/schemas/type-array.js.map +1 -0
- package/dist/schemas/type-intersection.d.ts +17 -0
- package/dist/schemas/type-intersection.js +50 -0
- package/dist/schemas/type-intersection.js.map +1 -0
- package/dist/schemas/type-literal.d.ts +18 -0
- package/dist/schemas/type-literal.js +64 -0
- package/dist/schemas/type-literal.js.map +1 -0
- package/dist/schemas/type-operator.d.ts +19 -0
- package/dist/schemas/type-operator.js +53 -0
- package/dist/schemas/type-operator.js.map +1 -0
- package/dist/schemas/type-predicate.d.ts +33 -0
- package/dist/schemas/type-predicate.js +75 -0
- package/dist/schemas/type-predicate.js.map +1 -0
- package/dist/schemas/type-query.d.ts +23 -0
- package/dist/schemas/type-query.js +59 -0
- package/dist/schemas/type-query.js.map +1 -0
- package/dist/schemas/type-ref.d.ts +80 -0
- package/dist/schemas/type-ref.js +159 -0
- package/dist/schemas/type-ref.js.map +1 -0
- package/dist/schemas/type-union.d.ts +17 -0
- package/dist/schemas/type-union.js +56 -0
- package/dist/schemas/type-union.js.map +1 -0
- package/dist/schemas/type.d.ts +23 -0
- package/dist/schemas/type.js +80 -0
- package/dist/schemas/type.js.map +1 -0
- package/dist/schemas/unimplemented-schema.d.ts +14 -0
- package/dist/schemas/unimplemented-schema.js +43 -0
- package/dist/schemas/unimplemented-schema.js.map +1 -0
- package/dist/schemas/unknown-schema.d.ts +18 -0
- package/dist/schemas/unknown-schema.js +47 -0
- package/dist/schemas/unknown-schema.js.map +1 -0
- package/dist/schemas/unresolved-schema.d.ts +14 -0
- package/dist/schemas/unresolved-schema.js +41 -0
- package/dist/schemas/unresolved-schema.js.map +1 -0
- package/dist/schemas/variable-like.d.ts +47 -0
- package/dist/schemas/variable-like.js +95 -0
- package/dist/schemas/variable-like.js.map +1 -0
- package/dist/semantic-schema.docs.md +6 -0
- package/dist/type.d.ts +1 -0
- package/dist/type.js +3 -0
- package/dist/type.js.map +1 -0
- package/dist/unknown-schema-factory.d.ts +4 -0
- package/dist/unknown-schema-factory.js +19 -0
- package/dist/unknown-schema-factory.js.map +1 -0
- package/export.ts +31 -0
- package/index.ts +13 -0
- package/package.json +46 -0
- package/schema-node-constructor.ts +8 -0
- package/schema-node.ts +96 -0
- package/schema-registry.ts +53 -0
- package/schemas/array-literal-expression.ts +33 -0
- package/schemas/class.ts +135 -0
- package/schemas/conditional-type.ts +63 -0
- package/schemas/constructor.ts +28 -0
- package/schemas/decorator.ts +54 -0
- package/schemas/docs/doc.ts +69 -0
- package/schemas/docs/index.ts +4 -0
- package/schemas/docs/property-like-tag.ts +47 -0
- package/schemas/docs/return-tag.ts +44 -0
- package/schemas/docs/tag.ts +66 -0
- package/schemas/enum-member.ts +57 -0
- package/schemas/enum.ts +73 -0
- package/schemas/export.ts +91 -0
- package/schemas/expression-with-arguments.ts +51 -0
- package/schemas/function-like.ts +154 -0
- package/schemas/get-accessor.ts +57 -0
- package/schemas/ignored.ts +43 -0
- package/schemas/index-signature.ts +49 -0
- package/schemas/index.ts +49 -0
- package/schemas/indexed-access-type.ts +47 -0
- package/schemas/inference-type.ts +60 -0
- package/schemas/interface.ts +94 -0
- package/schemas/keyword-type.ts +34 -0
- package/schemas/literal-type.ts +34 -0
- package/schemas/literal-value.ts +32 -0
- package/schemas/module.ts +87 -0
- package/schemas/named-tuple.ts +39 -0
- package/schemas/object-literal-expression.ts +42 -0
- package/schemas/parameter.ts +104 -0
- package/schemas/parenthesized-type.ts +42 -0
- package/schemas/property-assignment.ts +50 -0
- package/schemas/set-accessor.ts +47 -0
- package/schemas/template-literal-type-span.ts +42 -0
- package/schemas/template-literal-type.ts +40 -0
- package/schemas/this-type.ts +27 -0
- package/schemas/tuple-type.ts +35 -0
- package/schemas/type-array.ts +39 -0
- package/schemas/type-intersection.ts +39 -0
- package/schemas/type-literal.ts +60 -0
- package/schemas/type-operator.ts +41 -0
- package/schemas/type-predicate.ts +64 -0
- package/schemas/type-query.ts +49 -0
- package/schemas/type-ref.ts +143 -0
- package/schemas/type-union.ts +41 -0
- package/schemas/type.ts +61 -0
- package/schemas/unimplemented-schema.ts +35 -0
- package/schemas/unknown-schema.ts +38 -0
- package/schemas/unresolved-schema.ts +32 -0
- package/schemas/variable-like.ts +76 -0
- package/semantic-schema.docs.md +6 -0
- package/type.ts +1 -0
- package/types/asset.d.ts +41 -0
- package/types/style.d.ts +42 -0
- package/unknown-schema-factory.ts +10 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { DocSchema } from './schemas';
|
|
2
|
+
export interface ISchemaNode {
|
|
3
|
+
__schema: string;
|
|
4
|
+
location: SchemaLocation;
|
|
5
|
+
doc?: DocSchema;
|
|
6
|
+
signature?: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
toObject(): Record<string, any>;
|
|
9
|
+
toString(options?: {
|
|
10
|
+
color?: boolean;
|
|
11
|
+
}): string;
|
|
12
|
+
toFullSignature(options?: {
|
|
13
|
+
showDocs?: boolean;
|
|
14
|
+
}): string;
|
|
15
|
+
getNodes(): SchemaNode[];
|
|
16
|
+
findNode(predicate: (node: SchemaNode) => boolean, visitedNodes?: Set<SchemaNode>): SchemaNode | undefined;
|
|
17
|
+
getAllNodesRecursively(visitedNodes?: Set<SchemaNode>): SchemaNode[];
|
|
18
|
+
displaySchemaName: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* a convenient abstract class for all schema to extend.
|
|
22
|
+
* the reason for having it as an abstract class and not an interface, for now, is mostly for the `__schema` prop.
|
|
23
|
+
* this way it won't need to be implemented in each one of the subclasses.
|
|
24
|
+
*/
|
|
25
|
+
export declare abstract class SchemaNode implements ISchemaNode {
|
|
26
|
+
readonly __schema: string;
|
|
27
|
+
readonly displaySchemaName: string;
|
|
28
|
+
abstract readonly location: SchemaLocation;
|
|
29
|
+
readonly doc?: DocSchema;
|
|
30
|
+
readonly signature?: string;
|
|
31
|
+
readonly name?: string;
|
|
32
|
+
static fromObject(obj: Record<string, any>): SchemaNode;
|
|
33
|
+
toObject(): Record<string, any>;
|
|
34
|
+
abstract toString(options?: {
|
|
35
|
+
color?: boolean;
|
|
36
|
+
}): string;
|
|
37
|
+
abstract toFullSignature(options?: {
|
|
38
|
+
showDocs?: boolean;
|
|
39
|
+
}): string;
|
|
40
|
+
getNodes(): SchemaNode[];
|
|
41
|
+
getAllNodesRecursively(visitedNodes?: Set<SchemaNode>): SchemaNode[];
|
|
42
|
+
findNode(predicate: (node: SchemaNode) => boolean, visitedNodes?: Set<SchemaNode>): SchemaNode | undefined;
|
|
43
|
+
}
|
|
44
|
+
export type SchemaLocation = {
|
|
45
|
+
/**
|
|
46
|
+
* file-path relative to the component root-dir. normalized to Linux.
|
|
47
|
+
*/
|
|
48
|
+
filePath: string;
|
|
49
|
+
line: number;
|
|
50
|
+
character: number;
|
|
51
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SchemaNode = void 0;
|
|
7
|
+
function _lodash() {
|
|
8
|
+
const data = require("lodash");
|
|
9
|
+
_lodash = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _pluralize() {
|
|
15
|
+
const data = _interopRequireDefault(require("pluralize"));
|
|
16
|
+
_pluralize = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
/**
|
|
23
|
+
* a convenient abstract class for all schema to extend.
|
|
24
|
+
* the reason for having it as an abstract class and not an interface, for now, is mostly for the `__schema` prop.
|
|
25
|
+
* this way it won't need to be implemented in each one of the subclasses.
|
|
26
|
+
*/
|
|
27
|
+
class SchemaNode {
|
|
28
|
+
__schema = this.constructor.name;
|
|
29
|
+
displaySchemaName = (0, _pluralize().default)(this.constructor.name.replace(/Schema$/, '').replace(/([A-Z])/g, ' $1').trim());
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
|
+
static fromObject(obj) {
|
|
32
|
+
throw new Error(`Method 'fromObject' not implemented in subclass.`);
|
|
33
|
+
}
|
|
34
|
+
toObject() {
|
|
35
|
+
return (0, _lodash().pickBy)({
|
|
36
|
+
__schema: this.__schema,
|
|
37
|
+
location: this.location,
|
|
38
|
+
doc: this.doc ? this.doc.toObject() : undefined,
|
|
39
|
+
signature: this.signature,
|
|
40
|
+
name: this.name
|
|
41
|
+
}, v => v !== undefined);
|
|
42
|
+
}
|
|
43
|
+
getNodes() {
|
|
44
|
+
return [this];
|
|
45
|
+
}
|
|
46
|
+
getAllNodesRecursively(visitedNodes = new Set()) {
|
|
47
|
+
if (visitedNodes.has(this)) {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
visitedNodes.add(this);
|
|
51
|
+
const nodes = this.getNodes();
|
|
52
|
+
return [this, ...nodes.flatMap(node => node.getAllNodesRecursively(visitedNodes))];
|
|
53
|
+
}
|
|
54
|
+
findNode(predicate, visitedNodes = new Set()) {
|
|
55
|
+
if (predicate(this)) return this;
|
|
56
|
+
if (visitedNodes.has(this)) return undefined;
|
|
57
|
+
visitedNodes.add(this);
|
|
58
|
+
for (const child of this.getNodes()) {
|
|
59
|
+
const foundNode = child.findNode(predicate, visitedNodes);
|
|
60
|
+
if (foundNode) return foundNode;
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.SchemaNode = SchemaNode;
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=schema-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_lodash","data","require","_pluralize","_interopRequireDefault","e","__esModule","default","SchemaNode","__schema","constructor","name","displaySchemaName","pluralize","replace","trim","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 pluralize from 'pluralize';\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 displaySchemaName: string;\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 readonly displaySchemaName = pluralize(\n this.constructor.name\n .replace(/Schema$/, '')\n .replace(/([A-Z])/g, ' $1')\n .trim()\n );\n\n abstract readonly location: SchemaLocation;\n readonly doc?: DocSchema;\n readonly signature?: string;\n readonly name?: string;\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;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAkC,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAkBlC;AACA;AACA;AACA;AACA;AACO,MAAeG,UAAU,CAAwB;EAC7CC,QAAQ,GAAG,IAAI,CAACC,WAAW,CAACC,IAAI;EAChCC,iBAAiB,GAAG,IAAAC,oBAAS,EACpC,IAAI,CAACH,WAAW,CAACC,IAAI,CAClBG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CACtBA,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAC1BC,IAAI,CAAC,CACV,CAAC;EAMD;EACA,OAAOC,UAAUA,CAACC,GAAwB,EAAc;IACtD,MAAM,IAAIC,KAAK,CAAC,kDAAkD,CAAC;EACrE;EAEAC,QAAQA,CAAA,EAAwB;IAC9B,OAAO,IAAAC,gBAAM,EACX;MACEX,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBY,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;MACzBb,IAAI,EAAE,IAAI,CAACA;IACb,CAAC,EACAc,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,CAAA/B,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SchemaNodeConstructor } from './schema-node-constructor';
|
|
2
|
+
type GetSchemaFunc = () => SchemaNodeConstructor[];
|
|
3
|
+
export declare class SchemaRegistry {
|
|
4
|
+
private static instance;
|
|
5
|
+
private _schemas;
|
|
6
|
+
private _getSchemas;
|
|
7
|
+
private constructor();
|
|
8
|
+
static registerGetSchemas(getSchemas: GetSchemaFunc): void;
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated use registerGetSchemas instead
|
|
11
|
+
* registerGetSchemas is better for performance as it lazy-loads the schemas.
|
|
12
|
+
*/
|
|
13
|
+
static register(schema: SchemaNodeConstructor): void;
|
|
14
|
+
static schemas(): Record<string, SchemaNodeConstructor>;
|
|
15
|
+
static fromObject(obj: Record<string, any>): any;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SchemaRegistry = void 0;
|
|
7
|
+
function _unknownSchemaFactory() {
|
|
8
|
+
const data = require("./unknown-schema-factory");
|
|
9
|
+
_unknownSchemaFactory = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
class SchemaRegistry {
|
|
15
|
+
static instance = new SchemaRegistry();
|
|
16
|
+
_getSchemas = [];
|
|
17
|
+
constructor() {
|
|
18
|
+
this._schemas = {};
|
|
19
|
+
}
|
|
20
|
+
static registerGetSchemas(getSchemas) {
|
|
21
|
+
this.instance._getSchemas.push(getSchemas);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated use registerGetSchemas instead
|
|
26
|
+
* registerGetSchemas is better for performance as it lazy-loads the schemas.
|
|
27
|
+
*/
|
|
28
|
+
static register(schema) {
|
|
29
|
+
if (this.instance._schemas[schema.name]) return;
|
|
30
|
+
this.instance._schemas[schema.name] = schema;
|
|
31
|
+
}
|
|
32
|
+
static schemas() {
|
|
33
|
+
// this happens only once. as soon as the function is called, it registers all the schemas.
|
|
34
|
+
this.instance._getSchemas.forEach(getSchemas => {
|
|
35
|
+
const schemas = getSchemas();
|
|
36
|
+
schemas.forEach(schema => {
|
|
37
|
+
if (this.instance._schemas[schema.name]) return;
|
|
38
|
+
this.instance._schemas[schema.name] = schema;
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
this.instance._getSchemas = [];
|
|
42
|
+
return this.instance._schemas;
|
|
43
|
+
}
|
|
44
|
+
static fromObject(obj) {
|
|
45
|
+
if (!obj.__schema) {
|
|
46
|
+
throw new Error(`fatal: "__schema" is missing, make sure the transformer is set on SchemaNode type`);
|
|
47
|
+
}
|
|
48
|
+
const schemas = this.schemas();
|
|
49
|
+
const SchemaClass = schemas[obj.__schema];
|
|
50
|
+
if (!SchemaClass) {
|
|
51
|
+
// for backward and forward compatibility, to not break the users, it's better to return an unknown schema than throwing.
|
|
52
|
+
return _unknownSchemaFactory().UnknownSchemaFactory.create(obj.location || {
|
|
53
|
+
path: '',
|
|
54
|
+
line: 0,
|
|
55
|
+
character: 0
|
|
56
|
+
}, obj.__schema, obj);
|
|
57
|
+
}
|
|
58
|
+
return SchemaClass.fromObject(obj);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.SchemaRegistry = SchemaRegistry;
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=schema-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_unknownSchemaFactory","data","require","SchemaRegistry","instance","_getSchemas","constructor","_schemas","registerGetSchemas","getSchemas","push","register","schema","name","schemas","forEach","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\ntype GetSchemaFunc = () => SchemaNodeConstructor[];\n\nexport class SchemaRegistry {\n private static instance = new SchemaRegistry();\n private _schemas: Record<string, SchemaNodeConstructor>;\n private _getSchemas: GetSchemaFunc[] = [];\n\n private constructor() {\n this._schemas = {};\n }\n\n static registerGetSchemas(getSchemas: GetSchemaFunc) {\n this.instance._getSchemas.push(getSchemas);\n }\n\n /**\n * @deprecated use registerGetSchemas instead\n * registerGetSchemas is better for performance as it lazy-loads the schemas.\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 // this happens only once. as soon as the function is called, it registers all the schemas.\n this.instance._getSchemas.forEach((getSchemas) => {\n const schemas = getSchemas();\n schemas.forEach((schema) => {\n if (this.instance._schemas[schema.name]) return;\n this.instance._schemas[schema.name] = schema;\n });\n });\n this.instance._getSchemas = [];\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 const schemas = this.schemas();\n const SchemaClass = 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;AAIO,MAAME,cAAc,CAAC;EAC1B,OAAeC,QAAQ,GAAG,IAAID,cAAc,CAAC,CAAC;EAEtCE,WAAW,GAAoB,EAAE;EAEjCC,WAAWA,CAAA,EAAG;IACpB,IAAI,CAACC,QAAQ,GAAG,CAAC,CAAC;EACpB;EAEA,OAAOC,kBAAkBA,CAACC,UAAyB,EAAE;IACnD,IAAI,CAACL,QAAQ,CAACC,WAAW,CAACK,IAAI,CAACD,UAAU,CAAC;EAC5C;;EAEA;AACF;AACA;AACA;EACE,OAAOE,QAAQA,CAACC,MAA6B,EAAE;IAC7C,IAAI,IAAI,CAACR,QAAQ,CAACG,QAAQ,CAACK,MAAM,CAACC,IAAI,CAAC,EAAE;IACzC,IAAI,CAACT,QAAQ,CAACG,QAAQ,CAACK,MAAM,CAACC,IAAI,CAAC,GAAGD,MAAM;EAC9C;EAEA,OAAOE,OAAOA,CAAA,EAAG;IACf;IACA,IAAI,CAACV,QAAQ,CAACC,WAAW,CAACU,OAAO,CAAEN,UAAU,IAAK;MAChD,MAAMK,OAAO,GAAGL,UAAU,CAAC,CAAC;MAC5BK,OAAO,CAACC,OAAO,CAAEH,MAAM,IAAK;QAC1B,IAAI,IAAI,CAACR,QAAQ,CAACG,QAAQ,CAACK,MAAM,CAACC,IAAI,CAAC,EAAE;QACzC,IAAI,CAACT,QAAQ,CAACG,QAAQ,CAACK,MAAM,CAACC,IAAI,CAAC,GAAGD,MAAM;MAC9C,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,CAACR,QAAQ,CAACC,WAAW,GAAG,EAAE;IAC9B,OAAO,IAAI,CAACD,QAAQ,CAACG,QAAQ;EAC/B;EAEA,OAAOS,UAAUA,CAACC,GAAwB,EAAE;IAC1C,IAAI,CAACA,GAAG,CAACC,QAAQ,EAAE;MACjB,MAAM,IAAIC,KAAK,CAAC,mFAAmF,CAAC;IACtG;IACA,MAAML,OAAO,GAAG,IAAI,CAACA,OAAO,CAAC,CAAC;IAC9B,MAAMM,WAAW,GAAGN,OAAO,CAACG,GAAG,CAACC,QAAQ,CAAC;IACzC,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,CAAAxB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SchemaLocation, SchemaNode } from '../schema-node';
|
|
2
|
+
export declare class ArrayLiteralExpressionSchema extends SchemaNode {
|
|
3
|
+
readonly members: SchemaNode[];
|
|
4
|
+
readonly location: SchemaLocation;
|
|
5
|
+
constructor(members: SchemaNode[], location: SchemaLocation);
|
|
6
|
+
toObject(): {
|
|
7
|
+
members: Record<string, any>[];
|
|
8
|
+
location: SchemaLocation;
|
|
9
|
+
};
|
|
10
|
+
static fromObject(obj: Record<string, any>): ArrayLiteralExpressionSchema;
|
|
11
|
+
toString(): string;
|
|
12
|
+
toFullSignature(options?: {
|
|
13
|
+
showDocs?: boolean;
|
|
14
|
+
}): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ArrayLiteralExpressionSchema = void 0;
|
|
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
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.ArrayLiteralExpressionSchema = ArrayLiteralExpressionSchema;
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=array-literal-expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { SchemaLocation, SchemaNode } from '../schema-node';
|
|
2
|
+
import { DocSchema } from './docs';
|
|
3
|
+
import { ExpressionWithTypeArgumentsSchema } from './expression-with-arguments';
|
|
4
|
+
export declare class ClassSchema extends SchemaNode {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly location: SchemaLocation;
|
|
7
|
+
readonly signature: string;
|
|
8
|
+
readonly typeParams?: string[] | undefined;
|
|
9
|
+
readonly extendsNodes?: ExpressionWithTypeArgumentsSchema[] | undefined;
|
|
10
|
+
readonly implementNodes?: ExpressionWithTypeArgumentsSchema[] | undefined;
|
|
11
|
+
readonly decorators?: SchemaNode[] | undefined;
|
|
12
|
+
readonly members: SchemaNode[];
|
|
13
|
+
readonly doc?: DocSchema;
|
|
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
|
+
getNodes(): SchemaNode[];
|
|
16
|
+
toString(options?: {
|
|
17
|
+
color?: boolean;
|
|
18
|
+
}): string;
|
|
19
|
+
toFullSignature(options?: {
|
|
20
|
+
showDocs?: boolean;
|
|
21
|
+
}): string;
|
|
22
|
+
toObject(): {
|
|
23
|
+
name: string;
|
|
24
|
+
members: Record<string, any>[];
|
|
25
|
+
doc: {
|
|
26
|
+
__schema: string;
|
|
27
|
+
name: string | undefined;
|
|
28
|
+
location: SchemaLocation;
|
|
29
|
+
signature: string | undefined;
|
|
30
|
+
raw: string;
|
|
31
|
+
comment: string | undefined;
|
|
32
|
+
tags: {
|
|
33
|
+
__schema: string;
|
|
34
|
+
location: SchemaLocation;
|
|
35
|
+
name: string | undefined;
|
|
36
|
+
signature: string | undefined;
|
|
37
|
+
tagName: string;
|
|
38
|
+
comment: string | undefined;
|
|
39
|
+
}[] | undefined;
|
|
40
|
+
} | undefined;
|
|
41
|
+
signature: string;
|
|
42
|
+
typeParams: string[] | undefined;
|
|
43
|
+
extendsNodes: {
|
|
44
|
+
name: string;
|
|
45
|
+
location: SchemaLocation;
|
|
46
|
+
typeArgs: Record<string, any>[];
|
|
47
|
+
expression: SchemaNode;
|
|
48
|
+
}[] | undefined;
|
|
49
|
+
implementNodes: {
|
|
50
|
+
name: string;
|
|
51
|
+
location: SchemaLocation;
|
|
52
|
+
typeArgs: Record<string, any>[];
|
|
53
|
+
expression: SchemaNode;
|
|
54
|
+
}[] | undefined;
|
|
55
|
+
decorators: Record<string, any>[] | undefined;
|
|
56
|
+
};
|
|
57
|
+
static fromObject(obj: Record<string, any>): ClassSchema;
|
|
58
|
+
static fromSchema(node: ClassSchema, memberTransformer?: (_node: SchemaNode) => SchemaNode): ClassSchema;
|
|
59
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ClassSchema = void 0;
|
|
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`;
|
|
69
|
+
}
|
|
70
|
+
const decoratorsStr = this.decorators?.map(decorator => decorator.toFullSignature(options)).join('\n');
|
|
71
|
+
if (decoratorsStr) {
|
|
72
|
+
result += `${decoratorsStr}\n`;
|
|
73
|
+
}
|
|
74
|
+
let classDeclaration = `class ${this.name}`;
|
|
75
|
+
if (this.typeParams && this.typeParams.length > 0) {
|
|
76
|
+
classDeclaration += `<${this.typeParams.join(', ')}>`;
|
|
77
|
+
}
|
|
78
|
+
if (this.extendsNodes && this.extendsNodes.length > 0) {
|
|
79
|
+
const extendsStr = this.extendsNodes.map(node => node.toFullSignature(options)).join(', ');
|
|
80
|
+
classDeclaration += ` extends ${extendsStr}`;
|
|
81
|
+
}
|
|
82
|
+
if (this.implementNodes && this.implementNodes.length > 0) {
|
|
83
|
+
const implementsStr = this.implementNodes.map(node => node.toFullSignature(options)).join(', ');
|
|
84
|
+
classDeclaration += ` implements ${implementsStr}`;
|
|
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
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.ClassSchema = ClassSchema;
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,MAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,yBAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,wBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,gBAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,eAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAoD,SAAAC,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7C,MAAMG,WAAW,SAASC,wBAAU,CAAC;EAI1CC,WAAWA,CACAC,IAAY,EACrBC,OAAqB,EACZC,QAAwB,EACxBC,SAAiB,EAC1BC,GAAe,EACNC,UAAqB,EACrBC,YAAkD,EAClDC,cAAoD,EACpDC,UAAyB,EAClC;IACA,KAAK,CAAC,CAAC;IAAC,KAVCR,IAAY,GAAZA,IAAY;IAAA,KAEZE,QAAwB,GAAxBA,QAAwB;IAAA,KACxBC,SAAiB,GAAjBA,SAAiB;IAAA,KAEjBE,UAAqB,GAArBA,UAAqB;IAAA,KACrBC,YAAkD,GAAlDA,YAAkD;IAAA,KAClDC,cAAoD,GAApDA,cAAoD;IAAA,KACpDC,UAAyB,GAAzBA,UAAyB;IAGlC,IAAI,CAACP,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACG,GAAG,GAAGA,GAAG;EAChB;EAEAK,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACR,OAAO;EACrB;EAEAS,QAAQA,CAACC,OAA6B,EAAU;IAC9C,MAAMC,aAAa,GAAGD,OAAO,EAAEE,KAAK,GAAGC,gBAAK,CAACC,IAAI,CAACC,SAAS,GAAIC,GAAW,IAAKA,GAAG;IAClF,MAAMC,UAAU,GAAG,IAAI,CAACjB,OAAO,CAACkB,GAAG,CAAEC,CAAC,IAAK,KAAKA,CAAC,CAACV,QAAQ,CAACC,OAAO,CAAC,EAAE,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;IACjF,MAAMC,aAAa,GAAG,IAAI,CAACd,UAAU,EAAEW,GAAG,CAAEI,SAAS,IAAKA,SAAS,CAACb,QAAQ,CAACC,OAAO,CAAC,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;IACjG,OAAO,GAAG,IAAI,CAACb,UAAU,GAAG,GAAGc,aAAa,IAAI,GAAG,EAAE,GAAGV,aAAa,CAAC,IAAI,CAACZ,IAAI,CAAC,KAAKkB,UAAU,EAAE;EACnG;EAEAM,eAAeA,CAACb,OAAgC,EAAU;IACxD,IAAIc,MAAM,GAAG,EAAE;IAEf,IAAId,OAAO,EAAEe,QAAQ,IAAI,IAAI,CAACtB,GAAG,EAAE;MACjCqB,MAAM,IAAI,GAAG,IAAI,CAACrB,GAAG,CAACoB,eAAe,CAAC,CAAC,IAAI;IAC7C;IAEA,MAAMF,aAAa,GAAG,IAAI,CAACd,UAAU,EAAEW,GAAG,CAAEI,SAAS,IAAKA,SAAS,CAACC,eAAe,CAACb,OAAO,CAAC,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;IACxG,IAAIC,aAAa,EAAE;MACjBG,MAAM,IAAI,GAAGH,aAAa,IAAI;IAChC;IAEA,IAAIK,gBAAgB,GAAG,SAAS,IAAI,CAAC3B,IAAI,EAAE;IAE3C,IAAI,IAAI,CAACK,UAAU,IAAI,IAAI,CAACA,UAAU,CAACuB,MAAM,GAAG,CAAC,EAAE;MACjDD,gBAAgB,IAAI,IAAI,IAAI,CAACtB,UAAU,CAACgB,IAAI,CAAC,IAAI,CAAC,GAAG;IACvD;IAEA,IAAI,IAAI,CAACf,YAAY,IAAI,IAAI,CAACA,YAAY,CAACsB,MAAM,GAAG,CAAC,EAAE;MACrD,MAAMC,UAAU,GAAG,IAAI,CAACvB,YAAY,CAACa,GAAG,CAAEW,IAAI,IAAKA,IAAI,CAACN,eAAe,CAACb,OAAO,CAAC,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;MAC5FM,gBAAgB,IAAI,YAAYE,UAAU,EAAE;IAC9C;IAEA,IAAI,IAAI,CAACtB,cAAc,IAAI,IAAI,CAACA,cAAc,CAACqB,MAAM,GAAG,CAAC,EAAE;MACzD,MAAMG,aAAa,GAAG,IAAI,CAACxB,cAAc,CAACY,GAAG,CAAEW,IAAI,IAAKA,IAAI,CAACN,eAAe,CAACb,OAAO,CAAC,CAAC,CAACU,IAAI,CAAC,IAAI,CAAC;MACjGM,gBAAgB,IAAI,eAAeI,aAAa,EAAE;IACpD;IAEAN,MAAM,IAAI,GAAGE,gBAAgB,MAAM;IAEnC,MAAMT,UAAU,GAAG,IAAI,CAACjB,OAAO,CAC5BkB,GAAG,CAAEa,MAAM,IAAK;MACf,MAAMC,SAAS,GAAGD,MAAM,CAACR,eAAe,CAACb,OAAO,CAAC;MACjD,OAAOsB,SAAS,CACbC,KAAK,CAAC,IAAI,CAAC,CACXf,GAAG,CAAEgB,IAAI,IAAK,KAAKA,IAAI,EAAE,CAAC,CAC1Bd,IAAI,CAAC,IAAI,CAAC;IACf,CAAC,CAAC,CACDA,IAAI,CAAC,IAAI,CAAC;IAEbI,MAAM,IAAI,GAAGP,UAAU,IAAI;IAE3BO,MAAM,IAAI,GAAG;IAEb,OAAOA,MAAM;EACf;EAEAW,QAAQA,CAAA,EAAG;IACT,OAAO;MACL,GAAG,KAAK,CAACA,QAAQ,CAAC,CAAC;MACnBpC,IAAI,EAAE,IAAI,CAACA,IAAI;MACfC,OAAO,EAAE,IAAI,CAACA,OAAO,CAACkB,GAAG,CAAEa,MAAM,IAAKA,MAAM,CAACI,QAAQ,CAAC,CAAC,CAAC;MACxDhC,GAAG,EAAE,IAAI,CAACA,GAAG,EAAEgC,QAAQ,CAAC,CAAC;MACzBjC,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBE,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3BC,YAAY,EAAE,IAAI,CAACA,YAAY,EAAEa,GAAG,CAAEW,IAAI,IAAKA,IAAI,CAACM,QAAQ,CAAC,CAAC,CAAC;MAC/D7B,cAAc,EAAE,IAAI,CAACA,cAAc,EAAEY,GAAG,CAAEW,IAAI,IAAKA,IAAI,CAACM,QAAQ,CAAC,CAAC,CAAC;MACnE5B,UAAU,EAAE,IAAI,CAACA,UAAU,EAAEW,GAAG,CAAEI,SAAS,IAAKA,SAAS,CAACa,QAAQ,CAAC,CAAC;IACtE,CAAC;EACH;EAEA,OAAOC,UAAUA,CAACC,GAAwB,EAAe;IACvD,MAAMtC,IAAI,GAAGsC,GAAG,CAACtC,IAAI;IACrB,MAAMC,OAAO,GAAGqC,GAAG,CAACrC,OAAO,CAACkB,GAAG,CAAEa,MAAW,IAAKO,gCAAc,CAACF,UAAU,CAACL,MAAM,CAAC,CAAC;IACnF,MAAM9B,QAAQ,GAAGoC,GAAG,CAACpC,QAAQ;IAC7B,MAAMC,SAAS,GAAGmC,GAAG,CAACnC,SAAS;IAC/B,MAAMC,GAAG,GAAGkC,GAAG,CAAClC,GAAG,GAAGoC,iBAAS,CAACH,UAAU,CAACC,GAAG,CAAClC,GAAG,CAAC,GAAGqC,SAAS;IAC/D,MAAMpC,UAAU,GAAGiC,GAAG,CAACjC,UAAU;IACjC,MAAMC,YAAY,GAAGgC,GAAG,CAAChC,YAAY,EAAEa,GAAG,CAAEW,IAAS,IAAKY,4DAAiC,CAACL,UAAU,CAACP,IAAI,CAAC,CAAC;IAC7G,MAAMvB,cAAc,GAAG+B,GAAG,CAAC/B,cAAc,EAAEY,GAAG,CAAEW,IAAS,IAAKY,4DAAiC,CAACL,UAAU,CAACP,IAAI,CAAC,CAAC;IACjH,MAAMtB,UAAU,GAAG8B,GAAG,CAAC9B,UAAU,EAAEW,GAAG,CAAEI,SAAc,IAAKgB,gCAAc,CAACF,UAAU,CAACd,SAAS,CAAC,CAAC;IAChG,OAAO,IAAI1B,WAAW,CACpBG,IAAI,EACJC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,GAAG,EACHC,UAAU,EACVC,YAAY,EACZC,cAAc,EACdC,UACF,CAAC;EACH;EAEA,OAAOmC,UAAUA,CAACb,IAAiB,EAAEc,iBAAoD,GAAIC,KAAK,IAAKA,KAAK,EAAE;IAC5G,OAAO,IAAIhD,WAAW,CACpBiC,IAAI,CAAC9B,IAAI,EACT8B,IAAI,CAAC7B,OAAO,CAACkB,GAAG,CAACyB,iBAAiB,CAAC,EACnCd,IAAI,CAAC5B,QAAQ,EACb4B,IAAI,CAAC3B,SAAS,EACd2B,IAAI,CAAC1B,GAAG,EACR0B,IAAI,CAACzB,UAAU,EACfyB,IAAI,CAACxB,YAAY,EACjBwB,IAAI,CAACvB,cAAc,EACnBuB,IAAI,CAACtB,UACP,CAAC;EACH;AACF;AAACsC,OAAA,CAAAjD,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SchemaLocation, SchemaNode } from '../schema-node';
|
|
2
|
+
/**
|
|
3
|
+
* e.g. `T extends U ? Y : N`
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
export declare class ConditionalTypeSchema extends SchemaNode {
|
|
7
|
+
readonly location: SchemaLocation;
|
|
8
|
+
readonly checkType: SchemaNode;
|
|
9
|
+
readonly extendsType: SchemaNode;
|
|
10
|
+
readonly trueType: SchemaNode;
|
|
11
|
+
readonly falseType: SchemaNode;
|
|
12
|
+
constructor(location: SchemaLocation, checkType: SchemaNode, extendsType: SchemaNode, trueType: SchemaNode, falseType: SchemaNode);
|
|
13
|
+
getNodes(): SchemaNode[];
|
|
14
|
+
toString(): string;
|
|
15
|
+
toFullSignature(options?: {
|
|
16
|
+
showDocs?: boolean;
|
|
17
|
+
}): string;
|
|
18
|
+
toObject(): {
|
|
19
|
+
checkType: Record<string, any>;
|
|
20
|
+
extendsType: Record<string, any>;
|
|
21
|
+
trueType: Record<string, any>;
|
|
22
|
+
falseType: Record<string, any>;
|
|
23
|
+
};
|
|
24
|
+
static fromObject(obj: Record<string, any>): ConditionalTypeSchema;
|
|
25
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ConditionalTypeSchema = void 0;
|
|
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
|
+
/**
|
|
22
|
+
* e.g. `T extends U ? Y : N`
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
class ConditionalTypeSchema extends _schemaNode().SchemaNode {
|
|
26
|
+
constructor(location, checkType, extendsType, trueType, falseType) {
|
|
27
|
+
super();
|
|
28
|
+
this.location = location;
|
|
29
|
+
this.checkType = checkType;
|
|
30
|
+
this.extendsType = extendsType;
|
|
31
|
+
this.trueType = trueType;
|
|
32
|
+
this.falseType = falseType;
|
|
33
|
+
}
|
|
34
|
+
getNodes() {
|
|
35
|
+
return [this.checkType, this.extendsType, this.trueType, this.falseType];
|
|
36
|
+
}
|
|
37
|
+
toString() {
|
|
38
|
+
return `${this.checkType.toString()} extends ${this.extendsType.toString()} ? ${this.trueType.toString()} : ${this.falseType.toString()}`;
|
|
39
|
+
}
|
|
40
|
+
toFullSignature(options) {
|
|
41
|
+
const checkTypeStr = this.checkType.toFullSignature(options);
|
|
42
|
+
const extendsTypeStr = this.extendsType.toFullSignature(options);
|
|
43
|
+
const trueTypeStr = this.trueType.toFullSignature(options);
|
|
44
|
+
const falseTypeStr = this.falseType.toFullSignature(options);
|
|
45
|
+
return `${checkTypeStr} extends ${extendsTypeStr} ? ${trueTypeStr} : ${falseTypeStr}`;
|
|
46
|
+
}
|
|
47
|
+
toObject() {
|
|
48
|
+
return {
|
|
49
|
+
...super.toObject(),
|
|
50
|
+
checkType: this.checkType.toObject(),
|
|
51
|
+
extendsType: this.extendsType.toObject(),
|
|
52
|
+
trueType: this.trueType.toObject(),
|
|
53
|
+
falseType: this.falseType.toObject()
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
static fromObject(obj) {
|
|
57
|
+
const location = obj.location;
|
|
58
|
+
const checkType = _schemaRegistry().SchemaRegistry.fromObject(obj.checkType);
|
|
59
|
+
const extendsType = _schemaRegistry().SchemaRegistry.fromObject(obj.extendsType);
|
|
60
|
+
const trueType = _schemaRegistry().SchemaRegistry.fromObject(obj.trueType);
|
|
61
|
+
const falseType = _schemaRegistry().SchemaRegistry.fromObject(obj.falseType);
|
|
62
|
+
return new ConditionalTypeSchema(location, checkType, extendsType, trueType, falseType);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.ConditionalTypeSchema = ConditionalTypeSchema;
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=conditional-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_schemaNode","data","require","_schemaRegistry","ConditionalTypeSchema","SchemaNode","constructor","location","checkType","extendsType","trueType","falseType","getNodes","toString","toFullSignature","options","checkTypeStr","extendsTypeStr","trueTypeStr","falseTypeStr","toObject","fromObject","obj","SchemaRegistry","exports"],"sources":["conditional-type.ts"],"sourcesContent":["import { SchemaLocation, SchemaNode } from '../schema-node';\nimport { SchemaRegistry } from '../schema-registry';\n\n/**\n * e.g. `T extends U ? Y : N`\n *\n */\nexport class ConditionalTypeSchema extends SchemaNode {\n readonly checkType: SchemaNode;\n readonly extendsType: SchemaNode;\n readonly trueType: SchemaNode;\n readonly falseType: SchemaNode;\n\n constructor(\n readonly location: SchemaLocation,\n checkType: SchemaNode,\n extendsType: SchemaNode,\n trueType: SchemaNode,\n falseType: SchemaNode\n ) {\n super();\n this.checkType = checkType;\n this.extendsType = extendsType;\n this.trueType = trueType;\n this.falseType = falseType;\n }\n\n getNodes() {\n return [this.checkType, this.extendsType, this.trueType, this.falseType];\n }\n\n toString() {\n return `${this.checkType.toString()} extends ${this.extendsType.toString()} ? ${this.trueType.toString()} : ${this.falseType.toString()}`;\n }\n\n toFullSignature(options?: { showDocs?: boolean }): string {\n const checkTypeStr = this.checkType.toFullSignature(options);\n const extendsTypeStr = this.extendsType.toFullSignature(options);\n const trueTypeStr = this.trueType.toFullSignature(options);\n const falseTypeStr = this.falseType.toFullSignature(options);\n\n return `${checkTypeStr} extends ${extendsTypeStr} ? ${trueTypeStr} : ${falseTypeStr}`;\n }\n\n toObject() {\n return {\n ...super.toObject(),\n checkType: this.checkType.toObject(),\n extendsType: this.extendsType.toObject(),\n trueType: this.trueType.toObject(),\n falseType: this.falseType.toObject(),\n };\n }\n\n static fromObject(obj: Record<string, any>): ConditionalTypeSchema {\n const location = obj.location;\n const checkType = SchemaRegistry.fromObject(obj.checkType);\n const extendsType = SchemaRegistry.fromObject(obj.extendsType);\n const trueType = SchemaRegistry.fromObject(obj.trueType);\n const falseType = SchemaRegistry.fromObject(obj.falseType);\n return new ConditionalTypeSchema(location, checkType, extendsType, trueType, falseType);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SchemaLocation } from '../schema-node';
|
|
2
|
+
import { ParameterSchema } from './parameter';
|
|
3
|
+
import { FunctionLikeSchema, Modifier } from './function-like';
|
|
4
|
+
import { DocSchema } from './docs';
|
|
5
|
+
import { ThisTypeSchema } from './this-type';
|
|
6
|
+
export declare class ConstructorSchema extends FunctionLikeSchema {
|
|
7
|
+
constructor(location: SchemaLocation, params: ParameterSchema[], returnType: ThisTypeSchema, signature: string, modifiers?: Modifier[], doc?: DocSchema);
|
|
8
|
+
static fromObject(obj: Record<string, any>): ConstructorSchema;
|
|
9
|
+
}
|