@teambit/typescript 0.0.738 → 0.0.741
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/exceptions/transformer-not-found.d.ts +2 -1
- package/dist/exceptions/transformer-not-found.js +3 -2
- package/dist/exceptions/transformer-not-found.js.map +1 -1
- package/dist/schema-extractor-context.d.ts +8 -7
- package/dist/schema-extractor-context.js +49 -21
- package/dist/schema-extractor-context.js.map +1 -1
- package/dist/transformers/class-deceleration.js +9 -1
- package/dist/transformers/class-deceleration.js.map +1 -1
- package/dist/transformers/enum-declaration.d.ts +10 -0
- package/dist/transformers/enum-declaration.js +60 -0
- package/dist/transformers/enum-declaration.js.map +1 -0
- package/dist/transformers/export-declaration.js +9 -2
- package/dist/transformers/export-declaration.js.map +1 -1
- package/dist/transformers/index.d.ts +1 -0
- package/dist/transformers/index.js +16 -0
- package/dist/transformers/index.js.map +1 -1
- package/dist/transformers/property-signature.js +5 -20
- package/dist/transformers/property-signature.js.map +1 -1
- package/dist/transformers/type-alias.js +2 -5
- package/dist/transformers/type-alias.js.map +1 -1
- package/dist/transformers/utils/get-params.js +53 -7
- package/dist/transformers/utils/get-params.js.map +1 -1
- package/dist/transformers/utils/parse-type-from-quick-info.d.ts +1 -0
- package/dist/transformers/utils/parse-type-from-quick-info.js +12 -3
- package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -1
- package/dist/transformers/utils/type-node-to-schema.js +52 -6
- package/dist/transformers/utils/type-node-to-schema.js.map +1 -1
- package/dist/typescript.extractor.d.ts +7 -1
- package/dist/typescript.extractor.js +30 -9
- package/dist/typescript.extractor.js.map +1 -1
- package/dist/typescript.main.runtime.d.ts +11 -2
- package/dist/typescript.main.runtime.js +17 -6
- package/dist/typescript.main.runtime.js.map +1 -1
- package/exceptions/transformer-not-found.ts +4 -2
- package/package-tar/teambit-typescript-0.0.741.tgz +0 -0
- package/package.json +16 -15
- package/{preview-1653227849497.js → preview-1653494536947.js} +2 -2
- package/transformers/class-deceleration.ts +4 -1
- package/transformers/enum-declaration.ts +20 -0
- package/transformers/export-declaration.ts +7 -2
- package/transformers/index.ts +1 -0
- package/transformers/property-signature.ts +2 -8
- package/transformers/type-alias.ts +2 -3
- package/transformers/utils/get-params.ts +53 -9
- package/transformers/utils/parse-type-from-quick-info.ts +9 -1
- package/transformers/utils/type-node-to-schema.ts +57 -6
- package/package-tar/teambit-typescript-0.0.738.tgz +0 -0
|
@@ -11,9 +11,16 @@ import {
|
|
|
11
11
|
IntersectionTypeNode,
|
|
12
12
|
UnionTypeNode,
|
|
13
13
|
TypeLiteralNode,
|
|
14
|
+
ParenthesizedTypeNode,
|
|
15
|
+
TypePredicateNode,
|
|
16
|
+
isIdentifier,
|
|
17
|
+
IndexedAccessTypeNode,
|
|
18
|
+
TemplateLiteralTypeNode,
|
|
19
|
+
TemplateLiteralTypeSpan,
|
|
14
20
|
} from 'typescript';
|
|
15
21
|
import {
|
|
16
22
|
SchemaNode,
|
|
23
|
+
TypeRefSchema,
|
|
17
24
|
TypeIntersectionSchema,
|
|
18
25
|
TypeUnionSchema,
|
|
19
26
|
TypeLiteralSchema,
|
|
@@ -24,6 +31,11 @@ import {
|
|
|
24
31
|
TypeOperatorSchema,
|
|
25
32
|
TupleTypeSchema,
|
|
26
33
|
FunctionLikeSchema,
|
|
34
|
+
ParenthesizedTypeSchema,
|
|
35
|
+
TypePredicateSchema,
|
|
36
|
+
IndexedAccessSchema,
|
|
37
|
+
TemplateLiteralTypeSpanSchema,
|
|
38
|
+
TemplateLiteralTypeSchema,
|
|
27
39
|
} from '@teambit/semantics.entities.semantic-schema';
|
|
28
40
|
import pMapSeries from 'p-map-series';
|
|
29
41
|
import { SchemaExtractorContext } from '../../schema-extractor-context';
|
|
@@ -56,19 +68,24 @@ export async function typeNodeToSchema(node: TypeNode, context: SchemaExtractorC
|
|
|
56
68
|
return typeOperator(node as TypeOperatorNode, context);
|
|
57
69
|
case SyntaxKind.TupleType:
|
|
58
70
|
return tupleType(node as TupleTypeNode, context);
|
|
71
|
+
case SyntaxKind.ParenthesizedType:
|
|
72
|
+
return parenthesizedType(node as ParenthesizedTypeNode, context);
|
|
59
73
|
case SyntaxKind.TypePredicate:
|
|
74
|
+
return typePredicate(node as TypePredicateNode, context);
|
|
75
|
+
case SyntaxKind.IndexedAccessType:
|
|
76
|
+
return indexedAccessType(node as IndexedAccessTypeNode, context);
|
|
77
|
+
case SyntaxKind.TemplateLiteralTypeSpan:
|
|
78
|
+
return templateLiteralTypeSpan(node as TemplateLiteralTypeSpan, context);
|
|
79
|
+
case SyntaxKind.TemplateLiteralType:
|
|
80
|
+
return templateLiteralType(node as TemplateLiteralTypeNode, context);
|
|
60
81
|
case SyntaxKind.ConstructorType:
|
|
61
82
|
case SyntaxKind.NamedTupleMember:
|
|
62
83
|
case SyntaxKind.OptionalType:
|
|
63
84
|
case SyntaxKind.RestType:
|
|
64
85
|
case SyntaxKind.ConditionalType:
|
|
65
86
|
case SyntaxKind.InferType:
|
|
66
|
-
case SyntaxKind.ParenthesizedType:
|
|
67
87
|
case SyntaxKind.ThisType:
|
|
68
|
-
case SyntaxKind.IndexedAccessType:
|
|
69
88
|
case SyntaxKind.MappedType:
|
|
70
|
-
case SyntaxKind.TemplateLiteralType:
|
|
71
|
-
case SyntaxKind.TemplateLiteralTypeSpan:
|
|
72
89
|
case SyntaxKind.ImportType:
|
|
73
90
|
case SyntaxKind.ExpressionWithTypeArguments:
|
|
74
91
|
case SyntaxKind.JSDocTypeExpression:
|
|
@@ -82,10 +99,10 @@ export async function typeNodeToSchema(node: TypeNode, context: SchemaExtractorC
|
|
|
82
99
|
case SyntaxKind.JSDocNamepathType:
|
|
83
100
|
case SyntaxKind.JSDocSignature:
|
|
84
101
|
case SyntaxKind.JSDocTypeLiteral:
|
|
85
|
-
throw new Error(`TypeNode
|
|
102
|
+
throw new Error(`TypeNode ${node.kind} (probably ${SyntaxKind[node.kind]}) was not implemented yet.
|
|
86
103
|
context: ${node.getText()}`);
|
|
87
104
|
default:
|
|
88
|
-
throw new Error(`Node
|
|
105
|
+
throw new Error(`Node ${node.kind} (probably ${SyntaxKind[node.kind]}) is not a TypeNode.
|
|
89
106
|
context: ${node.getText()}`);
|
|
90
107
|
}
|
|
91
108
|
}
|
|
@@ -154,6 +171,10 @@ async function typeLiteral(node: TypeLiteralNode, context: SchemaExtractorContex
|
|
|
154
171
|
async function typeReference(node: TypeReferenceNode, context: SchemaExtractorContext) {
|
|
155
172
|
const name = node.typeName.getText();
|
|
156
173
|
const type = await context.resolveType(node, name, false);
|
|
174
|
+
if (node.typeArguments && type instanceof TypeRefSchema) {
|
|
175
|
+
const args = await pMapSeries(node.typeArguments, (arg) => typeNodeToSchema(arg, context));
|
|
176
|
+
type.typeArgs = args;
|
|
177
|
+
}
|
|
157
178
|
return type;
|
|
158
179
|
}
|
|
159
180
|
|
|
@@ -210,3 +231,33 @@ async function tupleType(node: TupleTypeNode, context: SchemaExtractorContext) {
|
|
|
210
231
|
});
|
|
211
232
|
return new TupleTypeSchema(context.getLocation(node), elements);
|
|
212
233
|
}
|
|
234
|
+
|
|
235
|
+
async function parenthesizedType(node: ParenthesizedTypeNode, context: SchemaExtractorContext) {
|
|
236
|
+
const type = await typeNodeToSchema(node.type, context);
|
|
237
|
+
return new ParenthesizedTypeSchema(context.getLocation(node), type);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
async function typePredicate(node: TypePredicateNode, context: SchemaExtractorContext) {
|
|
241
|
+
const parameterName = isIdentifier(node.parameterName) ? node.parameterName.getText() : 'this';
|
|
242
|
+
const type = node.type ? await typeNodeToSchema(node.type, context) : undefined;
|
|
243
|
+
const hasAssertsModifier = Boolean(node.assertsModifier);
|
|
244
|
+
return new TypePredicateSchema(context.getLocation(node), parameterName, type, hasAssertsModifier);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
async function indexedAccessType(node: IndexedAccessTypeNode, context: SchemaExtractorContext) {
|
|
248
|
+
const objectType = await typeNodeToSchema(node.objectType, context);
|
|
249
|
+
const indexType = await typeNodeToSchema(node.indexType, context);
|
|
250
|
+
return new IndexedAccessSchema(context.getLocation(node), objectType, indexType);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
async function templateLiteralType(node: TemplateLiteralTypeNode, context: SchemaExtractorContext) {
|
|
254
|
+
const templateSpans = await pMapSeries(node.templateSpans, (span) => templateLiteralTypeSpan(span, context));
|
|
255
|
+
const head = node.head.text;
|
|
256
|
+
return new TemplateLiteralTypeSchema(context.getLocation(node), head, templateSpans);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
async function templateLiteralTypeSpan(node: TemplateLiteralTypeSpan, context: SchemaExtractorContext) {
|
|
260
|
+
const type = await typeNodeToSchema(node.type, context);
|
|
261
|
+
const literal = node.literal.text;
|
|
262
|
+
return new TemplateLiteralTypeSpanSchema(context.getLocation(node), literal, type);
|
|
263
|
+
}
|
|
Binary file
|