@teambit/typescript 0.0.965 → 0.0.967
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/export-identifier.d.ts +5 -4
- package/dist/export-identifier.js +23 -4
- package/dist/export-identifier.js.map +1 -1
- package/dist/identifier-list.d.ts +7 -0
- package/dist/identifier-list.js +21 -0
- package/dist/identifier-list.js.map +1 -0
- package/dist/identifier.d.ts +9 -0
- package/dist/identifier.js +30 -0
- package/dist/identifier.js.map +1 -0
- package/dist/{preview-1674271762484.js → preview-1674617375675.js} +2 -2
- package/dist/schema-extractor-context.d.ts +40 -8
- package/dist/schema-extractor-context.js +243 -101
- package/dist/schema-extractor-context.js.map +1 -1
- package/dist/schema-transformer.d.ts +2 -2
- package/dist/schema-transformer.js.map +1 -1
- package/dist/transformers/array-type.d.ts +10 -0
- package/dist/transformers/array-type.js +38 -0
- package/dist/transformers/array-type.js.map +1 -0
- package/dist/transformers/binding-element.d.ts +2 -2
- package/dist/transformers/binding-element.js +7 -7
- package/dist/transformers/binding-element.js.map +1 -1
- package/dist/transformers/class-declaration.d.ts +2 -2
- package/dist/transformers/class-declaration.js +6 -20
- package/dist/transformers/class-declaration.js.map +1 -1
- package/dist/transformers/conditional-type.d.ts +10 -0
- package/dist/transformers/conditional-type.js +39 -0
- package/dist/transformers/conditional-type.js.map +1 -0
- package/dist/transformers/constructor.d.ts +10 -0
- package/dist/transformers/constructor.js +50 -0
- package/dist/transformers/constructor.js.map +1 -0
- package/dist/transformers/enum-declaration.d.ts +2 -2
- package/dist/transformers/enum-declaration.js +4 -4
- package/dist/transformers/enum-declaration.js.map +1 -1
- package/dist/transformers/{export-assignment-declaration.d.ts → export-assignment.d.ts} +7 -2
- package/dist/transformers/export-assignment.js +41 -0
- package/dist/transformers/export-assignment.js.map +1 -0
- package/dist/transformers/export-declaration.d.ts +2 -3
- package/dist/transformers/export-declaration.js +21 -10
- package/dist/transformers/export-declaration.js.map +1 -1
- package/dist/transformers/function-like.d.ts +11 -0
- package/dist/transformers/function-like.js +82 -0
- package/dist/transformers/function-like.js.map +1 -0
- package/dist/transformers/get-accessor.d.ts +10 -0
- package/dist/transformers/get-accessor.js +48 -0
- package/dist/transformers/get-accessor.js.map +1 -0
- package/dist/transformers/import-declaration.d.ts +10 -0
- package/dist/transformers/import-declaration.js +74 -0
- package/dist/transformers/import-declaration.js.map +1 -0
- package/dist/transformers/index-signature.d.ts +10 -0
- package/dist/transformers/index-signature.js +45 -0
- package/dist/transformers/index-signature.js.map +1 -0
- package/dist/transformers/index.d.ts +28 -3
- package/dist/transformers/index.js +337 -12
- package/dist/transformers/index.js.map +1 -1
- package/dist/transformers/indexed-access-type.d.ts +10 -0
- package/dist/transformers/indexed-access-type.js +37 -0
- package/dist/transformers/indexed-access-type.js.map +1 -0
- package/dist/transformers/interface-declaration.d.ts +2 -2
- package/dist/transformers/interface-declaration.js +6 -20
- package/dist/transformers/interface-declaration.js.map +1 -1
- package/dist/transformers/intersection-type.d.ts +10 -0
- package/dist/transformers/intersection-type.js +48 -0
- package/dist/transformers/intersection-type.js.map +1 -0
- package/dist/transformers/keyword-type.d.ts +13 -0
- package/dist/transformers/keyword-type.js +55 -0
- package/dist/transformers/keyword-type.js.map +1 -0
- package/dist/transformers/literal-type.d.ts +13 -0
- package/dist/transformers/literal-type.js +40 -0
- package/dist/transformers/literal-type.js.map +1 -0
- package/dist/transformers/named-tuple.d.ts +10 -0
- package/dist/transformers/named-tuple.js +38 -0
- package/dist/transformers/named-tuple.js.map +1 -0
- package/dist/transformers/parameter.d.ts +13 -0
- package/dist/transformers/parameter.js +112 -0
- package/dist/transformers/parameter.js.map +1 -0
- package/dist/transformers/parenthesized-type.d.ts +10 -0
- package/dist/transformers/parenthesized-type.js +36 -0
- package/dist/transformers/parenthesized-type.js.map +1 -0
- package/dist/transformers/property-declaration.d.ts +11 -0
- package/dist/transformers/property-declaration.js +57 -0
- package/dist/transformers/property-declaration.js.map +1 -0
- package/dist/transformers/set-accessor.d.ts +10 -0
- package/dist/transformers/set-accessor.js +45 -0
- package/dist/transformers/set-accessor.js.map +1 -0
- package/dist/transformers/source-file-transformer.d.ts +3 -2
- package/dist/transformers/source-file-transformer.js +44 -15
- package/dist/transformers/source-file-transformer.js.map +1 -1
- package/dist/transformers/template-literal-type-span.d.ts +10 -0
- package/dist/transformers/template-literal-type-span.js +37 -0
- package/dist/transformers/template-literal-type-span.js.map +1 -0
- package/dist/transformers/template-literal-type.d.ts +10 -0
- package/dist/transformers/template-literal-type.js +45 -0
- package/dist/transformers/template-literal-type.js.map +1 -0
- package/dist/transformers/this-type.d.ts +10 -0
- package/dist/transformers/this-type.js +35 -0
- package/dist/transformers/this-type.js.map +1 -0
- package/dist/transformers/tuple-type.d.ts +10 -0
- package/dist/transformers/tuple-type.js +47 -0
- package/dist/transformers/tuple-type.js.map +1 -0
- package/dist/transformers/type-alias.d.ts +2 -2
- package/dist/transformers/type-alias.js +5 -12
- package/dist/transformers/type-alias.js.map +1 -1
- package/dist/transformers/type-literal.d.ts +14 -0
- package/dist/transformers/type-literal.js +49 -0
- package/dist/transformers/type-literal.js.map +1 -0
- package/dist/transformers/type-operator.d.ts +14 -0
- package/dist/transformers/type-operator.js +52 -0
- package/dist/transformers/type-operator.js.map +1 -0
- package/dist/transformers/type-predicate.d.ts +10 -0
- package/dist/transformers/type-predicate.js +38 -0
- package/dist/transformers/type-predicate.js.map +1 -0
- package/dist/transformers/type-query.d.ts +13 -0
- package/dist/transformers/type-query.js +42 -0
- package/dist/transformers/type-query.js.map +1 -0
- package/dist/transformers/type-reference.d.ts +16 -0
- package/dist/transformers/type-reference.js +56 -0
- package/dist/transformers/type-reference.js.map +1 -0
- package/dist/transformers/union-type.d.ts +10 -0
- package/dist/transformers/union-type.js +48 -0
- package/dist/transformers/union-type.js.map +1 -0
- package/dist/transformers/utils/jsdoc-to-doc-schema.js +2 -10
- package/dist/transformers/utils/jsdoc-to-doc-schema.js.map +1 -1
- package/dist/transformers/variable-declaration.d.ts +2 -2
- package/dist/transformers/variable-declaration.js +11 -11
- package/dist/transformers/variable-declaration.js.map +1 -1
- package/dist/transformers/variable-statement.d.ts +2 -2
- package/dist/transformers/variable-statement.js +5 -5
- package/dist/transformers/variable-statement.js.map +1 -1
- package/dist/typescript.extractor.d.ts +10 -4
- package/dist/typescript.extractor.js +70 -17
- package/dist/typescript.extractor.js.map +1 -1
- package/dist/typescript.main.runtime.d.ts +4 -2
- package/dist/typescript.main.runtime.js +5 -11
- package/dist/typescript.main.runtime.js.map +1 -1
- package/package-tar/teambit-typescript-0.0.967.tgz +0 -0
- package/package.json +17 -17
- package/transformers/array-type.ts +21 -0
- package/transformers/binding-element.ts +2 -2
- package/transformers/class-declaration.ts +4 -6
- package/transformers/conditional-type.ts +23 -0
- package/transformers/constructor.ts +40 -0
- package/transformers/enum-declaration.ts +3 -3
- package/transformers/{export-assignment-declaration.ts → export-assignment.ts} +9 -3
- package/transformers/export-declaration.ts +35 -8
- package/transformers/function-like.ts +65 -0
- package/transformers/get-accessor.ts +24 -0
- package/transformers/import-declaration.ts +56 -0
- package/transformers/index-signature.ts +24 -0
- package/transformers/index.ts +28 -3
- package/transformers/indexed-access-type.ts +21 -0
- package/transformers/interface-declaration.ts +5 -7
- package/transformers/intersection-type.ts +25 -0
- package/transformers/keyword-type.ts +39 -0
- package/transformers/literal-type.ts +23 -0
- package/transformers/named-tuple.ts +22 -0
- package/transformers/parameter.ts +110 -0
- package/transformers/parenthesized-type.ts +20 -0
- package/transformers/property-declaration.ts +33 -0
- package/transformers/set-accessor.ts +25 -0
- package/transformers/source-file-transformer.ts +56 -24
- package/transformers/template-literal-type-span.ts +21 -0
- package/transformers/template-literal-type.ts +24 -0
- package/transformers/this-type.ts +19 -0
- package/transformers/tuple-type.ts +24 -0
- package/transformers/type-alias.ts +3 -4
- package/transformers/type-literal.ts +26 -0
- package/transformers/type-operator.ts +37 -0
- package/transformers/type-predicate.ts +22 -0
- package/transformers/type-query.ts +25 -0
- package/transformers/type-reference.ts +33 -0
- package/transformers/union-type.ts +25 -0
- package/transformers/utils/jsdoc-to-doc-schema.ts +2 -4
- package/transformers/variable-declaration.ts +7 -4
- package/transformers/variable-statement.ts +3 -3
- package/dist/export-list.d.ts +0 -6
- package/dist/export-list.js +0 -17
- package/dist/export-list.js.map +0 -1
- package/dist/transformers/export-assignment-declaration.js +0 -29
- package/dist/transformers/export-assignment-declaration.js.map +0 -1
- package/dist/transformers/function-declaration.d.ts +0 -11
- package/dist/transformers/function-declaration.js +0 -49
- package/dist/transformers/function-declaration.js.map +0 -1
- package/dist/transformers/utils/class-element-to-schema.d.ts +0 -4
- package/dist/transformers/utils/class-element-to-schema.js +0 -95
- package/dist/transformers/utils/class-element-to-schema.js.map +0 -1
- package/dist/transformers/utils/get-params.d.ts +0 -4
- package/dist/transformers/utils/get-params.js +0 -100
- package/dist/transformers/utils/get-params.js.map +0 -1
- package/dist/transformers/utils/to-function-like-schema.d.ts +0 -4
- package/dist/transformers/utils/to-function-like-schema.js +0 -58
- package/dist/transformers/utils/to-function-like-schema.js.map +0 -1
- package/dist/transformers/utils/type-element-to-schema.d.ts +0 -7
- package/dist/transformers/utils/type-element-to-schema.js +0 -106
- package/dist/transformers/utils/type-element-to-schema.js.map +0 -1
- package/dist/transformers/utils/type-node-to-schema.d.ts +0 -4
- package/dist/transformers/utils/type-node-to-schema.js +0 -274
- package/dist/transformers/utils/type-node-to-schema.js.map +0 -1
- package/package-tar/teambit-typescript-0.0.965.tgz +0 -0
- package/transformers/function-declaration.ts +0 -25
- package/transformers/utils/class-element-to-schema.ts +0 -64
- package/transformers/utils/get-params.ts +0 -92
- package/transformers/utils/to-function-like-schema.ts +0 -39
- package/transformers/utils/type-element-to-schema.ts +0 -79
- package/transformers/utils/type-node-to-schema.ts +0 -294
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
require("core-js/modules/es.promise.js");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.TypeReferenceTransformer = void 0;
|
|
9
|
+
function _typescript() {
|
|
10
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
11
|
+
_typescript = function () {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
function _semanticsEntities() {
|
|
17
|
+
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
18
|
+
_semanticsEntities = function () {
|
|
19
|
+
return data;
|
|
20
|
+
};
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
function _pMapSeries() {
|
|
24
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
25
|
+
_pMapSeries = function () {
|
|
26
|
+
return data;
|
|
27
|
+
};
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* In the following example, `AriaButtonProps` is a type reference
|
|
32
|
+
* ```ts
|
|
33
|
+
* import type { AriaButtonProps } from '@react-types/button';
|
|
34
|
+
* export type ButtonProps = AriaButtonProps & { a: string };
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
class TypeReferenceTransformer {
|
|
38
|
+
predicate(node) {
|
|
39
|
+
return node.kind === _typescript().default.SyntaxKind.TypeReference;
|
|
40
|
+
}
|
|
41
|
+
async getIdentifiers() {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
async transform(node, context) {
|
|
45
|
+
const name = node.typeName.getText();
|
|
46
|
+
const type = await context.resolveType(node, name, false);
|
|
47
|
+
if (node.typeArguments && type instanceof _semanticsEntities().TypeRefSchema) {
|
|
48
|
+
const args = await (0, _pMapSeries().default)(node.typeArguments, arg => context.computeSchema(arg));
|
|
49
|
+
type.typeArgs = args;
|
|
50
|
+
}
|
|
51
|
+
return type;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.TypeReferenceTransformer = TypeReferenceTransformer;
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=type-reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TypeReferenceTransformer","predicate","node","kind","ts","SyntaxKind","TypeReference","getIdentifiers","transform","context","name","typeName","getText","type","resolveType","typeArguments","TypeRefSchema","args","pMapSeries","arg","computeSchema","typeArgs"],"sources":["type-reference.ts"],"sourcesContent":["import ts, { Node, TypeReferenceNode } from 'typescript';\nimport { TypeRefSchema } from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\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 */\nexport class TypeReferenceTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.TypeReference;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(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) => context.computeSchema(arg));\n type.typeArgs = args;\n }\n return type;\n }\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,wBAAwB,CAA8B;EACjEC,SAAS,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,aAAa;EAClD;EAEA,MAAMC,cAAc,GAA0B;IAC5C,OAAO,EAAE;EACX;EAEA,MAAMC,SAAS,CAACN,IAAuB,EAAEO,OAA+B,EAAE;IACxE,MAAMC,IAAI,GAAGR,IAAI,CAACS,QAAQ,CAACC,OAAO,EAAE;IACpC,MAAMC,IAAI,GAAG,MAAMJ,OAAO,CAACK,WAAW,CAACZ,IAAI,EAAEQ,IAAI,EAAE,KAAK,CAAC;IACzD,IAAIR,IAAI,CAACa,aAAa,IAAIF,IAAI,YAAYG,kCAAa,EAAE;MACvD,MAAMC,IAAI,GAAG,MAAM,IAAAC,qBAAU,EAAChB,IAAI,CAACa,aAAa,EAAGI,GAAG,IAAKV,OAAO,CAACW,aAAa,CAACD,GAAG,CAAC,CAAC;MACtFN,IAAI,CAACQ,QAAQ,GAAGJ,IAAI;IACtB;IACA,OAAOJ,IAAI;EACb;AACF;AAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Node, UnionTypeNode } from 'typescript';
|
|
2
|
+
import { TypeUnionSchema } from '@teambit/semantics.entities.semantic-schema';
|
|
3
|
+
import { SchemaTransformer } from '../schema-transformer';
|
|
4
|
+
import { SchemaExtractorContext } from '../schema-extractor-context';
|
|
5
|
+
import { Identifier } from '../identifier';
|
|
6
|
+
export declare class UnionTypeTransformer implements SchemaTransformer {
|
|
7
|
+
predicate(node: Node): boolean;
|
|
8
|
+
getIdentifiers(): Promise<Identifier[]>;
|
|
9
|
+
transform(node: UnionTypeNode, context: SchemaExtractorContext): Promise<TypeUnionSchema>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
require("core-js/modules/es.promise.js");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.UnionTypeTransformer = void 0;
|
|
9
|
+
function _typescript() {
|
|
10
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
11
|
+
_typescript = function () {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
function _semanticsEntities() {
|
|
17
|
+
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
18
|
+
_semanticsEntities = function () {
|
|
19
|
+
return data;
|
|
20
|
+
};
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
function _pMapSeries() {
|
|
24
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
25
|
+
_pMapSeries = function () {
|
|
26
|
+
return data;
|
|
27
|
+
};
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
class UnionTypeTransformer {
|
|
31
|
+
predicate(node) {
|
|
32
|
+
return node.kind === _typescript().default.SyntaxKind.UnionType;
|
|
33
|
+
}
|
|
34
|
+
async getIdentifiers() {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
async transform(node, context) {
|
|
38
|
+
const types = await (0, _pMapSeries().default)(node.types, async type => {
|
|
39
|
+
const typeSchema = context.computeSchema(type);
|
|
40
|
+
return typeSchema;
|
|
41
|
+
});
|
|
42
|
+
const location = context.getLocation(node);
|
|
43
|
+
return new (_semanticsEntities().TypeUnionSchema)(location, types);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.UnionTypeTransformer = UnionTypeTransformer;
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=union-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UnionTypeTransformer","predicate","node","kind","ts","SyntaxKind","UnionType","getIdentifiers","transform","context","types","pMapSeries","type","typeSchema","computeSchema","location","getLocation","TypeUnionSchema"],"sources":["union-type.ts"],"sourcesContent":["import ts, { Node, UnionTypeNode } from 'typescript';\nimport { TypeUnionSchema } from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class UnionTypeTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.UnionType;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: UnionTypeNode, context: SchemaExtractorContext) {\n const types = await pMapSeries(node.types, async (type) => {\n const typeSchema = context.computeSchema(type);\n return typeSchema;\n });\n const location = context.getLocation(node);\n return new TypeUnionSchema(location, types);\n }\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKO,MAAMA,oBAAoB,CAA8B;EAC7DC,SAAS,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,SAAS;EAC9C;EAEA,MAAMC,cAAc,GAA0B;IAC5C,OAAO,EAAE;EACX;EAEA,MAAMC,SAAS,CAACN,IAAmB,EAAEO,OAA+B,EAAE;IACpE,MAAMC,KAAK,GAAG,MAAM,IAAAC,qBAAU,EAACT,IAAI,CAACQ,KAAK,EAAE,MAAOE,IAAI,IAAK;MACzD,MAAMC,UAAU,GAAGJ,OAAO,CAACK,aAAa,CAACF,IAAI,CAAC;MAC9C,OAAOC,UAAU;IACnB,CAAC,CAAC;IACF,MAAME,QAAQ,GAAGN,OAAO,CAACO,WAAW,CAACd,IAAI,CAAC;IAC1C,OAAO,KAAIe,oCAAe,EAACF,QAAQ,EAAEL,KAAK,CAAC;EAC7C;AACF;AAAC"}
|
|
@@ -19,18 +19,10 @@ function _semanticsEntities() {
|
|
|
19
19
|
};
|
|
20
20
|
return data;
|
|
21
21
|
}
|
|
22
|
-
function _typeNodeToSchema() {
|
|
23
|
-
const data = require("./type-node-to-schema");
|
|
24
|
-
_typeNodeToSchema = function () {
|
|
25
|
-
return data;
|
|
26
|
-
};
|
|
27
|
-
return data;
|
|
28
|
-
}
|
|
29
22
|
/* eslint-disable no-fallthrough */
|
|
30
23
|
|
|
31
24
|
async function tagParser(tag, context, formatter) {
|
|
32
25
|
// for some reason, in some cases, if `tag.getSourceFile()` is not provided to the `getText()`, it throws "Cannot read property 'text' of undefined"
|
|
33
|
-
|
|
34
26
|
switch (tag.kind) {
|
|
35
27
|
case _typescript().SyntaxKind.JSDocReturnTag:
|
|
36
28
|
return returnTag(tag, context);
|
|
@@ -94,12 +86,12 @@ function simpleTag(tag, tagName, context) {
|
|
|
94
86
|
}
|
|
95
87
|
async function returnTag(tag, context) {
|
|
96
88
|
var _tag$typeExpression, _tag$typeExpression2;
|
|
97
|
-
const type = (_tag$typeExpression = tag.typeExpression) !== null && _tag$typeExpression !== void 0 && _tag$typeExpression.type ? await
|
|
89
|
+
const type = (_tag$typeExpression = tag.typeExpression) !== null && _tag$typeExpression !== void 0 && _tag$typeExpression.type ? await context.computeSchema((_tag$typeExpression2 = tag.typeExpression) === null || _tag$typeExpression2 === void 0 ? void 0 : _tag$typeExpression2.type) : undefined;
|
|
98
90
|
return new (_semanticsEntities().ReturnTagSchema)(context.getLocation(tag), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
|
|
99
91
|
}
|
|
100
92
|
async function propertyLikeTag(tag, context) {
|
|
101
93
|
var _tag$typeExpression3, _tag$typeExpression4;
|
|
102
|
-
const type = (_tag$typeExpression3 = tag.typeExpression) !== null && _tag$typeExpression3 !== void 0 && _tag$typeExpression3.type ? await
|
|
94
|
+
const type = (_tag$typeExpression3 = tag.typeExpression) !== null && _tag$typeExpression3 !== void 0 && _tag$typeExpression3.type ? await context.computeSchema((_tag$typeExpression4 = tag.typeExpression) === null || _tag$typeExpression4 === void 0 ? void 0 : _tag$typeExpression4.type) : undefined;
|
|
103
95
|
return new (_semanticsEntities().PropertyLikeTagSchema)(context.getLocation(tag), tag.name.getText(), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
|
|
104
96
|
}
|
|
105
97
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tagParser","tag","context","formatter","kind","SyntaxKind","JSDocReturnTag","returnTag","JSDocPropertyTag","propertyLikeTag","JSDocParameterTag","JSDocAugmentsTag","simpleTag","TagName","augments","JSDocAuthorTag","author","JSDocClassTag","class","JSDocCallbackTag","callback","JSDocPublicTag","public","JSDocPrivateTag","private","JSDocProtectedTag","protected","JSDocReadonlyTag","readonly","JSDocOverrideTag","override","JSDocDeprecatedTag","deprecated","JSDocSeeTag","see","JSDocEnumTag","enum","JSDocThisTag","this","JSDocTypeTag","type","JSDocTemplateTag","template","JSDocTypedefTag","typedef","JSDocImplementsTag","implements","tagName","getText","getSourceFile","comment","getTextOfJSDocComment","formattedComment","formatSnippet","TagSchema","getLocation","e","typeExpression","
|
|
1
|
+
{"version":3,"names":["tagParser","tag","context","formatter","kind","SyntaxKind","JSDocReturnTag","returnTag","JSDocPropertyTag","propertyLikeTag","JSDocParameterTag","JSDocAugmentsTag","simpleTag","TagName","augments","JSDocAuthorTag","author","JSDocClassTag","class","JSDocCallbackTag","callback","JSDocPublicTag","public","JSDocPrivateTag","private","JSDocProtectedTag","protected","JSDocReadonlyTag","readonly","JSDocOverrideTag","override","JSDocDeprecatedTag","deprecated","JSDocSeeTag","see","JSDocEnumTag","enum","JSDocThisTag","this","JSDocTypeTag","type","JSDocTemplateTag","template","JSDocTypedefTag","typedef","JSDocImplementsTag","implements","tagName","getText","getSourceFile","comment","getTextOfJSDocComment","formattedComment","formatSnippet","TagSchema","getLocation","e","typeExpression","computeSchema","undefined","ReturnTagSchema","PropertyLikeTagSchema","name"],"sources":["jsdoc-to-doc-schema.ts"],"sourcesContent":["/* eslint-disable no-fallthrough */\nimport {\n getTextOfJSDocComment,\n JSDocParameterTag,\n JSDocPropertyLikeTag,\n JSDocPropertyTag,\n JSDocReturnTag,\n JSDocTag,\n SyntaxKind,\n} from 'typescript';\nimport {\n PropertyLikeTagSchema,\n ReturnTagSchema,\n TagName,\n TagSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { Formatter } from '@teambit/formatter';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\n\nexport async function tagParser(\n tag: JSDocTag,\n context: SchemaExtractorContext,\n formatter?: Formatter\n): Promise<TagSchema> {\n // for some reason, in some cases, if `tag.getSourceFile()` is not provided to the `getText()`, it throws \"Cannot read property 'text' of undefined\"\n switch (tag.kind) {\n case SyntaxKind.JSDocReturnTag:\n return returnTag(tag as JSDocReturnTag, context);\n case SyntaxKind.JSDocPropertyTag:\n return propertyLikeTag(tag as JSDocPropertyTag, context);\n case SyntaxKind.JSDocParameterTag:\n return propertyLikeTag(tag as JSDocParameterTag, context);\n case SyntaxKind.JSDocAugmentsTag:\n return simpleTag(tag, TagName.augments, context);\n case SyntaxKind.JSDocAuthorTag:\n return simpleTag(tag, TagName.author, context);\n case SyntaxKind.JSDocClassTag:\n return simpleTag(tag, TagName.class, context);\n case SyntaxKind.JSDocCallbackTag:\n return simpleTag(tag, TagName.callback, context);\n case SyntaxKind.JSDocPublicTag:\n return simpleTag(tag, TagName.public, context);\n case SyntaxKind.JSDocPrivateTag:\n return simpleTag(tag, TagName.private, context);\n case SyntaxKind.JSDocProtectedTag:\n return simpleTag(tag, TagName.protected, context);\n case SyntaxKind.JSDocReadonlyTag:\n return simpleTag(tag, TagName.readonly, context);\n case SyntaxKind.JSDocOverrideTag:\n return simpleTag(tag, TagName.override, context);\n case SyntaxKind.JSDocDeprecatedTag:\n return simpleTag(tag, TagName.deprecated, context);\n case SyntaxKind.JSDocSeeTag:\n return simpleTag(tag, TagName.see, context);\n case SyntaxKind.JSDocEnumTag:\n return simpleTag(tag, TagName.enum, context);\n case SyntaxKind.JSDocThisTag:\n return simpleTag(tag, TagName.this, context);\n case SyntaxKind.JSDocTypeTag:\n return simpleTag(tag, TagName.type, context);\n case SyntaxKind.JSDocTemplateTag:\n return simpleTag(tag, TagName.template, context);\n case SyntaxKind.JSDocTypedefTag:\n return simpleTag(tag, TagName.typedef, context);\n case SyntaxKind.JSDocImplementsTag:\n return simpleTag(tag, TagName.implements, context);\n default: {\n const tagName: TagName | string = tag.tagName.getText(tag.getSourceFile());\n if (tagName === 'example') {\n const comment = getTextOfJSDocComment(tag.comment);\n if (!formatter) return simpleTag(tag, tagName, context);\n try {\n const formattedComment = comment && (await formatter.formatSnippet(comment));\n return new TagSchema(context.getLocation(tag), tagName, formattedComment);\n } catch (e) {\n return simpleTag(tag, tagName, context);\n }\n }\n return simpleTag(tag, tagName, context);\n }\n }\n}\n\nfunction simpleTag(tag: JSDocTag, tagName: TagName | string, context: SchemaExtractorContext): TagSchema {\n return new TagSchema(context.getLocation(tag), tagName, getTextOfJSDocComment(tag.comment));\n}\n\nasync function returnTag(tag: JSDocReturnTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;\n return new ReturnTagSchema(context.getLocation(tag), getTextOfJSDocComment(tag.comment), type);\n}\n\nasync function propertyLikeTag(tag: JSDocPropertyLikeTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;\n return new PropertyLikeTagSchema(\n context.getLocation(tag),\n tag.name.getText(),\n getTextOfJSDocComment(tag.comment),\n type\n );\n}\n"],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import { SchemaNode } from '@teambit/semantics.entities.semantic-schema';
|
|
|
2
2
|
import { Node, VariableDeclaration as VariableDeclarationNode } from 'typescript';
|
|
3
3
|
import { SchemaTransformer } from '../schema-transformer';
|
|
4
4
|
import { SchemaExtractorContext } from '../schema-extractor-context';
|
|
5
|
-
import {
|
|
5
|
+
import { Identifier } from '../identifier';
|
|
6
6
|
export declare class VariableDeclaration implements SchemaTransformer {
|
|
7
7
|
predicate(node: Node): boolean;
|
|
8
8
|
getName(node: VariableDeclarationNode): string;
|
|
9
|
-
getIdentifiers(node: VariableDeclarationNode): Promise<
|
|
9
|
+
getIdentifiers(node: VariableDeclarationNode): Promise<Identifier[]>;
|
|
10
10
|
transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode>;
|
|
11
11
|
}
|
|
@@ -20,23 +20,23 @@ function _typescript() {
|
|
|
20
20
|
};
|
|
21
21
|
return data;
|
|
22
22
|
}
|
|
23
|
-
function
|
|
24
|
-
const data = require("
|
|
25
|
-
|
|
23
|
+
function _pMapSeries() {
|
|
24
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
25
|
+
_pMapSeries = function () {
|
|
26
26
|
return data;
|
|
27
27
|
};
|
|
28
28
|
return data;
|
|
29
29
|
}
|
|
30
|
-
function
|
|
31
|
-
const data = require("./utils/
|
|
32
|
-
|
|
30
|
+
function _parseTypeFromQuickInfo() {
|
|
31
|
+
const data = require("./utils/parse-type-from-quick-info");
|
|
32
|
+
_parseTypeFromQuickInfo = function () {
|
|
33
33
|
return data;
|
|
34
34
|
};
|
|
35
35
|
return data;
|
|
36
36
|
}
|
|
37
|
-
function
|
|
38
|
-
const data = require("
|
|
39
|
-
|
|
37
|
+
function _identifier() {
|
|
38
|
+
const data = require("../identifier");
|
|
39
|
+
_identifier = function () {
|
|
40
40
|
return data;
|
|
41
41
|
};
|
|
42
42
|
return data;
|
|
@@ -49,7 +49,7 @@ class VariableDeclaration {
|
|
|
49
49
|
return node.name.getText();
|
|
50
50
|
}
|
|
51
51
|
async getIdentifiers(node) {
|
|
52
|
-
return [new (
|
|
52
|
+
return [new (_identifier().Identifier)(node.name.getText(), node.getSourceFile().fileName)];
|
|
53
53
|
}
|
|
54
54
|
async transform(varDec, context) {
|
|
55
55
|
var _info$body, _varDec$modifiers, _varDec$initializer;
|
|
@@ -60,7 +60,7 @@ class VariableDeclaration {
|
|
|
60
60
|
const doc = await context.jsDocToDocSchema(varDec);
|
|
61
61
|
const modifiers = ((_varDec$modifiers = varDec.modifiers) === null || _varDec$modifiers === void 0 ? void 0 : _varDec$modifiers.map(modifier => modifier.getText())) || [];
|
|
62
62
|
if (((_varDec$initializer = varDec.initializer) === null || _varDec$initializer === void 0 ? void 0 : _varDec$initializer.kind) === _typescript().default.SyntaxKind.ArrowFunction) {
|
|
63
|
-
const args = await (0,
|
|
63
|
+
const args = await (0, _pMapSeries().default)(varDec.initializer.parameters, async param => context.computeSchema(param));
|
|
64
64
|
// example => export const useLanesContext: () => LanesContextModel | undefined = () => {
|
|
65
65
|
if (varDec.type) {
|
|
66
66
|
const funcType = await context.resolveType(varDec, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","
|
|
1
|
+
{"version":3,"names":["VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","Identifier","getSourceFile","fileName","transform","varDec","context","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","modifiers","map","modifier","initializer","ArrowFunction","args","pMapSeries","parameters","param","computeSchema","type","funcType","resolveType","isFunctionLike","FunctionLikeSchema","params","returnType","typeStr","parseReturnTypeFromQuickInfo","parseTypeFromQuickInfo","VariableLikeSchema"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n ParameterSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseReturnTypeFromQuickInfo, parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await context.jsDocToDocSchema(varDec);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const args = (await pMapSeries((varDec.initializer as ArrowFunction).parameters, async (param) =>\n context.computeSchema(param)\n )) as ParameterSchema[];\n // example => export const useLanesContext: () => LanesContextModel | undefined = () => {\n if (varDec.type) {\n const funcType = await context.resolveType(varDec, '');\n if (isFunctionLike(funcType)) {\n return new FunctionLikeSchema(\n location,\n name,\n funcType.params,\n funcType.returnType,\n displaySig,\n modifiers as Modifier[],\n doc\n );\n }\n }\n const typeStr = parseReturnTypeFromQuickInfo(info);\n const returnType = await context.resolveType(varDec, typeStr);\n return new FunctionLikeSchema(location, name, args, returnType, displaySig, modifiers as Modifier[], doc);\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n return new VariableLikeSchema(location, name, displaySig, type, false, doc);\n }\n}\n\nfunction isFunctionLike(node: SchemaNode): node is FunctionLikeSchema {\n return node instanceof FunctionLikeSchema;\n}\n"],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import { SchemaNode } from '@teambit/semantics.entities.semantic-schema';
|
|
|
2
2
|
import { Node, VariableStatement } from 'typescript';
|
|
3
3
|
import { SchemaTransformer } from '../schema-transformer';
|
|
4
4
|
import { SchemaExtractorContext } from '../schema-extractor-context';
|
|
5
|
-
import {
|
|
5
|
+
import { Identifier } from '../identifier';
|
|
6
6
|
/**
|
|
7
7
|
* variable statement is a collection of variable declarations.
|
|
8
8
|
* e.g. `export const a = 1, b = () => {}, c = {};`
|
|
9
9
|
*/
|
|
10
10
|
export declare class VariableStatementTransformer implements SchemaTransformer {
|
|
11
11
|
predicate(node: Node): boolean;
|
|
12
|
-
getIdentifiers(node: VariableStatement): Promise<
|
|
12
|
+
getIdentifiers(node: VariableStatement): Promise<Identifier[]>;
|
|
13
13
|
transform(node: VariableStatement, context: SchemaExtractorContext): Promise<SchemaNode>;
|
|
14
14
|
}
|
|
@@ -34,9 +34,9 @@ function _typescript() {
|
|
|
34
34
|
};
|
|
35
35
|
return data;
|
|
36
36
|
}
|
|
37
|
-
function
|
|
38
|
-
const data = require("../
|
|
39
|
-
|
|
37
|
+
function _identifier() {
|
|
38
|
+
const data = require("../identifier");
|
|
39
|
+
_identifier = function () {
|
|
40
40
|
return data;
|
|
41
41
|
};
|
|
42
42
|
return data;
|
|
@@ -51,7 +51,7 @@ class VariableStatementTransformer {
|
|
|
51
51
|
}
|
|
52
52
|
async getIdentifiers(node) {
|
|
53
53
|
return node.declarationList.declarations.map(dec => {
|
|
54
|
-
return new (
|
|
54
|
+
return new (_identifier().Identifier)(dec.name.getText(), dec.getSourceFile().fileName);
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
async transform(node, context) {
|
|
@@ -60,7 +60,7 @@ class VariableStatementTransformer {
|
|
|
60
60
|
const schema = await context.visitDefinition(dec.name);
|
|
61
61
|
return schema;
|
|
62
62
|
});
|
|
63
|
-
return new (_semanticsEntities().ModuleSchema)(context.getLocation(node), (0, _lodash().compact)(schemas));
|
|
63
|
+
return new (_semanticsEntities().ModuleSchema)(context.getLocation(node), (0, _lodash().compact)(schemas), []);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
exports.VariableStatementTransformer = VariableStatementTransformer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VariableStatementTransformer","predicate","node","kind","ts","SyntaxKind","VariableStatement","getIdentifiers","declarationList","declarations","map","dec","
|
|
1
|
+
{"version":3,"names":["VariableStatementTransformer","predicate","node","kind","ts","SyntaxKind","VariableStatement","getIdentifiers","declarationList","declarations","map","dec","Identifier","name","getText","getSourceFile","fileName","transform","context","schemas","pMapSeries","schema","visitDefinition","ModuleSchema","getLocation","compact"],"sources":["variable-statement.ts"],"sourcesContent":["import { SchemaNode, ModuleSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport ts, { Node, VariableStatement } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\n/**\n * variable statement is a collection of variable declarations.\n * e.g. `export const a = 1, b = () => {}, c = {};`\n */\nexport class VariableStatementTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableStatement;\n }\n\n async getIdentifiers(node: VariableStatement) {\n return node.declarationList.declarations.map((dec) => {\n return new Identifier(dec.name.getText(), dec.getSourceFile().fileName);\n });\n }\n\n async transform(node: VariableStatement, context: SchemaExtractorContext): Promise<SchemaNode> {\n const schemas = await pMapSeries(node.declarationList.declarations, async (dec) => {\n // this will get the schema from variable-declaration\n const schema = await context.visitDefinition(dec.name);\n return schema;\n });\n return new ModuleSchema(context.getLocation(node), compact(schemas), []);\n }\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AACA;AACA;AACA;AACO,MAAMA,4BAA4B,CAA8B;EACrEC,SAAS,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,iBAAiB;EACtD;EAEA,MAAMC,cAAc,CAACL,IAAuB,EAAE;IAC5C,OAAOA,IAAI,CAACM,eAAe,CAACC,YAAY,CAACC,GAAG,CAAEC,GAAG,IAAK;MACpD,OAAO,KAAIC,wBAAU,EAACD,GAAG,CAACE,IAAI,CAACC,OAAO,EAAE,EAAEH,GAAG,CAACI,aAAa,EAAE,CAACC,QAAQ,CAAC;IACzE,CAAC,CAAC;EACJ;EAEA,MAAMC,SAAS,CAACf,IAAuB,EAAEgB,OAA+B,EAAuB;IAC7F,MAAMC,OAAO,GAAG,MAAM,IAAAC,qBAAU,EAAClB,IAAI,CAACM,eAAe,CAACC,YAAY,EAAE,MAAOE,GAAG,IAAK;MACjF;MACA,MAAMU,MAAM,GAAG,MAAMH,OAAO,CAACI,eAAe,CAACX,GAAG,CAACE,IAAI,CAAC;MACtD,OAAOQ,MAAM;IACf,CAAC,CAAC;IACF,OAAO,KAAIE,iCAAY,EAACL,OAAO,CAACM,WAAW,CAACtB,IAAI,CAAC,EAAE,IAAAuB,iBAAO,EAACN,OAAO,CAAC,EAAE,EAAE,CAAC;EAC1E;AACF;AAAC"}
|
|
@@ -2,13 +2,16 @@ import { Node, SourceFile } from 'typescript';
|
|
|
2
2
|
import { SchemaExtractor } from '@teambit/schema';
|
|
3
3
|
import type { Workspace } from '@teambit/workspace';
|
|
4
4
|
import { DependencyResolverMain } from '@teambit/dependency-resolver';
|
|
5
|
-
import { SchemaNode, APISchema } from '@teambit/semantics.entities.semantic-schema';
|
|
5
|
+
import { SchemaNode, APISchema, ModuleSchema } from '@teambit/semantics.entities.semantic-schema';
|
|
6
6
|
import { Component } from '@teambit/component';
|
|
7
7
|
import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';
|
|
8
8
|
import { EnvContext } from '@teambit/envs';
|
|
9
9
|
import { Formatter } from '@teambit/formatter';
|
|
10
|
+
import { Logger } from '@teambit/logger';
|
|
11
|
+
import { AspectLoaderMain } from '@teambit/aspect-loader';
|
|
10
12
|
import { TypescriptMain, SchemaTransformerSlot } from './typescript.main.runtime';
|
|
11
13
|
import { SchemaExtractorContext } from './schema-extractor-context';
|
|
14
|
+
import { Identifier } from './identifier';
|
|
12
15
|
import { ExtractorOptions } from './extractor-options';
|
|
13
16
|
export declare class TypeScriptExtractor implements SchemaExtractor {
|
|
14
17
|
private tsconfig;
|
|
@@ -17,14 +20,17 @@ export declare class TypeScriptExtractor implements SchemaExtractor {
|
|
|
17
20
|
private rootPath;
|
|
18
21
|
private depResolver;
|
|
19
22
|
private workspace;
|
|
20
|
-
|
|
23
|
+
private aspectLoader;
|
|
24
|
+
private logger;
|
|
25
|
+
constructor(tsconfig: any, schemaTransformerSlot: SchemaTransformerSlot, tsMain: TypescriptMain, rootPath: string, depResolver: DependencyResolverMain, workspace: Workspace | undefined, aspectLoader: AspectLoaderMain, logger: Logger);
|
|
21
26
|
parseSourceFile(file: AbstractVinyl): SourceFile;
|
|
22
27
|
/**
|
|
23
28
|
* extract a component schema.
|
|
24
29
|
*/
|
|
25
30
|
extract(component: Component, formatter?: Formatter): Promise<APISchema>;
|
|
31
|
+
computeInternalModules(context: SchemaExtractorContext, internalFiles: AbstractVinyl[]): Promise<ModuleSchema[]>;
|
|
26
32
|
dispose(): void;
|
|
27
|
-
|
|
33
|
+
computeIdentifiers(node: Node, context: SchemaExtractorContext): Promise<Identifier[]>;
|
|
28
34
|
private createContext;
|
|
29
35
|
private getComponentDeps;
|
|
30
36
|
private tsserver;
|
|
@@ -34,6 +40,6 @@ export declare class TypeScriptExtractor implements SchemaExtractor {
|
|
|
34
40
|
/**
|
|
35
41
|
* select the correct transformer for a node.
|
|
36
42
|
*/
|
|
37
|
-
|
|
43
|
+
getTransformer(node: Node, context: SchemaExtractorContext): import("./schema-transformer").SchemaTransformer | undefined;
|
|
38
44
|
static from(options: ExtractorOptions): (context: EnvContext) => TypeScriptExtractor;
|
|
39
45
|
}
|
|
@@ -15,7 +15,7 @@ function _defineProperty2() {
|
|
|
15
15
|
return data;
|
|
16
16
|
}
|
|
17
17
|
function _typescript() {
|
|
18
|
-
const data =
|
|
18
|
+
const data = _interopRequireWildcard(require("typescript"));
|
|
19
19
|
_typescript = function () {
|
|
20
20
|
return data;
|
|
21
21
|
};
|
|
@@ -35,6 +35,20 @@ function _semanticsEntities() {
|
|
|
35
35
|
};
|
|
36
36
|
return data;
|
|
37
37
|
}
|
|
38
|
+
function _aspectLoader() {
|
|
39
|
+
const data = _interopRequireWildcard(require("@teambit/aspect-loader"));
|
|
40
|
+
_aspectLoader = function () {
|
|
41
|
+
return data;
|
|
42
|
+
};
|
|
43
|
+
return data;
|
|
44
|
+
}
|
|
45
|
+
function _pMapSeries() {
|
|
46
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
47
|
+
_pMapSeries = function () {
|
|
48
|
+
return data;
|
|
49
|
+
};
|
|
50
|
+
return data;
|
|
51
|
+
}
|
|
38
52
|
function _lodash() {
|
|
39
53
|
const data = require("lodash");
|
|
40
54
|
_lodash = function () {
|
|
@@ -56,9 +70,9 @@ function _schemaExtractorContext() {
|
|
|
56
70
|
};
|
|
57
71
|
return data;
|
|
58
72
|
}
|
|
59
|
-
function
|
|
60
|
-
const data = require("./
|
|
61
|
-
|
|
73
|
+
function _identifierList() {
|
|
74
|
+
const data = require("./identifier-list");
|
|
75
|
+
_identifierList = function () {
|
|
62
76
|
return data;
|
|
63
77
|
};
|
|
64
78
|
return data;
|
|
@@ -70,14 +84,18 @@ function _typescript2() {
|
|
|
70
84
|
};
|
|
71
85
|
return data;
|
|
72
86
|
}
|
|
87
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
88
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
73
89
|
class TypeScriptExtractor {
|
|
74
|
-
constructor(tsconfig, schemaTransformerSlot, tsMain, rootPath, depResolver, workspace) {
|
|
90
|
+
constructor(tsconfig, schemaTransformerSlot, tsMain, rootPath, depResolver, workspace, aspectLoader, logger) {
|
|
75
91
|
this.tsconfig = tsconfig;
|
|
76
92
|
this.schemaTransformerSlot = schemaTransformerSlot;
|
|
77
93
|
this.tsMain = tsMain;
|
|
78
94
|
this.rootPath = rootPath;
|
|
79
95
|
this.depResolver = depResolver;
|
|
80
96
|
this.workspace = workspace;
|
|
97
|
+
this.aspectLoader = aspectLoader;
|
|
98
|
+
this.logger = logger;
|
|
81
99
|
(0, _defineProperty2().default)(this, "tsserver", undefined);
|
|
82
100
|
}
|
|
83
101
|
parseSourceFile(file) {
|
|
@@ -94,26 +112,48 @@ class TypeScriptExtractor {
|
|
|
94
112
|
async extract(component, formatter) {
|
|
95
113
|
const tsserver = await this.getTsServer();
|
|
96
114
|
const mainFile = component.mainFile;
|
|
97
|
-
const
|
|
115
|
+
const compatibleExts = ['.tsx', '.jsx', '.ts', '.js'];
|
|
116
|
+
const internalFiles = component.filesystem.files.filter(file => compatibleExts.includes(file.extname) && file.path !== mainFile.path);
|
|
117
|
+
const allFiles = [mainFile, ...internalFiles];
|
|
98
118
|
const context = await this.createContext(tsserver, component, formatter);
|
|
99
|
-
|
|
100
|
-
|
|
119
|
+
await (0, _pMapSeries().default)(allFiles, async file => {
|
|
120
|
+
const ast = this.parseSourceFile(file);
|
|
121
|
+
const identifiers = await this.computeIdentifiers(ast, context); // compute for every file
|
|
122
|
+
const cacheKey = context.getIdentifierKeyForNode(ast);
|
|
123
|
+
context.setIdentifiers(cacheKey, new (_identifierList().IdentifierList)(identifiers));
|
|
124
|
+
});
|
|
125
|
+
const mainAst = this.parseSourceFile(mainFile);
|
|
101
126
|
const moduleSchema = await this.computeSchema(mainAst, context);
|
|
102
127
|
moduleSchema.flatExportsRecursively();
|
|
103
128
|
const apiScheme = moduleSchema;
|
|
129
|
+
const internals = await this.computeInternalModules(context, internalFiles);
|
|
104
130
|
const location = context.getLocation(mainAst);
|
|
105
|
-
return new (_semanticsEntities().APISchema)(location, apiScheme, component.id);
|
|
131
|
+
return new (_semanticsEntities().APISchema)(location, apiScheme, internals, component.id);
|
|
132
|
+
}
|
|
133
|
+
async computeInternalModules(context, internalFiles) {
|
|
134
|
+
const internals = (0, _lodash().compact)(await Promise.all([...context.internalIdentifiers.entries()].map(async ([filePath]) => {
|
|
135
|
+
const file = internalFiles.find(internalFile => internalFile.path === filePath);
|
|
136
|
+
if (!file) return undefined;
|
|
137
|
+
const fileAst = this.parseSourceFile(file);
|
|
138
|
+
const moduleSchema = await this.computeSchema(fileAst, context);
|
|
139
|
+
moduleSchema.flatExportsRecursively();
|
|
140
|
+
return moduleSchema;
|
|
141
|
+
})));
|
|
142
|
+
return internals;
|
|
106
143
|
}
|
|
107
144
|
dispose() {
|
|
108
145
|
if (!this.tsserver) return;
|
|
109
146
|
this.tsserver.killTsServer();
|
|
110
147
|
}
|
|
111
|
-
async
|
|
148
|
+
async computeIdentifiers(node, context) {
|
|
112
149
|
const transformer = this.getTransformer(node, context);
|
|
150
|
+
let identifiers = [];
|
|
113
151
|
if (!transformer || !transformer.getIdentifiers) {
|
|
114
|
-
|
|
152
|
+
this.logger.warn(new (_exceptions().TransformerNotFound)(node, context.component, context.getLocation(node)).toString());
|
|
153
|
+
} else {
|
|
154
|
+
identifiers = await transformer.getIdentifiers(node, context);
|
|
115
155
|
}
|
|
116
|
-
return
|
|
156
|
+
return identifiers;
|
|
117
157
|
}
|
|
118
158
|
async createContext(tsserver, component, formatter) {
|
|
119
159
|
const componentDeps = await this.getComponentDeps(component);
|
|
@@ -138,14 +178,20 @@ class TypeScriptExtractor {
|
|
|
138
178
|
}
|
|
139
179
|
async computeSchema(node, context) {
|
|
140
180
|
const transformer = this.getTransformer(node, context);
|
|
141
|
-
|
|
142
|
-
|
|
181
|
+
if (!transformer) {
|
|
182
|
+
return new (_semanticsEntities().UnImplementedSchema)(context.getLocation(node), node.getText(), _typescript().SyntaxKind[node.kind]);
|
|
183
|
+
}
|
|
143
184
|
return transformer.transform(node, context);
|
|
144
185
|
}
|
|
145
186
|
async getComponentIDByPath(file) {
|
|
146
187
|
if (!this.workspace) {
|
|
147
188
|
return null;
|
|
148
189
|
}
|
|
190
|
+
const coreAspectIds = this.aspectLoader.getCoreAspectIds();
|
|
191
|
+
const matchingCoreAspect = coreAspectIds.find(c => file === (0, _aspectLoader().getCoreAspectPackageName)(c));
|
|
192
|
+
if (matchingCoreAspect) {
|
|
193
|
+
return this.workspace.resolveComponentId(matchingCoreAspect);
|
|
194
|
+
}
|
|
149
195
|
return this.workspace.getComponentIdByPath(file);
|
|
150
196
|
}
|
|
151
197
|
|
|
@@ -154,8 +200,13 @@ class TypeScriptExtractor {
|
|
|
154
200
|
*/
|
|
155
201
|
getTransformer(node, context) {
|
|
156
202
|
const transformers = (0, _lodash().flatten)(this.schemaTransformerSlot.values());
|
|
157
|
-
const transformer = transformers.find(singleTransformer =>
|
|
158
|
-
|
|
203
|
+
const transformer = transformers.find(singleTransformer => {
|
|
204
|
+
return singleTransformer.predicate(node);
|
|
205
|
+
});
|
|
206
|
+
if (!transformer) {
|
|
207
|
+
this.logger.warn(new (_exceptions().TransformerNotFound)(node, context.component, context.getLocation(node)).toString());
|
|
208
|
+
return undefined;
|
|
209
|
+
}
|
|
159
210
|
return transformer;
|
|
160
211
|
}
|
|
161
212
|
static from(options) {
|
|
@@ -165,9 +216,11 @@ class TypeScriptExtractor {
|
|
|
165
216
|
compilerOptions: options.compilerOptions
|
|
166
217
|
};
|
|
167
218
|
const tsMain = context.getAspect(_typescript2().TypescriptAspect.id);
|
|
219
|
+
const aspectLoaderMain = context.getAspect(_aspectLoader().default.id);
|
|
220
|
+
|
|
168
221
|
// When loading the env from a scope you don't have a workspace
|
|
169
222
|
const wsPath = ((_tsMain$workspace = tsMain.workspace) === null || _tsMain$workspace === void 0 ? void 0 : _tsMain$workspace.path) || '';
|
|
170
|
-
return new TypeScriptExtractor(tsconfig, tsMain.schemaTransformerSlot, tsMain, wsPath, tsMain.depResolver, tsMain.workspace);
|
|
223
|
+
return new TypeScriptExtractor(tsconfig, tsMain.schemaTransformerSlot, tsMain, wsPath, tsMain.depResolver, tsMain.workspace, aspectLoaderMain, context.createLogger(options.name));
|
|
171
224
|
};
|
|
172
225
|
}
|
|
173
226
|
}
|