@teambit/typescript 0.0.880 → 0.0.882
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/dist/cmds/check-types.cmd.js +0 -21
- package/dist/cmds/check-types.cmd.js.map +1 -1
- package/dist/cmds/write-tsconfig.cmd.js +2 -25
- package/dist/cmds/write-tsconfig.cmd.js.map +1 -1
- package/dist/dedupe-path.spec.js +6 -8
- package/dist/dedupe-path.spec.js.map +1 -1
- package/dist/exceptions/index.js +0 -3
- package/dist/exceptions/index.js.map +1 -1
- package/dist/exceptions/transformer-not-found.js +0 -7
- package/dist/exceptions/transformer-not-found.js.map +1 -1
- package/dist/export-identifier.js +0 -3
- package/dist/export-identifier.js.map +1 -1
- package/dist/export-list.js +0 -4
- package/dist/export-list.js.map +1 -1
- package/dist/index.js +0 -9
- package/dist/index.js.map +1 -1
- package/dist/schema-extractor-context.js +16 -120
- package/dist/schema-extractor-context.js.map +1 -1
- package/dist/schema-transformer.plugin.js +0 -8
- package/dist/schema-transformer.plugin.js.map +1 -1
- package/dist/transformers/binding-element.js +0 -23
- package/dist/transformers/binding-element.js.map +1 -1
- package/dist/transformers/class-deceleration.js +2 -34
- package/dist/transformers/class-deceleration.js.map +1 -1
- package/dist/transformers/enum-declaration.js +0 -16
- package/dist/transformers/enum-declaration.js.map +1 -1
- package/dist/transformers/export-declaration.js +8 -47
- package/dist/transformers/export-declaration.js.map +1 -1
- package/dist/transformers/function-declaration.js +2 -19
- package/dist/transformers/function-declaration.js.map +1 -1
- package/dist/transformers/index.js +0 -30
- package/dist/transformers/index.js.map +1 -1
- package/dist/transformers/interface-declaration.js +0 -25
- package/dist/transformers/interface-declaration.js.map +1 -1
- package/dist/transformers/source-file-transformer.js +3 -24
- package/dist/transformers/source-file-transformer.js.map +1 -1
- package/dist/transformers/type-alias.js +0 -23
- package/dist/transformers/type-alias.js.map +1 -1
- package/dist/transformers/utils/class-element-to-schema.js +0 -35
- package/dist/transformers/utils/class-element-to-schema.js.map +1 -1
- package/dist/transformers/utils/get-params.js +6 -33
- package/dist/transformers/utils/get-params.js.map +1 -1
- package/dist/transformers/utils/jsdoc-to-doc-schema.js +4 -49
- package/dist/transformers/utils/jsdoc-to-doc-schema.js.map +1 -1
- package/dist/transformers/utils/parse-type-from-quick-info.js +4 -16
- package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -1
- package/dist/transformers/utils/to-function-like-schema.js +0 -15
- package/dist/transformers/utils/to-function-like-schema.js.map +1 -1
- package/dist/transformers/utils/type-element-to-schema.js +0 -37
- package/dist/transformers/utils/type-element-to-schema.js.map +1 -1
- package/dist/transformers/utils/type-node-to-schema.js +5 -71
- package/dist/transformers/utils/type-node-to-schema.js.map +1 -1
- package/dist/transformers/variable-declaration.js +0 -30
- package/dist/transformers/variable-declaration.js.map +1 -1
- package/dist/transformers/variable-statement.js +0 -22
- package/dist/transformers/variable-statement.js.map +1 -1
- package/dist/tsconfig-writer.js +8 -58
- package/dist/tsconfig-writer.js.map +1 -1
- package/dist/typescript.aspect.js +0 -5
- package/dist/typescript.aspect.js.map +1 -1
- package/dist/typescript.compiler.js +16 -83
- package/dist/typescript.compiler.js.map +1 -1
- package/dist/typescript.compiler.spec.js +0 -25
- package/dist/typescript.compiler.spec.js.map +1 -1
- package/dist/typescript.composition.js +0 -6
- package/dist/typescript.composition.js.map +1 -1
- package/dist/typescript.extractor.js +6 -50
- package/dist/typescript.extractor.js.map +1 -1
- package/dist/typescript.main.runtime.js +10 -114
- package/dist/typescript.main.runtime.js.map +1 -1
- package/dist/typescript.parser.js +3 -30
- package/dist/typescript.parser.js.map +1 -1
- package/dist/typescript.parser.spec.js +0 -22
- package/dist/typescript.parser.spec.js.map +1 -1
- package/package-tar/teambit-typescript-0.0.882.tgz +0 -0
- package/package.json +15 -15
- package/{preview-1666312873430.js → preview-1666496165706.js} +2 -2
- package/package-tar/teambit-typescript-0.0.880.tgz +0 -0
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.promise.js");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -9,108 +8,77 @@ exports.getAccessor = getAccessor;
|
|
|
9
8
|
exports.indexSignature = indexSignature;
|
|
10
9
|
exports.setAccessor = setAccessor;
|
|
11
10
|
exports.typeElementToSchema = typeElementToSchema;
|
|
12
|
-
|
|
13
11
|
function _typescript() {
|
|
14
12
|
const data = require("typescript");
|
|
15
|
-
|
|
16
13
|
_typescript = function () {
|
|
17
14
|
return data;
|
|
18
15
|
};
|
|
19
|
-
|
|
20
16
|
return data;
|
|
21
17
|
}
|
|
22
|
-
|
|
23
18
|
function _semanticsEntities() {
|
|
24
19
|
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
25
|
-
|
|
26
20
|
_semanticsEntities = function () {
|
|
27
21
|
return data;
|
|
28
22
|
};
|
|
29
|
-
|
|
30
23
|
return data;
|
|
31
24
|
}
|
|
32
|
-
|
|
33
25
|
function _toFunctionLikeSchema() {
|
|
34
26
|
const data = require("./to-function-like-schema");
|
|
35
|
-
|
|
36
27
|
_toFunctionLikeSchema = function () {
|
|
37
28
|
return data;
|
|
38
29
|
};
|
|
39
|
-
|
|
40
30
|
return data;
|
|
41
31
|
}
|
|
42
|
-
|
|
43
32
|
function _parseTypeFromQuickInfo() {
|
|
44
33
|
const data = require("./parse-type-from-quick-info");
|
|
45
|
-
|
|
46
34
|
_parseTypeFromQuickInfo = function () {
|
|
47
35
|
return data;
|
|
48
36
|
};
|
|
49
|
-
|
|
50
37
|
return data;
|
|
51
38
|
}
|
|
52
|
-
|
|
53
39
|
function _typeNodeToSchema() {
|
|
54
40
|
const data = require("./type-node-to-schema");
|
|
55
|
-
|
|
56
41
|
_typeNodeToSchema = function () {
|
|
57
42
|
return data;
|
|
58
43
|
};
|
|
59
|
-
|
|
60
44
|
return data;
|
|
61
45
|
}
|
|
62
|
-
|
|
63
46
|
function _getParams() {
|
|
64
47
|
const data = require("./get-params");
|
|
65
|
-
|
|
66
48
|
_getParams = function () {
|
|
67
49
|
return data;
|
|
68
50
|
};
|
|
69
|
-
|
|
70
51
|
return data;
|
|
71
52
|
}
|
|
72
|
-
|
|
73
53
|
function _jsdocToDocSchema() {
|
|
74
54
|
const data = require("./jsdoc-to-doc-schema");
|
|
75
|
-
|
|
76
55
|
_jsdocToDocSchema = function () {
|
|
77
56
|
return data;
|
|
78
57
|
};
|
|
79
|
-
|
|
80
58
|
return data;
|
|
81
59
|
}
|
|
82
|
-
|
|
83
60
|
async function typeElementToSchema(node, context) {
|
|
84
61
|
switch (node.kind) {
|
|
85
62
|
case _typescript().SyntaxKind.MethodSignature:
|
|
86
63
|
return (0, _toFunctionLikeSchema().toFunctionLikeSchema)(node, context);
|
|
87
|
-
|
|
88
64
|
case _typescript().SyntaxKind.ConstructSignature:
|
|
89
65
|
return (0, _toFunctionLikeSchema().toFunctionLikeSchema)(node, context, 'new');
|
|
90
|
-
|
|
91
66
|
case _typescript().SyntaxKind.CallSignature:
|
|
92
67
|
return callSignature(node, context);
|
|
93
|
-
|
|
94
68
|
case _typescript().SyntaxKind.PropertySignature:
|
|
95
69
|
return propertySignature(node, context);
|
|
96
|
-
|
|
97
70
|
case _typescript().SyntaxKind.IndexSignature:
|
|
98
71
|
return indexSignature(node, context);
|
|
99
|
-
|
|
100
72
|
case _typescript().SyntaxKind.GetAccessor:
|
|
101
73
|
return getAccessor(node, context);
|
|
102
|
-
|
|
103
74
|
case _typescript().SyntaxKind.SetAccessor:
|
|
104
75
|
return setAccessor(node, context);
|
|
105
|
-
|
|
106
76
|
default:
|
|
107
77
|
throw new Error(`typeElementToSchema expect type-element node. got ${node.kind}`);
|
|
108
78
|
}
|
|
109
79
|
}
|
|
110
|
-
|
|
111
80
|
async function propertySignature(node, context) {
|
|
112
81
|
var _info$body;
|
|
113
|
-
|
|
114
82
|
const name = node.name.getText();
|
|
115
83
|
const info = (0, _typescript().isComputedPropertyName)(node.name) ? undefined : await context.getQuickInfo(node.name);
|
|
116
84
|
const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
|
|
@@ -120,29 +88,24 @@ async function propertySignature(node, context) {
|
|
|
120
88
|
const doc = await (0, _jsdocToDocSchema().jsDocToDocSchema)(node, context);
|
|
121
89
|
return new (_semanticsEntities().VariableLikeSchema)(context.getLocation(node), name, displaySig, type, isOptional, doc);
|
|
122
90
|
}
|
|
123
|
-
|
|
124
91
|
async function indexSignature(node, context) {
|
|
125
92
|
const params = await (0, _getParams().getParams)(node.parameters, context);
|
|
126
93
|
const type = await (0, _typeNodeToSchema().typeNodeToSchema)(node.type, context);
|
|
127
94
|
return new (_semanticsEntities().IndexSignatureSchema)(context.getLocation(node), params, type);
|
|
128
95
|
}
|
|
129
|
-
|
|
130
96
|
async function getAccessor(node, context) {
|
|
131
97
|
var _info$body2;
|
|
132
|
-
|
|
133
98
|
const info = await context.getQuickInfo(node.name);
|
|
134
99
|
const displaySig = (info === null || info === void 0 ? void 0 : (_info$body2 = info.body) === null || _info$body2 === void 0 ? void 0 : _info$body2.displayString) || '';
|
|
135
100
|
const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
|
|
136
101
|
const type = await context.resolveType(node, typeStr);
|
|
137
102
|
return new (_semanticsEntities().GetAccessorSchema)(context.getLocation(node), node.name.getText(), type, displaySig);
|
|
138
103
|
}
|
|
139
|
-
|
|
140
104
|
async function setAccessor(node, context) {
|
|
141
105
|
const params = await (0, _getParams().getParams)(node.parameters, context);
|
|
142
106
|
const displaySig = await context.getQuickInfoDisplayString(node.name);
|
|
143
107
|
return new (_semanticsEntities().SetAccessorSchema)(context.getLocation(node), node.name.getText(), params[0], displaySig);
|
|
144
108
|
}
|
|
145
|
-
|
|
146
109
|
async function callSignature(node, context) {
|
|
147
110
|
return (0, _toFunctionLikeSchema().toFunctionLikeSchema)(node, context);
|
|
148
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["typeElementToSchema","node","context","kind","SyntaxKind","MethodSignature","toFunctionLikeSchema","ConstructSignature","CallSignature","callSignature","PropertySignature","propertySignature","IndexSignature","indexSignature","GetAccessor","getAccessor","SetAccessor","setAccessor","Error","name","getText","info","isComputedPropertyName","undefined","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","isOptional","Boolean","questionToken","doc","jsDocToDocSchema","VariableLikeSchema","getLocation","params","getParams","parameters","typeNodeToSchema","IndexSignatureSchema","GetAccessorSchema","getQuickInfoDisplayString","SetAccessorSchema"],"sources":["type-element-to-schema.ts"],"sourcesContent":["import ts, {\n SyntaxKind,\n TypeElement,\n MethodSignature,\n isComputedPropertyName,\n IndexSignatureDeclaration,\n GetAccessorDeclaration,\n SetAccessorDeclaration,\n ConstructSignatureDeclaration,\n CallSignatureDeclaration,\n} from 'typescript';\nimport {\n GetAccessorSchema,\n IndexSignatureSchema,\n SchemaNode,\n SetAccessorSchema,\n VariableLikeSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { toFunctionLikeSchema } from './to-function-like-schema';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './parse-type-from-quick-info';\nimport { typeNodeToSchema } from './type-node-to-schema';\nimport { getParams } from './get-params';\nimport { jsDocToDocSchema } from './jsdoc-to-doc-schema';\n\nexport async function typeElementToSchema(node: TypeElement, context: SchemaExtractorContext): Promise<SchemaNode> {\n switch (node.kind) {\n case SyntaxKind.MethodSignature:\n return toFunctionLikeSchema(node as MethodSignature, context);\n case SyntaxKind.ConstructSignature:\n return toFunctionLikeSchema(node as ConstructSignatureDeclaration, context, 'new');\n case SyntaxKind.CallSignature:\n return callSignature(node as CallSignatureDeclaration, context);\n case SyntaxKind.PropertySignature:\n return propertySignature(node as ts.PropertySignature, context);\n case SyntaxKind.IndexSignature:\n return indexSignature(node as IndexSignatureDeclaration, context);\n case SyntaxKind.GetAccessor:\n return getAccessor(node as GetAccessorDeclaration, context);\n case SyntaxKind.SetAccessor:\n return setAccessor(node as SetAccessorDeclaration, context);\n default:\n throw new Error(`typeElementToSchema expect type-element node. got ${node.kind}`);\n }\n}\n\nasync function propertySignature(node: ts.PropertySignature, context: SchemaExtractorContext) {\n const name = node.name.getText();\n const info = isComputedPropertyName(node.name) ? undefined : await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || '';\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n const isOptional = Boolean(node.questionToken);\n const doc = await jsDocToDocSchema(node, context);\n return new VariableLikeSchema(context.getLocation(node), name, displaySig, type, isOptional, doc);\n}\n\nexport async function indexSignature(node: IndexSignatureDeclaration, context: SchemaExtractorContext) {\n const params = await getParams(node.parameters, context);\n const type = await typeNodeToSchema(node.type, context);\n return new IndexSignatureSchema(context.getLocation(node), params, type);\n}\n\nexport async function getAccessor(node: GetAccessorDeclaration, context: SchemaExtractorContext) {\n const info = await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || '';\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n return new GetAccessorSchema(context.getLocation(node), node.name.getText(), type, displaySig);\n}\n\nexport async function setAccessor(node: SetAccessorDeclaration, context: SchemaExtractorContext) {\n const params = await getParams(node.parameters, context);\n const displaySig = await context.getQuickInfoDisplayString(node.name);\n return new SetAccessorSchema(context.getLocation(node), node.name.getText(), params[0], displaySig);\n}\n\nasync function callSignature(node: CallSignatureDeclaration, context: SchemaExtractorContext) {\n return toFunctionLikeSchema(node, context);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["typeElementToSchema","node","context","kind","SyntaxKind","MethodSignature","toFunctionLikeSchema","ConstructSignature","CallSignature","callSignature","PropertySignature","propertySignature","IndexSignature","indexSignature","GetAccessor","getAccessor","SetAccessor","setAccessor","Error","name","getText","info","isComputedPropertyName","undefined","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","isOptional","Boolean","questionToken","doc","jsDocToDocSchema","VariableLikeSchema","getLocation","params","getParams","parameters","typeNodeToSchema","IndexSignatureSchema","GetAccessorSchema","getQuickInfoDisplayString","SetAccessorSchema"],"sources":["type-element-to-schema.ts"],"sourcesContent":["import ts, {\n SyntaxKind,\n TypeElement,\n MethodSignature,\n isComputedPropertyName,\n IndexSignatureDeclaration,\n GetAccessorDeclaration,\n SetAccessorDeclaration,\n ConstructSignatureDeclaration,\n CallSignatureDeclaration,\n} from 'typescript';\nimport {\n GetAccessorSchema,\n IndexSignatureSchema,\n SchemaNode,\n SetAccessorSchema,\n VariableLikeSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { toFunctionLikeSchema } from './to-function-like-schema';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './parse-type-from-quick-info';\nimport { typeNodeToSchema } from './type-node-to-schema';\nimport { getParams } from './get-params';\nimport { jsDocToDocSchema } from './jsdoc-to-doc-schema';\n\nexport async function typeElementToSchema(node: TypeElement, context: SchemaExtractorContext): Promise<SchemaNode> {\n switch (node.kind) {\n case SyntaxKind.MethodSignature:\n return toFunctionLikeSchema(node as MethodSignature, context);\n case SyntaxKind.ConstructSignature:\n return toFunctionLikeSchema(node as ConstructSignatureDeclaration, context, 'new');\n case SyntaxKind.CallSignature:\n return callSignature(node as CallSignatureDeclaration, context);\n case SyntaxKind.PropertySignature:\n return propertySignature(node as ts.PropertySignature, context);\n case SyntaxKind.IndexSignature:\n return indexSignature(node as IndexSignatureDeclaration, context);\n case SyntaxKind.GetAccessor:\n return getAccessor(node as GetAccessorDeclaration, context);\n case SyntaxKind.SetAccessor:\n return setAccessor(node as SetAccessorDeclaration, context);\n default:\n throw new Error(`typeElementToSchema expect type-element node. got ${node.kind}`);\n }\n}\n\nasync function propertySignature(node: ts.PropertySignature, context: SchemaExtractorContext) {\n const name = node.name.getText();\n const info = isComputedPropertyName(node.name) ? undefined : await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || '';\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n const isOptional = Boolean(node.questionToken);\n const doc = await jsDocToDocSchema(node, context);\n return new VariableLikeSchema(context.getLocation(node), name, displaySig, type, isOptional, doc);\n}\n\nexport async function indexSignature(node: IndexSignatureDeclaration, context: SchemaExtractorContext) {\n const params = await getParams(node.parameters, context);\n const type = await typeNodeToSchema(node.type, context);\n return new IndexSignatureSchema(context.getLocation(node), params, type);\n}\n\nexport async function getAccessor(node: GetAccessorDeclaration, context: SchemaExtractorContext) {\n const info = await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || '';\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n return new GetAccessorSchema(context.getLocation(node), node.name.getText(), type, displaySig);\n}\n\nexport async function setAccessor(node: SetAccessorDeclaration, context: SchemaExtractorContext) {\n const params = await getParams(node.parameters, context);\n const displaySig = await context.getQuickInfoDisplayString(node.name);\n return new SetAccessorSchema(context.getLocation(node), node.name.getText(), params[0], displaySig);\n}\n\nasync function callSignature(node: CallSignatureDeclaration, context: SchemaExtractorContext) {\n return toFunctionLikeSchema(node, context);\n}\n"],"mappings":"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"}
|
|
@@ -1,135 +1,95 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.promise.js");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.typeNodeToSchema = typeNodeToSchema;
|
|
11
|
-
|
|
12
9
|
function _typescript() {
|
|
13
10
|
const data = require("typescript");
|
|
14
|
-
|
|
15
11
|
_typescript = function () {
|
|
16
12
|
return data;
|
|
17
13
|
};
|
|
18
|
-
|
|
19
14
|
return data;
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
function _semanticsEntities() {
|
|
23
17
|
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
24
|
-
|
|
25
18
|
_semanticsEntities = function () {
|
|
26
19
|
return data;
|
|
27
20
|
};
|
|
28
|
-
|
|
29
21
|
return data;
|
|
30
22
|
}
|
|
31
|
-
|
|
32
23
|
function _pMapSeries() {
|
|
33
24
|
const data = _interopRequireDefault(require("p-map-series"));
|
|
34
|
-
|
|
35
25
|
_pMapSeries = function () {
|
|
36
26
|
return data;
|
|
37
27
|
};
|
|
38
|
-
|
|
39
28
|
return data;
|
|
40
29
|
}
|
|
41
|
-
|
|
42
30
|
function _getParams() {
|
|
43
31
|
const data = require("./get-params");
|
|
44
|
-
|
|
45
32
|
_getParams = function () {
|
|
46
33
|
return data;
|
|
47
34
|
};
|
|
48
|
-
|
|
49
35
|
return data;
|
|
50
36
|
}
|
|
51
|
-
|
|
52
37
|
function _typeElementToSchema() {
|
|
53
38
|
const data = require("./type-element-to-schema");
|
|
54
|
-
|
|
55
39
|
_typeElementToSchema = function () {
|
|
56
40
|
return data;
|
|
57
41
|
};
|
|
58
|
-
|
|
59
42
|
return data;
|
|
60
43
|
}
|
|
61
|
-
|
|
62
44
|
function _jsdocToDocSchema() {
|
|
63
45
|
const data = require("./jsdoc-to-doc-schema");
|
|
64
|
-
|
|
65
46
|
_jsdocToDocSchema = function () {
|
|
66
47
|
return data;
|
|
67
48
|
};
|
|
68
|
-
|
|
69
49
|
return data;
|
|
70
50
|
}
|
|
71
|
-
|
|
72
51
|
// eslint-disable-next-line complexity
|
|
73
52
|
async function typeNodeToSchema(node, context) {
|
|
74
53
|
const location = context.getLocation(node);
|
|
75
|
-
|
|
76
54
|
if (isKeywordType(node)) {
|
|
77
55
|
return new (_semanticsEntities().KeywordTypeSchema)(location, node.getText());
|
|
78
56
|
}
|
|
79
|
-
|
|
80
57
|
switch (node.kind) {
|
|
81
58
|
case _typescript().SyntaxKind.IntersectionType:
|
|
82
59
|
return intersectionType(node, context);
|
|
83
|
-
|
|
84
60
|
case _typescript().SyntaxKind.UnionType:
|
|
85
61
|
return unionType(node, context);
|
|
86
|
-
|
|
87
62
|
case _typescript().SyntaxKind.TypeReference:
|
|
88
63
|
return typeReference(node, context);
|
|
89
|
-
|
|
90
64
|
case _typescript().SyntaxKind.TypeLiteral:
|
|
91
65
|
return typeLiteral(node, context);
|
|
92
|
-
|
|
93
66
|
case _typescript().SyntaxKind.LiteralType:
|
|
94
67
|
// e.g. string/boolean
|
|
95
68
|
return new (_semanticsEntities().LiteralTypeSchema)(location, node.getText());
|
|
96
|
-
|
|
97
69
|
case _typescript().SyntaxKind.FunctionType:
|
|
98
70
|
return functionType(node, context);
|
|
99
|
-
|
|
100
71
|
case _typescript().SyntaxKind.TypeQuery:
|
|
101
72
|
return typeQuery(node, context);
|
|
102
|
-
|
|
103
73
|
case _typescript().SyntaxKind.ArrayType:
|
|
104
74
|
return arrayType(node, context);
|
|
105
|
-
|
|
106
75
|
case _typescript().SyntaxKind.TypeOperator:
|
|
107
76
|
return typeOperator(node, context);
|
|
108
|
-
|
|
109
77
|
case _typescript().SyntaxKind.TupleType:
|
|
110
78
|
return tupleType(node, context);
|
|
111
|
-
|
|
112
79
|
case _typescript().SyntaxKind.ParenthesizedType:
|
|
113
80
|
return parenthesizedType(node, context);
|
|
114
|
-
|
|
115
81
|
case _typescript().SyntaxKind.TypePredicate:
|
|
116
82
|
return typePredicate(node, context);
|
|
117
|
-
|
|
118
83
|
case _typescript().SyntaxKind.IndexedAccessType:
|
|
119
84
|
return indexedAccessType(node, context);
|
|
120
|
-
|
|
121
85
|
case _typescript().SyntaxKind.TemplateLiteralTypeSpan:
|
|
122
86
|
return templateLiteralTypeSpan(node, context);
|
|
123
|
-
|
|
124
87
|
case _typescript().SyntaxKind.TemplateLiteralType:
|
|
125
88
|
return templateLiteralType(node, context);
|
|
126
|
-
|
|
127
89
|
case _typescript().SyntaxKind.ThisType:
|
|
128
90
|
return thisType(node, context);
|
|
129
|
-
|
|
130
91
|
case _typescript().SyntaxKind.ConditionalType:
|
|
131
92
|
return conditionalType(node, context);
|
|
132
|
-
|
|
133
93
|
case _typescript().SyntaxKind.ConstructorType:
|
|
134
94
|
case _typescript().SyntaxKind.NamedTupleMember:
|
|
135
95
|
case _typescript().SyntaxKind.OptionalType:
|
|
@@ -151,17 +111,15 @@ async function typeNodeToSchema(node, context) {
|
|
|
151
111
|
case _typescript().SyntaxKind.JSDocTypeLiteral:
|
|
152
112
|
throw new Error(`TypeNode ${node.kind} (probably ${_typescript().SyntaxKind[node.kind]}) was not implemented yet.
|
|
153
113
|
context: ${node.getText()}`);
|
|
154
|
-
|
|
155
114
|
default:
|
|
156
115
|
throw new Error(`Node ${node.kind} (probably ${_typescript().SyntaxKind[node.kind]}) is not a TypeNode.
|
|
157
116
|
context: ${node.getText()}`);
|
|
158
117
|
}
|
|
159
118
|
}
|
|
119
|
+
|
|
160
120
|
/**
|
|
161
121
|
* whether it's kind of `ts.KeywordTypeSyntaxKind`
|
|
162
122
|
*/
|
|
163
|
-
|
|
164
|
-
|
|
165
123
|
function isKeywordType(node) {
|
|
166
124
|
switch (node.kind) {
|
|
167
125
|
case _typescript().SyntaxKind.AnyKeyword:
|
|
@@ -177,12 +135,10 @@ function isKeywordType(node) {
|
|
|
177
135
|
case _typescript().SyntaxKind.UnknownKeyword:
|
|
178
136
|
case _typescript().SyntaxKind.VoidKeyword:
|
|
179
137
|
return true;
|
|
180
|
-
|
|
181
138
|
default:
|
|
182
139
|
return false;
|
|
183
140
|
}
|
|
184
141
|
}
|
|
185
|
-
|
|
186
142
|
async function intersectionType(node, context) {
|
|
187
143
|
const types = await (0, _pMapSeries().default)(node.types, async type => {
|
|
188
144
|
const typeSchema = await typeNodeToSchema(type, context);
|
|
@@ -191,7 +147,6 @@ async function intersectionType(node, context) {
|
|
|
191
147
|
const location = context.getLocation(node);
|
|
192
148
|
return new (_semanticsEntities().TypeIntersectionSchema)(location, types);
|
|
193
149
|
}
|
|
194
|
-
|
|
195
150
|
async function unionType(node, context) {
|
|
196
151
|
const types = await (0, _pMapSeries().default)(node.types, async type => {
|
|
197
152
|
const typeSchema = await typeNodeToSchema(type, context);
|
|
@@ -200,17 +155,17 @@ async function unionType(node, context) {
|
|
|
200
155
|
const location = context.getLocation(node);
|
|
201
156
|
return new (_semanticsEntities().TypeUnionSchema)(location, types);
|
|
202
157
|
}
|
|
158
|
+
|
|
203
159
|
/**
|
|
204
160
|
* not to be confused with "LiteralType", which is string/boolean/null.
|
|
205
161
|
* this "TypeLiteral" is an object with properties, such as: `{ a: string; b: number }`, similar to Interface.
|
|
206
162
|
*/
|
|
207
|
-
|
|
208
|
-
|
|
209
163
|
async function typeLiteral(node, context) {
|
|
210
164
|
const members = await (0, _pMapSeries().default)(node.members, member => (0, _typeElementToSchema().typeElementToSchema)(member, context));
|
|
211
165
|
const location = context.getLocation(node);
|
|
212
166
|
return new (_semanticsEntities().TypeLiteralSchema)(location, members);
|
|
213
167
|
}
|
|
168
|
+
|
|
214
169
|
/**
|
|
215
170
|
* In the following example, `AriaButtonProps` is a type reference
|
|
216
171
|
* ```ts
|
|
@@ -218,23 +173,17 @@ async function typeLiteral(node, context) {
|
|
|
218
173
|
* export type ButtonProps = AriaButtonProps & { a: string };
|
|
219
174
|
* ```
|
|
220
175
|
*/
|
|
221
|
-
|
|
222
|
-
|
|
223
176
|
async function typeReference(node, context) {
|
|
224
177
|
const name = node.typeName.getText();
|
|
225
178
|
const type = await context.resolveType(node, name, false);
|
|
226
|
-
|
|
227
179
|
if (node.typeArguments && type instanceof _semanticsEntities().TypeRefSchema) {
|
|
228
180
|
const args = await (0, _pMapSeries().default)(node.typeArguments, arg => typeNodeToSchema(arg, context));
|
|
229
181
|
type.typeArgs = args;
|
|
230
182
|
}
|
|
231
|
-
|
|
232
183
|
return type;
|
|
233
184
|
}
|
|
234
|
-
|
|
235
185
|
async function functionType(node, context) {
|
|
236
186
|
var _node$name, _node$modifiers;
|
|
237
|
-
|
|
238
187
|
const name = ((_node$name = node.name) === null || _node$name === void 0 ? void 0 : _node$name.getText()) || '';
|
|
239
188
|
const params = await (0, _getParams().getParams)(node.parameters, context);
|
|
240
189
|
const returnType = await typeNodeToSchema(node.type, context);
|
|
@@ -243,50 +192,42 @@ async function functionType(node, context) {
|
|
|
243
192
|
const doc = await (0, _jsdocToDocSchema().jsDocToDocSchema)(node, context);
|
|
244
193
|
return new (_semanticsEntities().FunctionLikeSchema)(location, name, params, returnType, '', modifiers, doc);
|
|
245
194
|
}
|
|
195
|
+
|
|
246
196
|
/**
|
|
247
197
|
* e.g. `typeof Foo`
|
|
248
198
|
*/
|
|
249
|
-
|
|
250
|
-
|
|
251
199
|
async function typeQuery(node, context) {
|
|
252
200
|
const displaySig = await context.getQuickInfoDisplayString(node.exprName);
|
|
253
201
|
const type = await context.resolveType(node.exprName, node.exprName.getText(), false);
|
|
254
202
|
const location = context.getLocation(node);
|
|
255
203
|
return new (_semanticsEntities().TypeQuerySchema)(location, type, displaySig);
|
|
256
204
|
}
|
|
257
|
-
|
|
258
205
|
async function arrayType(node, context) {
|
|
259
206
|
const type = await typeNodeToSchema(node.elementType, context);
|
|
260
207
|
const location = context.getLocation(node);
|
|
261
208
|
return new (_semanticsEntities().TypeArraySchema)(location, type);
|
|
262
209
|
}
|
|
210
|
+
|
|
263
211
|
/**
|
|
264
212
|
* e.g. keyof typeof Foo
|
|
265
213
|
*/
|
|
266
|
-
|
|
267
|
-
|
|
268
214
|
async function typeOperator(node, context) {
|
|
269
215
|
const operatorName = getOperatorName(node.operator);
|
|
270
216
|
const type = await typeNodeToSchema(node.type, context);
|
|
271
217
|
return new (_semanticsEntities().TypeOperatorSchema)(context.getLocation(node), operatorName, type);
|
|
272
218
|
}
|
|
273
|
-
|
|
274
219
|
function getOperatorName(operator) {
|
|
275
220
|
switch (operator) {
|
|
276
221
|
case _typescript().SyntaxKind.KeyOfKeyword:
|
|
277
222
|
return 'keyof';
|
|
278
|
-
|
|
279
223
|
case _typescript().SyntaxKind.UniqueKeyword:
|
|
280
224
|
return 'unique';
|
|
281
|
-
|
|
282
225
|
case _typescript().SyntaxKind.ReadonlyKeyword:
|
|
283
226
|
return 'readonly';
|
|
284
|
-
|
|
285
227
|
default:
|
|
286
228
|
throw new Error(`getOperatorName: unable to find operator name for ${operator}`);
|
|
287
229
|
}
|
|
288
230
|
}
|
|
289
|
-
|
|
290
231
|
async function tupleType(node, context) {
|
|
291
232
|
const elements = await (0, _pMapSeries().default)(node.elements, async elem => {
|
|
292
233
|
const typeSchema = await typeNodeToSchema(elem, context);
|
|
@@ -294,41 +235,34 @@ async function tupleType(node, context) {
|
|
|
294
235
|
});
|
|
295
236
|
return new (_semanticsEntities().TupleTypeSchema)(context.getLocation(node), elements);
|
|
296
237
|
}
|
|
297
|
-
|
|
298
238
|
async function parenthesizedType(node, context) {
|
|
299
239
|
const type = await typeNodeToSchema(node.type, context);
|
|
300
240
|
return new (_semanticsEntities().ParenthesizedTypeSchema)(context.getLocation(node), type);
|
|
301
241
|
}
|
|
302
|
-
|
|
303
242
|
async function typePredicate(node, context) {
|
|
304
243
|
const parameterName = (0, _typescript().isIdentifier)(node.parameterName) ? node.parameterName.getText() : 'this';
|
|
305
244
|
const type = node.type ? await typeNodeToSchema(node.type, context) : undefined;
|
|
306
245
|
const hasAssertsModifier = Boolean(node.assertsModifier);
|
|
307
246
|
return new (_semanticsEntities().TypePredicateSchema)(context.getLocation(node), parameterName, type, hasAssertsModifier);
|
|
308
247
|
}
|
|
309
|
-
|
|
310
248
|
async function indexedAccessType(node, context) {
|
|
311
249
|
const objectType = await typeNodeToSchema(node.objectType, context);
|
|
312
250
|
const indexType = await typeNodeToSchema(node.indexType, context);
|
|
313
251
|
return new (_semanticsEntities().IndexedAccessSchema)(context.getLocation(node), objectType, indexType);
|
|
314
252
|
}
|
|
315
|
-
|
|
316
253
|
async function templateLiteralType(node, context) {
|
|
317
254
|
const templateSpans = await (0, _pMapSeries().default)(node.templateSpans, span => templateLiteralTypeSpan(span, context));
|
|
318
255
|
const head = node.head.text;
|
|
319
256
|
return new (_semanticsEntities().TemplateLiteralTypeSchema)(context.getLocation(node), head, templateSpans);
|
|
320
257
|
}
|
|
321
|
-
|
|
322
258
|
async function templateLiteralTypeSpan(node, context) {
|
|
323
259
|
const type = await typeNodeToSchema(node.type, context);
|
|
324
260
|
const literal = node.literal.text;
|
|
325
261
|
return new (_semanticsEntities().TemplateLiteralTypeSpanSchema)(context.getLocation(node), literal, type);
|
|
326
262
|
}
|
|
327
|
-
|
|
328
263
|
async function thisType(node, context) {
|
|
329
264
|
return new (_semanticsEntities().ThisTypeSchema)(context.getLocation(node));
|
|
330
265
|
}
|
|
331
|
-
|
|
332
266
|
async function conditionalType(node, context) {
|
|
333
267
|
const checkType = await typeNodeToSchema(node.checkType, context);
|
|
334
268
|
const extendsType = await typeNodeToSchema(node.extendsType, context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["typeNodeToSchema","node","context","location","getLocation","isKeywordType","KeywordTypeSchema","getText","kind","SyntaxKind","IntersectionType","intersectionType","UnionType","unionType","TypeReference","typeReference","TypeLiteral","typeLiteral","LiteralType","LiteralTypeSchema","FunctionType","functionType","TypeQuery","typeQuery","ArrayType","arrayType","TypeOperator","typeOperator","TupleType","tupleType","ParenthesizedType","parenthesizedType","TypePredicate","typePredicate","IndexedAccessType","indexedAccessType","TemplateLiteralTypeSpan","templateLiteralTypeSpan","TemplateLiteralType","templateLiteralType","ThisType","thisType","ConditionalType","conditionalType","ConstructorType","NamedTupleMember","OptionalType","RestType","InferType","MappedType","ImportType","ExpressionWithTypeArguments","JSDocTypeExpression","JSDocAllType","JSDocUnknownType","JSDocNonNullableType","JSDocNullableType","JSDocOptionalType","JSDocFunctionType","JSDocVariadicType","JSDocNamepathType","JSDocSignature","JSDocTypeLiteral","Error","AnyKeyword","BigIntKeyword","BooleanKeyword","IntrinsicKeyword","NeverKeyword","NumberKeyword","ObjectKeyword","StringKeyword","SymbolKeyword","UndefinedKeyword","UnknownKeyword","VoidKeyword","types","pMapSeries","type","typeSchema","TypeIntersectionSchema","TypeUnionSchema","members","member","typeElementToSchema","TypeLiteralSchema","name","typeName","resolveType","typeArguments","TypeRefSchema","args","arg","typeArgs","params","getParams","parameters","returnType","modifiers","map","modifier","doc","jsDocToDocSchema","FunctionLikeSchema","displaySig","getQuickInfoDisplayString","exprName","TypeQuerySchema","elementType","TypeArraySchema","operatorName","getOperatorName","operator","TypeOperatorSchema","KeyOfKeyword","UniqueKeyword","ReadonlyKeyword","elements","elem","TupleTypeSchema","ParenthesizedTypeSchema","parameterName","isIdentifier","undefined","hasAssertsModifier","Boolean","assertsModifier","TypePredicateSchema","objectType","indexType","IndexedAccessSchema","templateSpans","span","head","text","TemplateLiteralTypeSchema","literal","TemplateLiteralTypeSpanSchema","ThisTypeSchema","checkType","extendsType","trueType","falseType","ConditionalTypeSchema"],"sources":["type-node-to-schema.ts"],"sourcesContent":["import {\n TypeNode,\n SyntaxKind,\n KeywordTypeNode,\n FunctionTypeNode,\n TypeQueryNode,\n TypeReferenceNode,\n ArrayTypeNode,\n TypeOperatorNode,\n TupleTypeNode,\n IntersectionTypeNode,\n UnionTypeNode,\n TypeLiteralNode,\n ParenthesizedTypeNode,\n TypePredicateNode,\n isIdentifier,\n IndexedAccessTypeNode,\n TemplateLiteralTypeNode,\n TemplateLiteralTypeSpan,\n ThisTypeNode,\n ConditionalTypeNode,\n} from 'typescript';\nimport {\n SchemaNode,\n TypeRefSchema,\n TypeIntersectionSchema,\n TypeUnionSchema,\n TypeLiteralSchema,\n TypeQuerySchema,\n LiteralTypeSchema,\n KeywordTypeSchema,\n TypeArraySchema,\n TypeOperatorSchema,\n TupleTypeSchema,\n FunctionLikeSchema,\n ParenthesizedTypeSchema,\n TypePredicateSchema,\n IndexedAccessSchema,\n TemplateLiteralTypeSpanSchema,\n TemplateLiteralTypeSchema,\n ThisTypeSchema,\n Modifier,\n ConditionalTypeSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\nimport { getParams } from './get-params';\nimport { typeElementToSchema } from './type-element-to-schema';\nimport { jsDocToDocSchema } from './jsdoc-to-doc-schema';\n\n// eslint-disable-next-line complexity\nexport async function typeNodeToSchema(node: TypeNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const location = context.getLocation(node);\n if (isKeywordType(node)) {\n return new KeywordTypeSchema(location, node.getText());\n }\n switch (node.kind) {\n case SyntaxKind.IntersectionType:\n return intersectionType(node as IntersectionTypeNode, context);\n case SyntaxKind.UnionType:\n return unionType(node as UnionTypeNode, context);\n case SyntaxKind.TypeReference:\n return typeReference(node as TypeReferenceNode, context);\n case SyntaxKind.TypeLiteral:\n return typeLiteral(node as TypeLiteralNode, context);\n case SyntaxKind.LiteralType: // e.g. string/boolean\n return new LiteralTypeSchema(location, node.getText());\n case SyntaxKind.FunctionType:\n return functionType(node as FunctionTypeNode, context);\n case SyntaxKind.TypeQuery:\n return typeQuery(node as TypeQueryNode, context);\n case SyntaxKind.ArrayType:\n return arrayType(node as ArrayTypeNode, context);\n case SyntaxKind.TypeOperator:\n return typeOperator(node as TypeOperatorNode, context);\n case SyntaxKind.TupleType:\n return tupleType(node as TupleTypeNode, context);\n case SyntaxKind.ParenthesizedType:\n return parenthesizedType(node as ParenthesizedTypeNode, context);\n case SyntaxKind.TypePredicate:\n return typePredicate(node as TypePredicateNode, context);\n case SyntaxKind.IndexedAccessType:\n return indexedAccessType(node as IndexedAccessTypeNode, context);\n case SyntaxKind.TemplateLiteralTypeSpan:\n return templateLiteralTypeSpan(node as TemplateLiteralTypeSpan, context);\n case SyntaxKind.TemplateLiteralType:\n return templateLiteralType(node as TemplateLiteralTypeNode, context);\n case SyntaxKind.ThisType:\n return thisType(node as ThisTypeNode, context);\n case SyntaxKind.ConditionalType:\n return conditionalType(node as ConditionalTypeNode, context);\n case SyntaxKind.ConstructorType:\n case SyntaxKind.NamedTupleMember:\n case SyntaxKind.OptionalType:\n case SyntaxKind.RestType:\n case SyntaxKind.InferType:\n case SyntaxKind.MappedType:\n case SyntaxKind.ImportType:\n case SyntaxKind.ExpressionWithTypeArguments:\n case SyntaxKind.JSDocTypeExpression:\n case SyntaxKind.JSDocAllType:\n case SyntaxKind.JSDocUnknownType:\n case SyntaxKind.JSDocNonNullableType:\n case SyntaxKind.JSDocNullableType:\n case SyntaxKind.JSDocOptionalType:\n case SyntaxKind.JSDocFunctionType:\n case SyntaxKind.JSDocVariadicType:\n case SyntaxKind.JSDocNamepathType:\n case SyntaxKind.JSDocSignature:\n case SyntaxKind.JSDocTypeLiteral:\n throw new Error(`TypeNode ${node.kind} (probably ${SyntaxKind[node.kind]}) was not implemented yet.\ncontext: ${node.getText()}`);\n default:\n throw new Error(`Node ${node.kind} (probably ${SyntaxKind[node.kind]}) is not a TypeNode.\ncontext: ${node.getText()}`);\n }\n}\n\n/**\n * whether it's kind of `ts.KeywordTypeSyntaxKind`\n */\nfunction isKeywordType(node: TypeNode): node is KeywordTypeNode {\n switch (node.kind) {\n case SyntaxKind.AnyKeyword:\n case SyntaxKind.BigIntKeyword:\n case SyntaxKind.BooleanKeyword:\n case SyntaxKind.IntrinsicKeyword:\n case SyntaxKind.NeverKeyword:\n case SyntaxKind.NumberKeyword:\n case SyntaxKind.ObjectKeyword:\n case SyntaxKind.StringKeyword:\n case SyntaxKind.SymbolKeyword:\n case SyntaxKind.UndefinedKeyword:\n case SyntaxKind.UnknownKeyword:\n case SyntaxKind.VoidKeyword:\n return true;\n default:\n return false;\n }\n}\n\nasync function intersectionType(node: IntersectionTypeNode, context: SchemaExtractorContext) {\n const types = await pMapSeries(node.types, async (type) => {\n const typeSchema = await typeNodeToSchema(type, context);\n return typeSchema;\n });\n const location = context.getLocation(node);\n return new TypeIntersectionSchema(location, types);\n}\n\nasync function unionType(node: UnionTypeNode, context: SchemaExtractorContext) {\n const types = await pMapSeries(node.types, async (type) => {\n const typeSchema = await typeNodeToSchema(type, context);\n return typeSchema;\n });\n const location = context.getLocation(node);\n return new TypeUnionSchema(location, types);\n}\n\n/**\n * not to be confused with \"LiteralType\", which is string/boolean/null.\n * this \"TypeLiteral\" is an object with properties, such as: `{ a: string; b: number }`, similar to Interface.\n */\nasync function typeLiteral(node: TypeLiteralNode, context: SchemaExtractorContext) {\n const members = await pMapSeries(node.members, (member) => typeElementToSchema(member, context));\n const location = context.getLocation(node);\n return new TypeLiteralSchema(location, members);\n}\n\n/**\n * In the following example, `AriaButtonProps` is a type reference\n * ```ts\n * import type { AriaButtonProps } from '@react-types/button';\n * export type ButtonProps = AriaButtonProps & { a: string };\n * ```\n */\nasync function typeReference(node: TypeReferenceNode, context: SchemaExtractorContext) {\n const name = node.typeName.getText();\n const type = await context.resolveType(node, name, false);\n if (node.typeArguments && type instanceof TypeRefSchema) {\n const args = await pMapSeries(node.typeArguments, (arg) => typeNodeToSchema(arg, context));\n type.typeArgs = args;\n }\n return type;\n}\n\nasync function functionType(node: FunctionTypeNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = node.name?.getText() || '';\n const params = await getParams(node.parameters, context);\n const returnType = await typeNodeToSchema(node.type, context);\n const location = context.getLocation(node);\n const modifiers = node.modifiers?.map((modifier) => modifier.getText()) || [];\n const doc = await jsDocToDocSchema(node, context);\n return new FunctionLikeSchema(location, name, params, returnType, '', modifiers as Modifier[], doc);\n}\n\n/**\n * e.g. `typeof Foo`\n */\nasync function typeQuery(node: TypeQueryNode, context: SchemaExtractorContext) {\n const displaySig = await context.getQuickInfoDisplayString(node.exprName);\n const type = await context.resolveType(node.exprName, node.exprName.getText(), false);\n const location = context.getLocation(node);\n return new TypeQuerySchema(location, type, displaySig);\n}\n\nasync function arrayType(node: ArrayTypeNode, context: SchemaExtractorContext) {\n const type = await typeNodeToSchema(node.elementType, context);\n const location = context.getLocation(node);\n return new TypeArraySchema(location, type);\n}\n\n/**\n * e.g. keyof typeof Foo\n */\nasync function typeOperator(node: TypeOperatorNode, context: SchemaExtractorContext) {\n const operatorName = getOperatorName(node.operator);\n const type = await typeNodeToSchema(node.type, context);\n return new TypeOperatorSchema(context.getLocation(node), operatorName, type);\n}\n\nfunction getOperatorName(operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword) {\n switch (operator) {\n case SyntaxKind.KeyOfKeyword:\n return 'keyof';\n case SyntaxKind.UniqueKeyword:\n return 'unique';\n case SyntaxKind.ReadonlyKeyword:\n return 'readonly';\n default:\n throw new Error(`getOperatorName: unable to find operator name for ${operator}`);\n }\n}\n\nasync function tupleType(node: TupleTypeNode, context: SchemaExtractorContext) {\n const elements = await pMapSeries(node.elements, async (elem) => {\n const typeSchema = await typeNodeToSchema(elem, context);\n return typeSchema;\n });\n return new TupleTypeSchema(context.getLocation(node), elements);\n}\n\nasync function parenthesizedType(node: ParenthesizedTypeNode, context: SchemaExtractorContext) {\n const type = await typeNodeToSchema(node.type, context);\n return new ParenthesizedTypeSchema(context.getLocation(node), type);\n}\n\nasync function typePredicate(node: TypePredicateNode, context: SchemaExtractorContext) {\n const parameterName = isIdentifier(node.parameterName) ? node.parameterName.getText() : 'this';\n const type = node.type ? await typeNodeToSchema(node.type, context) : undefined;\n const hasAssertsModifier = Boolean(node.assertsModifier);\n return new TypePredicateSchema(context.getLocation(node), parameterName, type, hasAssertsModifier);\n}\n\nasync function indexedAccessType(node: IndexedAccessTypeNode, context: SchemaExtractorContext) {\n const objectType = await typeNodeToSchema(node.objectType, context);\n const indexType = await typeNodeToSchema(node.indexType, context);\n return new IndexedAccessSchema(context.getLocation(node), objectType, indexType);\n}\n\nasync function templateLiteralType(node: TemplateLiteralTypeNode, context: SchemaExtractorContext) {\n const templateSpans = await pMapSeries(node.templateSpans, (span) => templateLiteralTypeSpan(span, context));\n const head = node.head.text;\n return new TemplateLiteralTypeSchema(context.getLocation(node), head, templateSpans);\n}\n\nasync function templateLiteralTypeSpan(node: TemplateLiteralTypeSpan, context: SchemaExtractorContext) {\n const type = await typeNodeToSchema(node.type, context);\n const literal = node.literal.text;\n return new TemplateLiteralTypeSpanSchema(context.getLocation(node), literal, type);\n}\n\nasync function thisType(node: ThisTypeNode, context: SchemaExtractorContext) {\n return new ThisTypeSchema(context.getLocation(node));\n}\n\nasync function conditionalType(node: ConditionalTypeNode, context: SchemaExtractorContext) {\n const checkType = await typeNodeToSchema(node.checkType, context);\n const extendsType = await typeNodeToSchema(node.extendsType, context);\n const trueType = await typeNodeToSchema(node.trueType, context);\n const falseType = await typeNodeToSchema(node.falseType, context);\n return new ConditionalTypeSchema(context.getLocation(node), checkType, extendsType, trueType, falseType);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["typeNodeToSchema","node","context","location","getLocation","isKeywordType","KeywordTypeSchema","getText","kind","SyntaxKind","IntersectionType","intersectionType","UnionType","unionType","TypeReference","typeReference","TypeLiteral","typeLiteral","LiteralType","LiteralTypeSchema","FunctionType","functionType","TypeQuery","typeQuery","ArrayType","arrayType","TypeOperator","typeOperator","TupleType","tupleType","ParenthesizedType","parenthesizedType","TypePredicate","typePredicate","IndexedAccessType","indexedAccessType","TemplateLiteralTypeSpan","templateLiteralTypeSpan","TemplateLiteralType","templateLiteralType","ThisType","thisType","ConditionalType","conditionalType","ConstructorType","NamedTupleMember","OptionalType","RestType","InferType","MappedType","ImportType","ExpressionWithTypeArguments","JSDocTypeExpression","JSDocAllType","JSDocUnknownType","JSDocNonNullableType","JSDocNullableType","JSDocOptionalType","JSDocFunctionType","JSDocVariadicType","JSDocNamepathType","JSDocSignature","JSDocTypeLiteral","Error","AnyKeyword","BigIntKeyword","BooleanKeyword","IntrinsicKeyword","NeverKeyword","NumberKeyword","ObjectKeyword","StringKeyword","SymbolKeyword","UndefinedKeyword","UnknownKeyword","VoidKeyword","types","pMapSeries","type","typeSchema","TypeIntersectionSchema","TypeUnionSchema","members","member","typeElementToSchema","TypeLiteralSchema","name","typeName","resolveType","typeArguments","TypeRefSchema","args","arg","typeArgs","params","getParams","parameters","returnType","modifiers","map","modifier","doc","jsDocToDocSchema","FunctionLikeSchema","displaySig","getQuickInfoDisplayString","exprName","TypeQuerySchema","elementType","TypeArraySchema","operatorName","getOperatorName","operator","TypeOperatorSchema","KeyOfKeyword","UniqueKeyword","ReadonlyKeyword","elements","elem","TupleTypeSchema","ParenthesizedTypeSchema","parameterName","isIdentifier","undefined","hasAssertsModifier","Boolean","assertsModifier","TypePredicateSchema","objectType","indexType","IndexedAccessSchema","templateSpans","span","head","text","TemplateLiteralTypeSchema","literal","TemplateLiteralTypeSpanSchema","ThisTypeSchema","checkType","extendsType","trueType","falseType","ConditionalTypeSchema"],"sources":["type-node-to-schema.ts"],"sourcesContent":["import {\n TypeNode,\n SyntaxKind,\n KeywordTypeNode,\n FunctionTypeNode,\n TypeQueryNode,\n TypeReferenceNode,\n ArrayTypeNode,\n TypeOperatorNode,\n TupleTypeNode,\n IntersectionTypeNode,\n UnionTypeNode,\n TypeLiteralNode,\n ParenthesizedTypeNode,\n TypePredicateNode,\n isIdentifier,\n IndexedAccessTypeNode,\n TemplateLiteralTypeNode,\n TemplateLiteralTypeSpan,\n ThisTypeNode,\n ConditionalTypeNode,\n} from 'typescript';\nimport {\n SchemaNode,\n TypeRefSchema,\n TypeIntersectionSchema,\n TypeUnionSchema,\n TypeLiteralSchema,\n TypeQuerySchema,\n LiteralTypeSchema,\n KeywordTypeSchema,\n TypeArraySchema,\n TypeOperatorSchema,\n TupleTypeSchema,\n FunctionLikeSchema,\n ParenthesizedTypeSchema,\n TypePredicateSchema,\n IndexedAccessSchema,\n TemplateLiteralTypeSpanSchema,\n TemplateLiteralTypeSchema,\n ThisTypeSchema,\n Modifier,\n ConditionalTypeSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\nimport { getParams } from './get-params';\nimport { typeElementToSchema } from './type-element-to-schema';\nimport { jsDocToDocSchema } from './jsdoc-to-doc-schema';\n\n// eslint-disable-next-line complexity\nexport async function typeNodeToSchema(node: TypeNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const location = context.getLocation(node);\n if (isKeywordType(node)) {\n return new KeywordTypeSchema(location, node.getText());\n }\n switch (node.kind) {\n case SyntaxKind.IntersectionType:\n return intersectionType(node as IntersectionTypeNode, context);\n case SyntaxKind.UnionType:\n return unionType(node as UnionTypeNode, context);\n case SyntaxKind.TypeReference:\n return typeReference(node as TypeReferenceNode, context);\n case SyntaxKind.TypeLiteral:\n return typeLiteral(node as TypeLiteralNode, context);\n case SyntaxKind.LiteralType: // e.g. string/boolean\n return new LiteralTypeSchema(location, node.getText());\n case SyntaxKind.FunctionType:\n return functionType(node as FunctionTypeNode, context);\n case SyntaxKind.TypeQuery:\n return typeQuery(node as TypeQueryNode, context);\n case SyntaxKind.ArrayType:\n return arrayType(node as ArrayTypeNode, context);\n case SyntaxKind.TypeOperator:\n return typeOperator(node as TypeOperatorNode, context);\n case SyntaxKind.TupleType:\n return tupleType(node as TupleTypeNode, context);\n case SyntaxKind.ParenthesizedType:\n return parenthesizedType(node as ParenthesizedTypeNode, context);\n case SyntaxKind.TypePredicate:\n return typePredicate(node as TypePredicateNode, context);\n case SyntaxKind.IndexedAccessType:\n return indexedAccessType(node as IndexedAccessTypeNode, context);\n case SyntaxKind.TemplateLiteralTypeSpan:\n return templateLiteralTypeSpan(node as TemplateLiteralTypeSpan, context);\n case SyntaxKind.TemplateLiteralType:\n return templateLiteralType(node as TemplateLiteralTypeNode, context);\n case SyntaxKind.ThisType:\n return thisType(node as ThisTypeNode, context);\n case SyntaxKind.ConditionalType:\n return conditionalType(node as ConditionalTypeNode, context);\n case SyntaxKind.ConstructorType:\n case SyntaxKind.NamedTupleMember:\n case SyntaxKind.OptionalType:\n case SyntaxKind.RestType:\n case SyntaxKind.InferType:\n case SyntaxKind.MappedType:\n case SyntaxKind.ImportType:\n case SyntaxKind.ExpressionWithTypeArguments:\n case SyntaxKind.JSDocTypeExpression:\n case SyntaxKind.JSDocAllType:\n case SyntaxKind.JSDocUnknownType:\n case SyntaxKind.JSDocNonNullableType:\n case SyntaxKind.JSDocNullableType:\n case SyntaxKind.JSDocOptionalType:\n case SyntaxKind.JSDocFunctionType:\n case SyntaxKind.JSDocVariadicType:\n case SyntaxKind.JSDocNamepathType:\n case SyntaxKind.JSDocSignature:\n case SyntaxKind.JSDocTypeLiteral:\n throw new Error(`TypeNode ${node.kind} (probably ${SyntaxKind[node.kind]}) was not implemented yet.\ncontext: ${node.getText()}`);\n default:\n throw new Error(`Node ${node.kind} (probably ${SyntaxKind[node.kind]}) is not a TypeNode.\ncontext: ${node.getText()}`);\n }\n}\n\n/**\n * whether it's kind of `ts.KeywordTypeSyntaxKind`\n */\nfunction isKeywordType(node: TypeNode): node is KeywordTypeNode {\n switch (node.kind) {\n case SyntaxKind.AnyKeyword:\n case SyntaxKind.BigIntKeyword:\n case SyntaxKind.BooleanKeyword:\n case SyntaxKind.IntrinsicKeyword:\n case SyntaxKind.NeverKeyword:\n case SyntaxKind.NumberKeyword:\n case SyntaxKind.ObjectKeyword:\n case SyntaxKind.StringKeyword:\n case SyntaxKind.SymbolKeyword:\n case SyntaxKind.UndefinedKeyword:\n case SyntaxKind.UnknownKeyword:\n case SyntaxKind.VoidKeyword:\n return true;\n default:\n return false;\n }\n}\n\nasync function intersectionType(node: IntersectionTypeNode, context: SchemaExtractorContext) {\n const types = await pMapSeries(node.types, async (type) => {\n const typeSchema = await typeNodeToSchema(type, context);\n return typeSchema;\n });\n const location = context.getLocation(node);\n return new TypeIntersectionSchema(location, types);\n}\n\nasync function unionType(node: UnionTypeNode, context: SchemaExtractorContext) {\n const types = await pMapSeries(node.types, async (type) => {\n const typeSchema = await typeNodeToSchema(type, context);\n return typeSchema;\n });\n const location = context.getLocation(node);\n return new TypeUnionSchema(location, types);\n}\n\n/**\n * not to be confused with \"LiteralType\", which is string/boolean/null.\n * this \"TypeLiteral\" is an object with properties, such as: `{ a: string; b: number }`, similar to Interface.\n */\nasync function typeLiteral(node: TypeLiteralNode, context: SchemaExtractorContext) {\n const members = await pMapSeries(node.members, (member) => typeElementToSchema(member, context));\n const location = context.getLocation(node);\n return new TypeLiteralSchema(location, members);\n}\n\n/**\n * In the following example, `AriaButtonProps` is a type reference\n * ```ts\n * import type { AriaButtonProps } from '@react-types/button';\n * export type ButtonProps = AriaButtonProps & { a: string };\n * ```\n */\nasync function typeReference(node: TypeReferenceNode, context: SchemaExtractorContext) {\n const name = node.typeName.getText();\n const type = await context.resolveType(node, name, false);\n if (node.typeArguments && type instanceof TypeRefSchema) {\n const args = await pMapSeries(node.typeArguments, (arg) => typeNodeToSchema(arg, context));\n type.typeArgs = args;\n }\n return type;\n}\n\nasync function functionType(node: FunctionTypeNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = node.name?.getText() || '';\n const params = await getParams(node.parameters, context);\n const returnType = await typeNodeToSchema(node.type, context);\n const location = context.getLocation(node);\n const modifiers = node.modifiers?.map((modifier) => modifier.getText()) || [];\n const doc = await jsDocToDocSchema(node, context);\n return new FunctionLikeSchema(location, name, params, returnType, '', modifiers as Modifier[], doc);\n}\n\n/**\n * e.g. `typeof Foo`\n */\nasync function typeQuery(node: TypeQueryNode, context: SchemaExtractorContext) {\n const displaySig = await context.getQuickInfoDisplayString(node.exprName);\n const type = await context.resolveType(node.exprName, node.exprName.getText(), false);\n const location = context.getLocation(node);\n return new TypeQuerySchema(location, type, displaySig);\n}\n\nasync function arrayType(node: ArrayTypeNode, context: SchemaExtractorContext) {\n const type = await typeNodeToSchema(node.elementType, context);\n const location = context.getLocation(node);\n return new TypeArraySchema(location, type);\n}\n\n/**\n * e.g. keyof typeof Foo\n */\nasync function typeOperator(node: TypeOperatorNode, context: SchemaExtractorContext) {\n const operatorName = getOperatorName(node.operator);\n const type = await typeNodeToSchema(node.type, context);\n return new TypeOperatorSchema(context.getLocation(node), operatorName, type);\n}\n\nfunction getOperatorName(operator: SyntaxKind.KeyOfKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.ReadonlyKeyword) {\n switch (operator) {\n case SyntaxKind.KeyOfKeyword:\n return 'keyof';\n case SyntaxKind.UniqueKeyword:\n return 'unique';\n case SyntaxKind.ReadonlyKeyword:\n return 'readonly';\n default:\n throw new Error(`getOperatorName: unable to find operator name for ${operator}`);\n }\n}\n\nasync function tupleType(node: TupleTypeNode, context: SchemaExtractorContext) {\n const elements = await pMapSeries(node.elements, async (elem) => {\n const typeSchema = await typeNodeToSchema(elem, context);\n return typeSchema;\n });\n return new TupleTypeSchema(context.getLocation(node), elements);\n}\n\nasync function parenthesizedType(node: ParenthesizedTypeNode, context: SchemaExtractorContext) {\n const type = await typeNodeToSchema(node.type, context);\n return new ParenthesizedTypeSchema(context.getLocation(node), type);\n}\n\nasync function typePredicate(node: TypePredicateNode, context: SchemaExtractorContext) {\n const parameterName = isIdentifier(node.parameterName) ? node.parameterName.getText() : 'this';\n const type = node.type ? await typeNodeToSchema(node.type, context) : undefined;\n const hasAssertsModifier = Boolean(node.assertsModifier);\n return new TypePredicateSchema(context.getLocation(node), parameterName, type, hasAssertsModifier);\n}\n\nasync function indexedAccessType(node: IndexedAccessTypeNode, context: SchemaExtractorContext) {\n const objectType = await typeNodeToSchema(node.objectType, context);\n const indexType = await typeNodeToSchema(node.indexType, context);\n return new IndexedAccessSchema(context.getLocation(node), objectType, indexType);\n}\n\nasync function templateLiteralType(node: TemplateLiteralTypeNode, context: SchemaExtractorContext) {\n const templateSpans = await pMapSeries(node.templateSpans, (span) => templateLiteralTypeSpan(span, context));\n const head = node.head.text;\n return new TemplateLiteralTypeSchema(context.getLocation(node), head, templateSpans);\n}\n\nasync function templateLiteralTypeSpan(node: TemplateLiteralTypeSpan, context: SchemaExtractorContext) {\n const type = await typeNodeToSchema(node.type, context);\n const literal = node.literal.text;\n return new TemplateLiteralTypeSpanSchema(context.getLocation(node), literal, type);\n}\n\nasync function thisType(node: ThisTypeNode, context: SchemaExtractorContext) {\n return new ThisTypeSchema(context.getLocation(node));\n}\n\nasync function conditionalType(node: ConditionalTypeNode, context: SchemaExtractorContext) {\n const checkType = await typeNodeToSchema(node.checkType, context);\n const extendsType = await typeNodeToSchema(node.extendsType, context);\n const trueType = await typeNodeToSchema(node.trueType, context);\n const falseType = await typeNodeToSchema(node.falseType, context);\n return new ConditionalTypeSchema(context.getLocation(node), checkType, extendsType, trueType, falseType);\n}\n"],"mappings":"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"}
|