@teambit/typescript 0.0.0-004aea01bc027e428dfd0f6583f49a1b8286bdd0
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/cmds/check-types.cmd.ts +81 -0
- package/dist/cmds/check-types.cmd.d.ts +35 -0
- package/dist/cmds/check-types.cmd.js +105 -0
- package/dist/cmds/check-types.cmd.js.map +1 -0
- package/dist/compiler-options.d.ts +22 -0
- package/dist/compiler-options.js +3 -0
- package/dist/compiler-options.js.map +1 -0
- package/dist/esm.mjs +21 -0
- package/dist/exceptions/index.d.ts +1 -0
- package/dist/exceptions/index.js +20 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/exceptions/transformer-not-found.d.ts +8 -0
- package/dist/exceptions/transformer-not-found.js +26 -0
- package/dist/exceptions/transformer-not-found.js.map +1 -0
- package/dist/export-identifier.d.ts +6 -0
- package/dist/export-identifier.js +29 -0
- package/dist/export-identifier.js.map +1 -0
- package/dist/extractor-options.d.ts +26 -0
- package/dist/extractor-options.js +3 -0
- package/dist/extractor-options.js.map +1 -0
- 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 +11 -0
- package/dist/identifier.js +45 -0
- package/dist/identifier.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1760469561956.js +7 -0
- package/dist/remove-types-task.d.ts +12 -0
- package/dist/remove-types-task.js +64 -0
- package/dist/remove-types-task.js.map +1 -0
- package/dist/schema-extractor-context.d.ts +164 -0
- package/dist/schema-extractor-context.js +745 -0
- package/dist/schema-extractor-context.js.map +1 -0
- package/dist/schema-transformer.d.ts +19 -0
- package/dist/schema-transformer.js +3 -0
- package/dist/schema-transformer.js.map +1 -0
- package/dist/schema-transformer.plugin.d.ts +9 -0
- package/dist/schema-transformer.plugin.js +22 -0
- package/dist/schema-transformer.plugin.js.map +1 -0
- package/dist/sourceFileTransformers/class.d.ts +2 -0
- package/dist/sourceFileTransformers/class.js +57 -0
- package/dist/sourceFileTransformers/class.js.map +1 -0
- package/dist/sourceFileTransformers/empty-line-encoder.d.ts +14 -0
- package/dist/sourceFileTransformers/empty-line-encoder.js +62 -0
- package/dist/sourceFileTransformers/empty-line-encoder.js.map +1 -0
- package/dist/sourceFileTransformers/export.d.ts +2 -0
- package/dist/sourceFileTransformers/export.js +58 -0
- package/dist/sourceFileTransformers/export.js.map +1 -0
- package/dist/sourceFileTransformers/expression-statement.d.ts +2 -0
- package/dist/sourceFileTransformers/expression-statement.js +58 -0
- package/dist/sourceFileTransformers/expression-statement.js.map +1 -0
- package/dist/sourceFileTransformers/function.d.ts +2 -0
- package/dist/sourceFileTransformers/function.js +119 -0
- package/dist/sourceFileTransformers/function.js.map +1 -0
- package/dist/sourceFileTransformers/import.d.ts +2 -0
- package/dist/sourceFileTransformers/import.js +71 -0
- package/dist/sourceFileTransformers/import.js.map +1 -0
- package/dist/sourceFileTransformers/index.d.ts +12 -0
- package/dist/sourceFileTransformers/index.js +137 -0
- package/dist/sourceFileTransformers/index.js.map +1 -0
- package/dist/sourceFileTransformers/interface.d.ts +2 -0
- package/dist/sourceFileTransformers/interface.js +50 -0
- package/dist/sourceFileTransformers/interface.js.map +1 -0
- package/dist/sourceFileTransformers/replaceName.d.ts +1 -0
- package/dist/sourceFileTransformers/replaceName.js +19 -0
- package/dist/sourceFileTransformers/replaceName.js.map +1 -0
- package/dist/sourceFileTransformers/transform.d.ts +12 -0
- package/dist/sourceFileTransformers/transform.js +76 -0
- package/dist/sourceFileTransformers/transform.js.map +1 -0
- package/dist/sourceFileTransformers/type-reference.d.ts +2 -0
- package/dist/sourceFileTransformers/type-reference.js +38 -0
- package/dist/sourceFileTransformers/type-reference.js.map +1 -0
- package/dist/sourceFileTransformers/typeAlias.d.ts +2 -0
- package/dist/sourceFileTransformers/typeAlias.js +41 -0
- package/dist/sourceFileTransformers/typeAlias.js.map +1 -0
- package/dist/sourceFileTransformers/variable.d.ts +2 -0
- package/dist/sourceFileTransformers/variable.js +41 -0
- package/dist/sourceFileTransformers/variable.js.map +1 -0
- package/dist/transform-source-file.spec.d.ts +1 -0
- package/dist/transform-source-file.spec.js +182 -0
- package/dist/transform-source-file.spec.js.map +1 -0
- package/dist/transformers/array-literal-expression.d.ts +10 -0
- package/dist/transformers/array-literal-expression.js +51 -0
- package/dist/transformers/array-literal-expression.js.map +1 -0
- package/dist/transformers/array-type.d.ts +10 -0
- package/dist/transformers/array-type.js +37 -0
- package/dist/transformers/array-type.js.map +1 -0
- package/dist/transformers/binding-element.d.ts +17 -0
- package/dist/transformers/binding-element.js +63 -0
- package/dist/transformers/binding-element.js.map +1 -0
- package/dist/transformers/class-declaration.d.ts +12 -0
- package/dist/transformers/class-declaration.js +116 -0
- package/dist/transformers/class-declaration.js.map +1 -0
- package/dist/transformers/conditional-type.d.ts +10 -0
- package/dist/transformers/conditional-type.js +38 -0
- package/dist/transformers/conditional-type.js.map +1 -0
- package/dist/transformers/constructor.d.ts +10 -0
- package/dist/transformers/constructor.js +49 -0
- package/dist/transformers/constructor.js.map +1 -0
- package/dist/transformers/decorator.d.ts +10 -0
- package/dist/transformers/decorator.js +54 -0
- package/dist/transformers/decorator.js.map +1 -0
- 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-assignment.d.ts +14 -0
- package/dist/transformers/export-assignment.js +54 -0
- package/dist/transformers/export-assignment.js.map +1 -0
- package/dist/transformers/export-declaration.d.ts +10 -0
- package/dist/transformers/export-declaration.js +154 -0
- package/dist/transformers/export-declaration.js.map +1 -0
- package/dist/transformers/expression-statement.d.ts +10 -0
- package/dist/transformers/expression-statement.js +36 -0
- package/dist/transformers/expression-statement.js.map +1 -0
- package/dist/transformers/function-like.d.ts +11 -0
- package/dist/transformers/function-like.js +81 -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 +46 -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 +72 -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 +41 -0
- package/dist/transformers/index-signature.js.map +1 -0
- package/dist/transformers/index.d.ts +43 -0
- package/dist/transformers/index.js +566 -0
- package/dist/transformers/index.js.map +1 -0
- package/dist/transformers/indexed-access-type.d.ts +10 -0
- package/dist/transformers/indexed-access-type.js +36 -0
- package/dist/transformers/indexed-access-type.js.map +1 -0
- package/dist/transformers/interface-declaration.d.ts +11 -0
- package/dist/transformers/interface-declaration.js +86 -0
- package/dist/transformers/interface-declaration.js.map +1 -0
- package/dist/transformers/intersection-type.d.ts +10 -0
- package/dist/transformers/intersection-type.js +47 -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 +54 -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 +39 -0
- package/dist/transformers/literal-type.js.map +1 -0
- package/dist/transformers/literal-value.d.ts +12 -0
- package/dist/transformers/literal-value.js +35 -0
- package/dist/transformers/literal-value.js.map +1 -0
- package/dist/transformers/module-declaration.d.ts +10 -0
- package/dist/transformers/module-declaration.js +36 -0
- package/dist/transformers/module-declaration.js.map +1 -0
- package/dist/transformers/named-tuple.d.ts +10 -0
- package/dist/transformers/named-tuple.js +37 -0
- package/dist/transformers/named-tuple.js.map +1 -0
- package/dist/transformers/object-literal-expression.d.ts +9 -0
- package/dist/transformers/object-literal-expression.js +51 -0
- package/dist/transformers/object-literal-expression.js.map +1 -0
- package/dist/transformers/parameter.d.ts +14 -0
- package/dist/transformers/parameter.js +109 -0
- package/dist/transformers/parameter.js.map +1 -0
- package/dist/transformers/parenthesized-type.d.ts +10 -0
- package/dist/transformers/parenthesized-type.js +35 -0
- package/dist/transformers/parenthesized-type.js.map +1 -0
- package/dist/transformers/property-assignment.d.ts +9 -0
- package/dist/transformers/property-assignment.js +39 -0
- package/dist/transformers/property-assignment.js.map +1 -0
- package/dist/transformers/property-declaration.d.ts +11 -0
- package/dist/transformers/property-declaration.js +56 -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 +44 -0
- package/dist/transformers/set-accessor.js.map +1 -0
- package/dist/transformers/source-file-transformer.d.ts +15 -0
- package/dist/transformers/source-file-transformer.js +108 -0
- package/dist/transformers/source-file-transformer.js.map +1 -0
- package/dist/transformers/template-literal-type-span.d.ts +10 -0
- package/dist/transformers/template-literal-type-span.js +36 -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 +44 -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 +34 -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 +46 -0
- package/dist/transformers/tuple-type.js.map +1 -0
- package/dist/transformers/type-alias.d.ts +11 -0
- package/dist/transformers/type-alias.js +48 -0
- package/dist/transformers/type-alias.js.map +1 -0
- package/dist/transformers/type-literal.d.ts +14 -0
- package/dist/transformers/type-literal.js +48 -0
- package/dist/transformers/type-literal.js.map +1 -0
- package/dist/transformers/type-operator.d.ts +15 -0
- package/dist/transformers/type-operator.js +51 -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 +37 -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 +41 -0
- package/dist/transformers/type-query.js.map +1 -0
- package/dist/transformers/type-reference.d.ts +17 -0
- package/dist/transformers/type-reference.js +58 -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 +47 -0
- package/dist/transformers/union-type.js.map +1 -0
- package/dist/transformers/utils/jsdoc-to-doc-schema.d.ts +5 -0
- package/dist/transformers/utils/jsdoc-to-doc-schema.js +114 -0
- package/dist/transformers/utils/jsdoc-to-doc-schema.js.map +1 -0
- package/dist/transformers/utils/parse-type-from-quick-info.d.ts +36 -0
- package/dist/transformers/utils/parse-type-from-quick-info.js +111 -0
- package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -0
- package/dist/transformers/variable-declaration.d.ts +11 -0
- package/dist/transformers/variable-declaration.js +102 -0
- package/dist/transformers/variable-declaration.js.map +1 -0
- package/dist/transformers/variable-statement.d.ts +14 -0
- package/dist/transformers/variable-statement.js +67 -0
- package/dist/transformers/variable-statement.js.map +1 -0
- package/dist/tsconfig.default.json +25 -0
- package/dist/typescript.aspect.d.ts +2 -0
- package/dist/typescript.aspect.js +18 -0
- package/dist/typescript.aspect.js.map +1 -0
- package/dist/typescript.composition.d.ts +1 -0
- package/dist/typescript.composition.js +29 -0
- package/dist/typescript.composition.js.map +1 -0
- package/dist/typescript.docs.mdx +8 -0
- package/dist/typescript.extractor.d.ts +52 -0
- package/dist/typescript.extractor.js +254 -0
- package/dist/typescript.extractor.js.map +1 -0
- package/dist/typescript.main.runtime.d.ts +130 -0
- package/dist/typescript.main.runtime.js +400 -0
- package/dist/typescript.main.runtime.js.map +1 -0
- package/dist/typescript.parser.d.ts +13 -0
- package/dist/typescript.parser.js +142 -0
- package/dist/typescript.parser.js.map +1 -0
- package/dist/typescript.parser.spec.d.ts +1 -0
- package/dist/typescript.parser.spec.js +189 -0
- package/dist/typescript.parser.spec.js.map +1 -0
- package/esm.mjs +21 -0
- package/exceptions/index.ts +1 -0
- package/exceptions/transformer-not-found.ts +20 -0
- package/package.json +86 -0
- package/sourceFileTransformers/class.ts +73 -0
- package/sourceFileTransformers/empty-line-encoder.ts +56 -0
- package/sourceFileTransformers/export.ts +65 -0
- package/sourceFileTransformers/expression-statement.ts +48 -0
- package/sourceFileTransformers/function.ts +170 -0
- package/sourceFileTransformers/import.ts +101 -0
- package/sourceFileTransformers/index.ts +14 -0
- package/sourceFileTransformers/interface.ts +41 -0
- package/sourceFileTransformers/replaceName.ts +11 -0
- package/sourceFileTransformers/transform.ts +70 -0
- package/sourceFileTransformers/type-reference.ts +19 -0
- package/sourceFileTransformers/typeAlias.ts +25 -0
- package/sourceFileTransformers/variable.ts +25 -0
- package/transformers/array-literal-expression.ts +31 -0
- package/transformers/array-type.ts +22 -0
- package/transformers/binding-element.ts +35 -0
- package/transformers/class-declaration.ts +109 -0
- package/transformers/conditional-type.ts +24 -0
- package/transformers/constructor.ts +37 -0
- package/transformers/decorator.ts +30 -0
- package/transformers/enum-declaration.ts +32 -0
- package/transformers/export-assignment.ts +48 -0
- package/transformers/export-declaration.ts +182 -0
- package/transformers/expression-statement.ts +21 -0
- package/transformers/function-like.ts +72 -0
- package/transformers/get-accessor.ts +25 -0
- package/transformers/import-declaration.ts +57 -0
- package/transformers/index-signature.ts +27 -0
- package/transformers/index.ts +43 -0
- package/transformers/indexed-access-type.ts +22 -0
- package/transformers/interface-declaration.ts +68 -0
- package/transformers/intersection-type.ts +26 -0
- package/transformers/keyword-type.ts +40 -0
- package/transformers/literal-type.ts +24 -0
- package/transformers/literal-value.ts +40 -0
- package/transformers/module-declaration.ts +21 -0
- package/transformers/named-tuple.ts +23 -0
- package/transformers/object-literal-expression.ts +29 -0
- package/transformers/parameter.ts +115 -0
- package/transformers/parenthesized-type.ts +21 -0
- package/transformers/property-assignment.ts +24 -0
- package/transformers/property-declaration.ts +35 -0
- package/transformers/set-accessor.ts +27 -0
- package/transformers/source-file-transformer.ts +95 -0
- package/transformers/template-literal-type-span.ts +22 -0
- package/transformers/template-literal-type.ts +26 -0
- package/transformers/this-type.ts +20 -0
- package/transformers/tuple-type.ts +25 -0
- package/transformers/type-alias.ts +27 -0
- package/transformers/type-literal.ts +27 -0
- package/transformers/type-operator.ts +38 -0
- package/transformers/type-predicate.ts +23 -0
- package/transformers/type-query.ts +26 -0
- package/transformers/type-reference.ts +37 -0
- package/transformers/union-type.ts +26 -0
- package/transformers/utils/jsdoc-to-doc-schema.ts +114 -0
- package/transformers/utils/parse-type-from-quick-info.ts +99 -0
- package/transformers/variable-declaration.ts +111 -0
- package/transformers/variable-statement.ts +34 -0
- package/types/asset.d.ts +41 -0
- package/types/style.d.ts +42 -0
- package/typescript.composition.tsx +7 -0
- package/typescript.docs.mdx +8 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UnionTypeTransformer = void 0;
|
|
7
|
+
function _typescript() {
|
|
8
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
9
|
+
_typescript = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _semanticsEntities() {
|
|
15
|
+
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
16
|
+
_semanticsEntities = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _pMapSeries() {
|
|
22
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
23
|
+
_pMapSeries = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
|
+
class UnionTypeTransformer {
|
|
30
|
+
predicate(node) {
|
|
31
|
+
return node.kind === _typescript().default.SyntaxKind.UnionType;
|
|
32
|
+
}
|
|
33
|
+
async getIdentifiers() {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
async transform(node, context) {
|
|
37
|
+
const types = await (0, _pMapSeries().default)(node.types, async type => {
|
|
38
|
+
const typeSchema = context.computeSchema(type);
|
|
39
|
+
return typeSchema;
|
|
40
|
+
});
|
|
41
|
+
const location = context.getLocation(node);
|
|
42
|
+
return new (_semanticsEntities().TypeUnionSchema)(location, types);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.UnionTypeTransformer = UnionTypeTransformer;
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=union-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_pMapSeries","e","__esModule","default","UnionTypeTransformer","predicate","node","kind","ts","SyntaxKind","UnionType","getIdentifiers","transform","context","types","pMapSeries","type","typeSchema","computeSchema","location","getLocation","TypeUnionSchema","exports"],"sources":["union-type.ts"],"sourcesContent":["import type { Node, UnionTypeNode } from 'typescript';\nimport ts from 'typescript';\nimport { TypeUnionSchema } from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport type { SchemaTransformer } from '../schema-transformer';\nimport type { SchemaExtractorContext } from '../schema-extractor-context';\nimport type { 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":";;;;;;AACA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,mBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsC,SAAAC,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAK/B,MAAMG,oBAAoB,CAA8B;EAC7DC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,SAAS;EAC9C;EAEA,MAAMC,cAAcA,CAAA,EAA0B;IAC5C,OAAO,EAAE;EACX;EAEA,MAAMC,SAASA,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;AAACQ,OAAA,CAAAlB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { JSDocTag } from 'typescript';
|
|
2
|
+
import { TagSchema } from '@teambit/semantics.entities.semantic-schema';
|
|
3
|
+
import type { Formatter } from '@teambit/formatter';
|
|
4
|
+
import type { SchemaExtractorContext } from '../../schema-extractor-context';
|
|
5
|
+
export declare function tagParser(tag: JSDocTag, context: SchemaExtractorContext, formatter?: Formatter): Promise<TagSchema>;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.tagParser = tagParser;
|
|
7
|
+
function _typescript() {
|
|
8
|
+
const data = require("typescript");
|
|
9
|
+
_typescript = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _semanticsEntities() {
|
|
15
|
+
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
16
|
+
_semanticsEntities = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
/* eslint-disable complexity */
|
|
22
|
+
/* eslint-disable no-fallthrough */
|
|
23
|
+
|
|
24
|
+
async function tagParser(tag, context, formatter) {
|
|
25
|
+
// for some reason, in some cases, if `tag.getSourceFile()` is not provided to the `getText()`, it throws "Cannot read property 'text' of undefined"
|
|
26
|
+
switch (tag.kind) {
|
|
27
|
+
case _typescript().SyntaxKind.JSDocReturnTag:
|
|
28
|
+
return returnTag(tag, context);
|
|
29
|
+
case _typescript().SyntaxKind.JSDocPropertyTag:
|
|
30
|
+
return propertyLikeTag(tag, context);
|
|
31
|
+
case _typescript().SyntaxKind.JSDocParameterTag:
|
|
32
|
+
return propertyLikeTag(tag, context);
|
|
33
|
+
case _typescript().SyntaxKind.JSDocAugmentsTag:
|
|
34
|
+
return simpleTag(tag, _semanticsEntities().TagName.augments, context);
|
|
35
|
+
case _typescript().SyntaxKind.JSDocAuthorTag:
|
|
36
|
+
return simpleTag(tag, _semanticsEntities().TagName.author, context);
|
|
37
|
+
case _typescript().SyntaxKind.JSDocClassTag:
|
|
38
|
+
return simpleTag(tag, _semanticsEntities().TagName.class, context);
|
|
39
|
+
case _typescript().SyntaxKind.JSDocCallbackTag:
|
|
40
|
+
return simpleTag(tag, _semanticsEntities().TagName.callback, context);
|
|
41
|
+
case _typescript().SyntaxKind.JSDocPublicTag:
|
|
42
|
+
return simpleTag(tag, _semanticsEntities().TagName.public, context);
|
|
43
|
+
case _typescript().SyntaxKind.JSDocPrivateTag:
|
|
44
|
+
return simpleTag(tag, _semanticsEntities().TagName.private, context);
|
|
45
|
+
case _typescript().SyntaxKind.JSDocProtectedTag:
|
|
46
|
+
return simpleTag(tag, _semanticsEntities().TagName.protected, context);
|
|
47
|
+
case _typescript().SyntaxKind.JSDocReadonlyTag:
|
|
48
|
+
return simpleTag(tag, _semanticsEntities().TagName.readonly, context);
|
|
49
|
+
case _typescript().SyntaxKind.JSDocOverrideTag:
|
|
50
|
+
return simpleTag(tag, _semanticsEntities().TagName.override, context);
|
|
51
|
+
case _typescript().SyntaxKind.JSDocDeprecatedTag:
|
|
52
|
+
return simpleTag(tag, _semanticsEntities().TagName.deprecated, context);
|
|
53
|
+
case _typescript().SyntaxKind.JSDocSeeTag:
|
|
54
|
+
return simpleTag(tag, _semanticsEntities().TagName.see, context);
|
|
55
|
+
case _typescript().SyntaxKind.JSDocEnumTag:
|
|
56
|
+
return simpleTag(tag, _semanticsEntities().TagName.enum, context);
|
|
57
|
+
case _typescript().SyntaxKind.JSDocThisTag:
|
|
58
|
+
return simpleTag(tag, _semanticsEntities().TagName.this, context);
|
|
59
|
+
case _typescript().SyntaxKind.JSDocTypeTag:
|
|
60
|
+
return simpleTag(tag, _semanticsEntities().TagName.type, context);
|
|
61
|
+
case _typescript().SyntaxKind.JSDocTemplateTag:
|
|
62
|
+
return simpleTag(tag, _semanticsEntities().TagName.template, context);
|
|
63
|
+
case _typescript().SyntaxKind.JSDocTypedefTag:
|
|
64
|
+
return simpleTag(tag, _semanticsEntities().TagName.typedef, context);
|
|
65
|
+
case _typescript().SyntaxKind.JSDocImplementsTag:
|
|
66
|
+
return simpleTag(tag, _semanticsEntities().TagName.implements, context);
|
|
67
|
+
default:
|
|
68
|
+
{
|
|
69
|
+
const tagName = tag.tagName.getText(tag.getSourceFile());
|
|
70
|
+
if (tagName === 'example') {
|
|
71
|
+
const comment = (0, _typescript().getTextOfJSDocComment)(tag.comment);
|
|
72
|
+
if (!formatter) return simpleTag(tag, tagName, context);
|
|
73
|
+
try {
|
|
74
|
+
const extractedSnippetToFormat = comment && extractCodeBlock(comment);
|
|
75
|
+
const formattedComment = extractedSnippetToFormat && (await formatter.formatSnippet(extractedSnippetToFormat.code));
|
|
76
|
+
return new (_semanticsEntities().TagSchema)(context.getLocation(tag), tagName, formattedComment ?? undefined);
|
|
77
|
+
} catch {
|
|
78
|
+
return simpleTag(tag, tagName, context);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return simpleTag(tag, tagName, context);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function simpleTag(tag, tagName, context) {
|
|
86
|
+
return new (_semanticsEntities().TagSchema)(context.getLocation(tag), tagName, (0, _typescript().getTextOfJSDocComment)(tag.comment));
|
|
87
|
+
}
|
|
88
|
+
async function returnTag(tag, context) {
|
|
89
|
+
const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;
|
|
90
|
+
return new (_semanticsEntities().ReturnTagSchema)(context.getLocation(tag), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
|
|
91
|
+
}
|
|
92
|
+
async function propertyLikeTag(tag, context) {
|
|
93
|
+
const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;
|
|
94
|
+
return new (_semanticsEntities().PropertyLikeTagSchema)(context.getLocation(tag), tag.name.getText(), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
|
|
95
|
+
}
|
|
96
|
+
function extractCodeBlock(text) {
|
|
97
|
+
let processedText = text;
|
|
98
|
+
if (text.endsWith(';') && !text.endsWith('```')) {
|
|
99
|
+
processedText = text.slice(0, -1) + '```';
|
|
100
|
+
}
|
|
101
|
+
const regex = /```([\w+-]*)\s*([\s\S]*?)```/;
|
|
102
|
+
const match = processedText.match(regex);
|
|
103
|
+
if (match) {
|
|
104
|
+
const lang = match[1];
|
|
105
|
+
const code = match[2];
|
|
106
|
+
return {
|
|
107
|
+
lang,
|
|
108
|
+
code
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=jsdoc-to-doc-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_typescript","data","require","_semanticsEntities","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","extractedSnippetToFormat","extractCodeBlock","formattedComment","formatSnippet","code","TagSchema","getLocation","undefined","typeExpression","computeSchema","ReturnTagSchema","PropertyLikeTagSchema","name","text","processedText","endsWith","slice","regex","match","lang"],"sources":["jsdoc-to-doc-schema.ts"],"sourcesContent":["/* eslint-disable complexity */\n/* eslint-disable no-fallthrough */\nimport type { JSDocParameterTag, JSDocPropertyLikeTag, JSDocPropertyTag, JSDocReturnTag, JSDocTag } from 'typescript';\nimport { getTextOfJSDocComment, SyntaxKind } from 'typescript';\nimport {\n PropertyLikeTagSchema,\n ReturnTagSchema,\n TagName,\n TagSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport type { Formatter } from '@teambit/formatter';\nimport type { 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 extractedSnippetToFormat = comment && extractCodeBlock(comment);\n const formattedComment =\n extractedSnippetToFormat && (await formatter.formatSnippet(extractedSnippetToFormat.code));\n return new TagSchema(context.getLocation(tag), tagName, formattedComment ?? undefined);\n } catch {\n return simpleTag(tag, tagName, context);\n }\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\nfunction extractCodeBlock(text: string): { lang: string; code: string } | null {\n let processedText = text;\n if (text.endsWith(';') && !text.endsWith('```')) {\n processedText = text.slice(0, -1) + '```';\n }\n const regex = /```([\\w+-]*)\\s*([\\s\\S]*?)```/;\n const match = processedText.match(regex);\n\n if (match) {\n const lang = match[1];\n const code = match[2];\n return { lang, code };\n }\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type ts from 'typescript/lib/tsserverlibrary';
|
|
2
|
+
export declare const UNRESOLVED = "<<unresolved>>";
|
|
3
|
+
/**
|
|
4
|
+
* try to parse the type from the quickinfo.
|
|
5
|
+
* this is an error-prone process, we do our best here.
|
|
6
|
+
*
|
|
7
|
+
* an example of a function with many ":"
|
|
8
|
+
* `export function getObj(a: string, func: (b: number) => {}) { return { a: 1, b: 2 } };`
|
|
9
|
+
* which produce the following quickinfo:
|
|
10
|
+
* ```ts
|
|
11
|
+
* function getObj(a: string, func: (b: number) => {}): {
|
|
12
|
+
* a: number;
|
|
13
|
+
* b: number;
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* some examples of quickinfo:
|
|
18
|
+
*
|
|
19
|
+
* function ts.signatureToDisplayParts(typechecker: TypeChecker, signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags): SymbolDisplayPart[]
|
|
20
|
+
*
|
|
21
|
+
* const enum ts.TypeFormatFlags
|
|
22
|
+
*
|
|
23
|
+
* (method) ts.TypeChecker.writeSignature(signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags | undefined, kind?: SignatureKind | undefined, writer?: EmitTextWriter | undefined): string
|
|
24
|
+
*
|
|
25
|
+
* const obj: {
|
|
26
|
+
* a: number;
|
|
27
|
+
* b: number;
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* function getObj(a: string): {
|
|
31
|
+
* a: number;
|
|
32
|
+
* b: number;
|
|
33
|
+
* }
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseTypeFromQuickInfo(quickInfo: ts.server.protocol.QuickInfoResponse | undefined): string;
|
|
36
|
+
export declare function parseReturnTypeFromQuickInfo(quickInfo: ts.server.protocol.QuickInfoResponse | undefined): string;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.UNRESOLVED = void 0;
|
|
7
|
+
exports.parseReturnTypeFromQuickInfo = parseReturnTypeFromQuickInfo;
|
|
8
|
+
exports.parseTypeFromQuickInfo = parseTypeFromQuickInfo;
|
|
9
|
+
const UNRESOLVED = exports.UNRESOLVED = '<<unresolved>>';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* try to parse the type from the quickinfo.
|
|
13
|
+
* this is an error-prone process, we do our best here.
|
|
14
|
+
*
|
|
15
|
+
* an example of a function with many ":"
|
|
16
|
+
* `export function getObj(a: string, func: (b: number) => {}) { return { a: 1, b: 2 } };`
|
|
17
|
+
* which produce the following quickinfo:
|
|
18
|
+
* ```ts
|
|
19
|
+
* function getObj(a: string, func: (b: number) => {}): {
|
|
20
|
+
* a: number;
|
|
21
|
+
* b: number;
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* some examples of quickinfo:
|
|
26
|
+
*
|
|
27
|
+
* function ts.signatureToDisplayParts(typechecker: TypeChecker, signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags): SymbolDisplayPart[]
|
|
28
|
+
*
|
|
29
|
+
* const enum ts.TypeFormatFlags
|
|
30
|
+
*
|
|
31
|
+
* (method) ts.TypeChecker.writeSignature(signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags | undefined, kind?: SignatureKind | undefined, writer?: EmitTextWriter | undefined): string
|
|
32
|
+
*
|
|
33
|
+
* const obj: {
|
|
34
|
+
* a: number;
|
|
35
|
+
* b: number;
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* function getObj(a: string): {
|
|
39
|
+
* a: number;
|
|
40
|
+
* b: number;
|
|
41
|
+
* }
|
|
42
|
+
*/
|
|
43
|
+
function parseTypeFromQuickInfo(quickInfo) {
|
|
44
|
+
if (!quickInfo?.body?.displayString) return '';
|
|
45
|
+
const displayString = quickInfo.body.displayString;
|
|
46
|
+
const splitByColon = displayString.split(':');
|
|
47
|
+
switch (quickInfo.body.kind) {
|
|
48
|
+
case 'type parameter':
|
|
49
|
+
// (type parameter) T in concat<T, K, V>(array1: T[], array2: T[]): T[]
|
|
50
|
+
return displayString.replace(`(${quickInfo.body.kind}) `, '').split(' ')[0];
|
|
51
|
+
case 'const':
|
|
52
|
+
case 'property':
|
|
53
|
+
case 'let':
|
|
54
|
+
case 'getter':
|
|
55
|
+
case 'var':
|
|
56
|
+
{
|
|
57
|
+
const [, ...tail] = splitByColon;
|
|
58
|
+
return tail.join(':').trim();
|
|
59
|
+
}
|
|
60
|
+
case 'method':
|
|
61
|
+
case 'function':
|
|
62
|
+
{
|
|
63
|
+
const split = displayString.split('): ');
|
|
64
|
+
if (split.length !== 2) {
|
|
65
|
+
// it's hard to determine where the return-type is. so it's better to show unresolved.
|
|
66
|
+
// maybe, in the UI, in this case, it's best to show the signature.
|
|
67
|
+
// e.g.
|
|
68
|
+
// (method) IssuesList.getIssue<T extends ComponentIssue>(IssueClass: {
|
|
69
|
+
// new (): T;
|
|
70
|
+
// }): T | undefined
|
|
71
|
+
return UNRESOLVED;
|
|
72
|
+
}
|
|
73
|
+
return split[1].trim();
|
|
74
|
+
}
|
|
75
|
+
case 'alias':
|
|
76
|
+
{
|
|
77
|
+
// e.g. (alias) class BuilderService\nimport BuilderService
|
|
78
|
+
// e.g. '(alias) type Serializable = {\n' +
|
|
79
|
+
// ' toString(): string;\n' +
|
|
80
|
+
// '}\n' +
|
|
81
|
+
// 'import Serializable'
|
|
82
|
+
const firstLine = displayString.split('\n')[0];
|
|
83
|
+
const splitBySpace = firstLine.trim().split(' ');
|
|
84
|
+
// first two are alias keyword and alias type
|
|
85
|
+
const [,, typeName] = splitBySpace;
|
|
86
|
+
return typeName;
|
|
87
|
+
}
|
|
88
|
+
case 'type':
|
|
89
|
+
{
|
|
90
|
+
// e.g. `type TaskSlot = SlotRegistry<BuildTask[]>`
|
|
91
|
+
const splitByEqual = displayString.split('=');
|
|
92
|
+
const [, ...tail] = splitByEqual;
|
|
93
|
+
return tail.join('=').trim();
|
|
94
|
+
}
|
|
95
|
+
case 'parameter':
|
|
96
|
+
{
|
|
97
|
+
const typeColonIndex = displayString.indexOf(':');
|
|
98
|
+
return displayString.slice(typeColonIndex + 1).trim();
|
|
99
|
+
}
|
|
100
|
+
default:
|
|
101
|
+
return splitByColon[splitByColon.length - 1].trim();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function parseReturnTypeFromQuickInfo(quickInfo) {
|
|
105
|
+
if (!quickInfo) return '';
|
|
106
|
+
const typeStr = parseTypeFromQuickInfo(quickInfo);
|
|
107
|
+
const array = typeStr.split('=>');
|
|
108
|
+
return array[array.length - 1].trim();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=parse-type-from-quick-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UNRESOLVED","exports","parseTypeFromQuickInfo","quickInfo","body","displayString","splitByColon","split","kind","replace","tail","join","trim","length","firstLine","splitBySpace","typeName","splitByEqual","typeColonIndex","indexOf","slice","parseReturnTypeFromQuickInfo","typeStr","array"],"sources":["parse-type-from-quick-info.ts"],"sourcesContent":["import type ts from 'typescript/lib/tsserverlibrary';\n\nexport const UNRESOLVED = '<<unresolved>>';\n\n/**\n * try to parse the type from the quickinfo.\n * this is an error-prone process, we do our best here.\n *\n * an example of a function with many \":\"\n * `export function getObj(a: string, func: (b: number) => {}) { return { a: 1, b: 2 } };`\n * which produce the following quickinfo:\n * ```ts\n * function getObj(a: string, func: (b: number) => {}): {\n * a: number;\n * b: number;\n * }\n * ```\n *\n * some examples of quickinfo:\n *\n * function ts.signatureToDisplayParts(typechecker: TypeChecker, signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags): SymbolDisplayPart[]\n *\n * const enum ts.TypeFormatFlags\n *\n * (method) ts.TypeChecker.writeSignature(signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags | undefined, kind?: SignatureKind | undefined, writer?: EmitTextWriter | undefined): string\n *\n * const obj: {\n * a: number;\n * b: number;\n * }\n *\n * function getObj(a: string): {\n * a: number;\n * b: number;\n * }\n */\nexport function parseTypeFromQuickInfo(quickInfo: ts.server.protocol.QuickInfoResponse | undefined): string {\n if (!quickInfo?.body?.displayString) return '';\n const displayString = quickInfo.body.displayString;\n const splitByColon = displayString.split(':');\n switch (quickInfo.body.kind) {\n case 'type parameter':\n // (type parameter) T in concat<T, K, V>(array1: T[], array2: T[]): T[]\n return displayString.replace(`(${quickInfo.body.kind}) `, '').split(' ')[0];\n case 'const':\n case 'property':\n case 'let':\n case 'getter':\n case 'var': {\n const [, ...tail] = splitByColon;\n return tail.join(':').trim();\n }\n case 'method':\n case 'function': {\n const split = displayString.split('): ');\n if (split.length !== 2) {\n // it's hard to determine where the return-type is. so it's better to show unresolved.\n // maybe, in the UI, in this case, it's best to show the signature.\n // e.g.\n // (method) IssuesList.getIssue<T extends ComponentIssue>(IssueClass: {\n // new (): T;\n // }): T | undefined\n return UNRESOLVED;\n }\n return split[1].trim();\n }\n case 'alias': {\n // e.g. (alias) class BuilderService\\nimport BuilderService\n // e.g. '(alias) type Serializable = {\\n' +\n // ' toString(): string;\\n' +\n // '}\\n' +\n // 'import Serializable'\n const firstLine = displayString.split('\\n')[0];\n const splitBySpace = firstLine.trim().split(' ');\n // first two are alias keyword and alias type\n const [, , typeName] = splitBySpace;\n return typeName;\n }\n case 'type': {\n // e.g. `type TaskSlot = SlotRegistry<BuildTask[]>`\n const splitByEqual = displayString.split('=');\n const [, ...tail] = splitByEqual;\n return tail.join('=').trim();\n }\n case 'parameter': {\n const typeColonIndex = displayString.indexOf(':');\n return displayString.slice(typeColonIndex + 1).trim();\n }\n default:\n return splitByColon[splitByColon.length - 1].trim();\n }\n}\n\nexport function parseReturnTypeFromQuickInfo(quickInfo: ts.server.protocol.QuickInfoResponse | undefined): string {\n if (!quickInfo) return '';\n const typeStr = parseTypeFromQuickInfo(quickInfo);\n const array = typeStr.split('=>');\n return array[array.length - 1].trim();\n}\n"],"mappings":";;;;;;;;AAEO,MAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,gBAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAACC,SAA2D,EAAU;EAC1G,IAAI,CAACA,SAAS,EAAEC,IAAI,EAAEC,aAAa,EAAE,OAAO,EAAE;EAC9C,MAAMA,aAAa,GAAGF,SAAS,CAACC,IAAI,CAACC,aAAa;EAClD,MAAMC,YAAY,GAAGD,aAAa,CAACE,KAAK,CAAC,GAAG,CAAC;EAC7C,QAAQJ,SAAS,CAACC,IAAI,CAACI,IAAI;IACzB,KAAK,gBAAgB;MACnB;MACA,OAAOH,aAAa,CAACI,OAAO,CAAC,IAAIN,SAAS,CAACC,IAAI,CAACI,IAAI,IAAI,EAAE,EAAE,CAAC,CAACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,OAAO;IACZ,KAAK,UAAU;IACf,KAAK,KAAK;IACV,KAAK,QAAQ;IACb,KAAK,KAAK;MAAE;QACV,MAAM,GAAG,GAAGG,IAAI,CAAC,GAAGJ,YAAY;QAChC,OAAOI,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC;MAC9B;IACA,KAAK,QAAQ;IACb,KAAK,UAAU;MAAE;QACf,MAAML,KAAK,GAAGF,aAAa,CAACE,KAAK,CAAC,KAAK,CAAC;QACxC,IAAIA,KAAK,CAACM,MAAM,KAAK,CAAC,EAAE;UACtB;UACA;UACA;UACA;UACA;UACA;UACA,OAAOb,UAAU;QACnB;QACA,OAAOO,KAAK,CAAC,CAAC,CAAC,CAACK,IAAI,CAAC,CAAC;MACxB;IACA,KAAK,OAAO;MAAE;QACZ;QACA;QACA;QACA;QACA;QACA,MAAME,SAAS,GAAGT,aAAa,CAACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAMQ,YAAY,GAAGD,SAAS,CAACF,IAAI,CAAC,CAAC,CAACL,KAAK,CAAC,GAAG,CAAC;QAChD;QACA,MAAM,IAAKS,QAAQ,CAAC,GAAGD,YAAY;QACnC,OAAOC,QAAQ;MACjB;IACA,KAAK,MAAM;MAAE;QACX;QACA,MAAMC,YAAY,GAAGZ,aAAa,CAACE,KAAK,CAAC,GAAG,CAAC;QAC7C,MAAM,GAAG,GAAGG,IAAI,CAAC,GAAGO,YAAY;QAChC,OAAOP,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC;MAC9B;IACA,KAAK,WAAW;MAAE;QAChB,MAAMM,cAAc,GAAGb,aAAa,CAACc,OAAO,CAAC,GAAG,CAAC;QACjD,OAAOd,aAAa,CAACe,KAAK,CAACF,cAAc,GAAG,CAAC,CAAC,CAACN,IAAI,CAAC,CAAC;MACvD;IACA;MACE,OAAON,YAAY,CAACA,YAAY,CAACO,MAAM,GAAG,CAAC,CAAC,CAACD,IAAI,CAAC,CAAC;EACvD;AACF;AAEO,SAASS,4BAA4BA,CAAClB,SAA2D,EAAU;EAChH,IAAI,CAACA,SAAS,EAAE,OAAO,EAAE;EACzB,MAAMmB,OAAO,GAAGpB,sBAAsB,CAACC,SAAS,CAAC;EACjD,MAAMoB,KAAK,GAAGD,OAAO,CAACf,KAAK,CAAC,IAAI,CAAC;EACjC,OAAOgB,KAAK,CAACA,KAAK,CAACV,MAAM,GAAG,CAAC,CAAC,CAACD,IAAI,CAAC,CAAC;AACvC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SchemaNode } from '@teambit/semantics.entities.semantic-schema';
|
|
2
|
+
import type { Node, VariableDeclaration as VariableDeclarationNode } from 'typescript';
|
|
3
|
+
import type { SchemaTransformer } from '../schema-transformer';
|
|
4
|
+
import type { SchemaExtractorContext } from '../schema-extractor-context';
|
|
5
|
+
import { Identifier } from '../identifier';
|
|
6
|
+
export declare class VariableDeclaration implements SchemaTransformer {
|
|
7
|
+
predicate(node: Node): boolean;
|
|
8
|
+
getName(node: VariableDeclarationNode): string;
|
|
9
|
+
getIdentifiers(node: VariableDeclarationNode): Promise<Identifier[]>;
|
|
10
|
+
transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.VariableDeclaration = void 0;
|
|
7
|
+
function _semanticsEntities() {
|
|
8
|
+
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
9
|
+
_semanticsEntities = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _typescript() {
|
|
15
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
16
|
+
_typescript = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _pMapSeries() {
|
|
22
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
23
|
+
_pMapSeries = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _parseTypeFromQuickInfo() {
|
|
29
|
+
const data = require("./utils/parse-type-from-quick-info");
|
|
30
|
+
_parseTypeFromQuickInfo = function () {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function _identifier() {
|
|
36
|
+
const data = require("../identifier");
|
|
37
|
+
_identifier = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _parameter() {
|
|
43
|
+
const data = require("./parameter");
|
|
44
|
+
_parameter = function () {
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
50
|
+
class VariableDeclaration {
|
|
51
|
+
predicate(node) {
|
|
52
|
+
return node.kind === _typescript().default.SyntaxKind.VariableDeclaration;
|
|
53
|
+
}
|
|
54
|
+
getName(node) {
|
|
55
|
+
return node.name.getText();
|
|
56
|
+
}
|
|
57
|
+
async getIdentifiers(node) {
|
|
58
|
+
return [new (_identifier().Identifier)(node.name.getText(), node.getSourceFile().fileName)];
|
|
59
|
+
}
|
|
60
|
+
async transform(varDec, context) {
|
|
61
|
+
const name = this.getName(varDec);
|
|
62
|
+
const info = await context.getQuickInfo(varDec.name);
|
|
63
|
+
const displaySig = info?.body?.displayString || '';
|
|
64
|
+
const location = context.getLocation(varDec);
|
|
65
|
+
const doc = await context.jsDocToDocSchema(varDec);
|
|
66
|
+
const nodeModifiers = _typescript().default.canHaveModifiers(varDec) ? _typescript().default.getModifiers(varDec) : undefined;
|
|
67
|
+
const modifiers = nodeModifiers?.map(modifier => modifier.getText()) || [];
|
|
68
|
+
if (varDec.initializer?.kind === _typescript().default.SyntaxKind.ArrowFunction) {
|
|
69
|
+
const functionLikeInfo = await context.getQuickInfo(varDec.initializer.equalsGreaterThanToken);
|
|
70
|
+
const returnTypeStr = functionLikeInfo ? (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(functionLikeInfo) : 'any';
|
|
71
|
+
// example => export const useLanesContext: () => LanesContextModel | undefined = () => {
|
|
72
|
+
if (varDec.type) {
|
|
73
|
+
const funcType = await context.resolveType(varDec, '');
|
|
74
|
+
if (isFunctionLike(funcType)) {
|
|
75
|
+
return new (_semanticsEntities().FunctionLikeSchema)(location, name, funcType.params, funcType.returnType, functionLikeInfo?.body?.displayString || '', modifiers, doc);
|
|
76
|
+
}
|
|
77
|
+
// e.g. export const MyComponent: React.FC<T> = ({}) => {}
|
|
78
|
+
if (funcType instanceof _semanticsEntities().TypeRefSchema) {
|
|
79
|
+
const paramTypes = funcType.typeArgs;
|
|
80
|
+
const params = varDec.initializer.parameters;
|
|
81
|
+
const paramsSchema = await (0, _pMapSeries().default)(params, async (param, index) => {
|
|
82
|
+
const objectBindingNodes = await _parameter().ParameterTransformer.getObjectBindingNodes(param, paramTypes?.[index] ?? funcType, context);
|
|
83
|
+
return new (_semanticsEntities().ParameterSchema)(location, _parameter().ParameterTransformer.getName(param), paramTypes?.[index] ?? funcType, Boolean(param.questionToken), param.initializer ? param.initializer.getText() : undefined, undefined, objectBindingNodes, Boolean(param.dotDotDotToken));
|
|
84
|
+
});
|
|
85
|
+
return new (_semanticsEntities().FunctionLikeSchema)(location, name, paramsSchema, await context.resolveType(varDec.initializer, returnTypeStr), functionLikeInfo?.body?.displayString || '', modifiers, doc);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const args = await (0, _pMapSeries().default)(varDec.initializer.parameters, async param => context.computeSchema(param));
|
|
89
|
+
return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, await context.resolveType(varDec.initializer, returnTypeStr), functionLikeInfo?.body?.displayString || '', modifiers, doc);
|
|
90
|
+
}
|
|
91
|
+
const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
|
|
92
|
+
const type = await context.resolveType(varDec, typeStr);
|
|
93
|
+
const defaultValue = varDec.initializer ? varDec.initializer.getText() : undefined;
|
|
94
|
+
return new (_semanticsEntities().VariableLikeSchema)(location, name, displaySig, type, false, doc, defaultValue);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.VariableDeclaration = VariableDeclaration;
|
|
98
|
+
function isFunctionLike(node) {
|
|
99
|
+
return node instanceof _semanticsEntities().FunctionLikeSchema;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
//# sourceMappingURL=variable-declaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","_parameter","e","__esModule","default","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","nodeModifiers","canHaveModifiers","getModifiers","undefined","modifiers","map","modifier","initializer","ArrowFunction","functionLikeInfo","equalsGreaterThanToken","returnTypeStr","parseTypeFromQuickInfo","type","funcType","resolveType","isFunctionLike","FunctionLikeSchema","params","returnType","TypeRefSchema","paramTypes","typeArgs","parameters","paramsSchema","pMapSeries","param","index","objectBindingNodes","ParameterTransformer","getObjectBindingNodes","ParameterSchema","Boolean","questionToken","dotDotDotToken","args","computeSchema","typeStr","defaultValue","VariableLikeSchema","exports"],"sources":["variable-declaration.ts"],"sourcesContent":["import type { SchemaNode, Modifier } from '@teambit/semantics.entities.semantic-schema';\nimport {\n VariableLikeSchema,\n FunctionLikeSchema,\n ParameterSchema,\n TypeRefSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport type { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport ts from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport type { SchemaTransformer } from '../schema-transformer';\nimport type { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\nimport { ParameterTransformer } from './parameter';\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 nodeModifiers = ts.canHaveModifiers(varDec) ? ts.getModifiers(varDec) : undefined;\n const modifiers = nodeModifiers?.map((modifier) => modifier.getText()) || [];\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const functionLikeInfo = await context.getQuickInfo((varDec.initializer as ArrowFunction).equalsGreaterThanToken);\n const returnTypeStr = functionLikeInfo ? parseTypeFromQuickInfo(functionLikeInfo) : 'any';\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 functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n // e.g. export const MyComponent: React.FC<T> = ({}) => {}\n if (funcType instanceof TypeRefSchema) {\n const paramTypes = funcType.typeArgs;\n const params = (varDec.initializer as ArrowFunction).parameters;\n const paramsSchema = await pMapSeries(params, async (param, index) => {\n const objectBindingNodes = await ParameterTransformer.getObjectBindingNodes(\n param,\n paramTypes?.[index] ?? funcType,\n context\n );\n return new ParameterSchema(\n location,\n ParameterTransformer.getName(param),\n paramTypes?.[index] ?? funcType,\n Boolean(param.questionToken),\n param.initializer ? param.initializer.getText() : undefined,\n undefined,\n objectBindingNodes,\n Boolean(param.dotDotDotToken)\n );\n });\n\n return new FunctionLikeSchema(\n location,\n name,\n paramsSchema,\n await context.resolveType(varDec.initializer, returnTypeStr),\n functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n }\n const args = (await pMapSeries((varDec.initializer as ArrowFunction).parameters, async (param) =>\n context.computeSchema(param)\n )) as ParameterSchema[];\n return new FunctionLikeSchema(\n location,\n name,\n args,\n await context.resolveType(varDec.initializer, returnTypeStr),\n functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n const defaultValue = varDec.initializer ? varDec.initializer.getText() : undefined;\n\n return new VariableLikeSchema(location, name, displaySig, type, false, doc, defaultValue);\n }\n}\n\nfunction isFunctionLike(node: SchemaNode): node is FunctionLikeSchema {\n return node instanceof FunctionLikeSchema;\n}\n"],"mappings":";;;;;;AACA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAG,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAK,wBAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,uBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,YAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,WAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,WAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,UAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmD,SAAAG,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5C,MAAMG,mBAAmB,CAA8B;EAC5DC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACL,mBAAmB;EACxD;EAEAM,OAAOA,CAACJ,IAA6B,EAAE;IACrC,OAAOA,IAAI,CAACK,IAAI,CAACC,OAAO,CAAC,CAAC;EAC5B;EAEA,MAAMC,cAAcA,CAACP,IAA6B,EAAE;IAClD,OAAO,CAAC,KAAIQ,wBAAU,EAACR,IAAI,CAACK,IAAI,CAACC,OAAO,CAAC,CAAC,EAAEN,IAAI,CAACS,aAAa,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC7E;EAEA,MAAMC,SAASA,CAACC,MAA+B,EAAEC,OAA+B,EAAuB;IACrG,MAAMR,IAAI,GAAG,IAAI,CAACD,OAAO,CAACQ,MAAM,CAAC;IACjC,MAAME,IAAI,GAAG,MAAMD,OAAO,CAACE,YAAY,CAACH,MAAM,CAACP,IAAI,CAAC;IACpD,MAAMW,UAAU,GAAGF,IAAI,EAAEG,IAAI,EAAEC,aAAa,IAAI,EAAE;IAClD,MAAMC,QAAQ,GAAGN,OAAO,CAACO,WAAW,CAACR,MAAM,CAAC;IAC5C,MAAMS,GAAG,GAAG,MAAMR,OAAO,CAACS,gBAAgB,CAACV,MAAM,CAAC;IAClD,MAAMW,aAAa,GAAGrB,qBAAE,CAACsB,gBAAgB,CAACZ,MAAM,CAAC,GAAGV,qBAAE,CAACuB,YAAY,CAACb,MAAM,CAAC,GAAGc,SAAS;IACvF,MAAMC,SAAS,GAAGJ,aAAa,EAAEK,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACvB,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE;IAC5E,IAAIM,MAAM,CAACkB,WAAW,EAAE7B,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAAC4B,aAAa,EAAE;MAC5D,MAAMC,gBAAgB,GAAG,MAAMnB,OAAO,CAACE,YAAY,CAAEH,MAAM,CAACkB,WAAW,CAAmBG,sBAAsB,CAAC;MACjH,MAAMC,aAAa,GAAGF,gBAAgB,GAAG,IAAAG,gDAAsB,EAACH,gBAAgB,CAAC,GAAG,KAAK;MACzF;MACA,IAAIpB,MAAM,CAACwB,IAAI,EAAE;QACf,MAAMC,QAAQ,GAAG,MAAMxB,OAAO,CAACyB,WAAW,CAAC1B,MAAM,EAAE,EAAE,CAAC;QACtD,IAAI2B,cAAc,CAACF,QAAQ,CAAC,EAAE;UAC5B,OAAO,KAAIG,uCAAkB,EAC3BrB,QAAQ,EACRd,IAAI,EACJgC,QAAQ,CAACI,MAAM,EACfJ,QAAQ,CAACK,UAAU,EACnBV,gBAAgB,EAAEf,IAAI,EAAEC,aAAa,IAAI,EAAE,EAC3CS,SAAS,EACTN,GACF,CAAC;QACH;QACA;QACA,IAAIgB,QAAQ,YAAYM,kCAAa,EAAE;UACrC,MAAMC,UAAU,GAAGP,QAAQ,CAACQ,QAAQ;UACpC,MAAMJ,MAAM,GAAI7B,MAAM,CAACkB,WAAW,CAAmBgB,UAAU;UAC/D,MAAMC,YAAY,GAAG,MAAM,IAAAC,qBAAU,EAACP,MAAM,EAAE,OAAOQ,KAAK,EAAEC,KAAK,KAAK;YACpE,MAAMC,kBAAkB,GAAG,MAAMC,iCAAoB,CAACC,qBAAqB,CACzEJ,KAAK,EACLL,UAAU,GAAGM,KAAK,CAAC,IAAIb,QAAQ,EAC/BxB,OACF,CAAC;YACD,OAAO,KAAIyC,oCAAe,EACxBnC,QAAQ,EACRiC,iCAAoB,CAAChD,OAAO,CAAC6C,KAAK,CAAC,EACnCL,UAAU,GAAGM,KAAK,CAAC,IAAIb,QAAQ,EAC/BkB,OAAO,CAACN,KAAK,CAACO,aAAa,CAAC,EAC5BP,KAAK,CAACnB,WAAW,GAAGmB,KAAK,CAACnB,WAAW,CAACxB,OAAO,CAAC,CAAC,GAAGoB,SAAS,EAC3DA,SAAS,EACTyB,kBAAkB,EAClBI,OAAO,CAACN,KAAK,CAACQ,cAAc,CAC9B,CAAC;UACH,CAAC,CAAC;UAEF,OAAO,KAAIjB,uCAAkB,EAC3BrB,QAAQ,EACRd,IAAI,EACJ0C,YAAY,EACZ,MAAMlC,OAAO,CAACyB,WAAW,CAAC1B,MAAM,CAACkB,WAAW,EAAEI,aAAa,CAAC,EAC5DF,gBAAgB,EAAEf,IAAI,EAAEC,aAAa,IAAI,EAAE,EAC3CS,SAAS,EACTN,GACF,CAAC;QACH;MACF;MACA,MAAMqC,IAAI,GAAI,MAAM,IAAAV,qBAAU,EAAEpC,MAAM,CAACkB,WAAW,CAAmBgB,UAAU,EAAE,MAAOG,KAAK,IAC3FpC,OAAO,CAAC8C,aAAa,CAACV,KAAK,CAC7B,CAAuB;MACvB,OAAO,KAAIT,uCAAkB,EAC3BrB,QAAQ,EACRd,IAAI,EACJqD,IAAI,EACJ,MAAM7C,OAAO,CAACyB,WAAW,CAAC1B,MAAM,CAACkB,WAAW,EAAEI,aAAa,CAAC,EAC5DF,gBAAgB,EAAEf,IAAI,EAAEC,aAAa,IAAI,EAAE,EAC3CS,SAAS,EACTN,GACF,CAAC;IACH;IACA,MAAMuC,OAAO,GAAG,IAAAzB,gDAAsB,EAACrB,IAAI,CAAC;IAC5C,MAAMsB,IAAI,GAAG,MAAMvB,OAAO,CAACyB,WAAW,CAAC1B,MAAM,EAAEgD,OAAO,CAAC;IACvD,MAAMC,YAAY,GAAGjD,MAAM,CAACkB,WAAW,GAAGlB,MAAM,CAACkB,WAAW,CAACxB,OAAO,CAAC,CAAC,GAAGoB,SAAS;IAElF,OAAO,KAAIoC,uCAAkB,EAAC3C,QAAQ,EAAEd,IAAI,EAAEW,UAAU,EAAEoB,IAAI,EAAE,KAAK,EAAEf,GAAG,EAAEwC,YAAY,CAAC;EAC3F;AACF;AAACE,OAAA,CAAAjE,mBAAA,GAAAA,mBAAA;AAED,SAASyC,cAAcA,CAACvC,IAAgB,EAA8B;EACpE,OAAOA,IAAI,YAAYwC,uCAAkB;AAC3C","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SchemaNode } from '@teambit/semantics.entities.semantic-schema';
|
|
2
|
+
import type { Node, VariableStatement } from 'typescript';
|
|
3
|
+
import type { SchemaTransformer } from '../schema-transformer';
|
|
4
|
+
import type { SchemaExtractorContext } from '../schema-extractor-context';
|
|
5
|
+
import { Identifier } from '../identifier';
|
|
6
|
+
/**
|
|
7
|
+
* variable statement is a collection of variable declarations.
|
|
8
|
+
* e.g. `export const a = 1, b = () => {}, c = {};`
|
|
9
|
+
*/
|
|
10
|
+
export declare class VariableStatementTransformer implements SchemaTransformer {
|
|
11
|
+
predicate(node: Node): boolean;
|
|
12
|
+
getIdentifiers(node: VariableStatement): Promise<Identifier[]>;
|
|
13
|
+
transform(node: VariableStatement, context: SchemaExtractorContext): Promise<SchemaNode>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.VariableStatementTransformer = void 0;
|
|
7
|
+
function _semanticsEntities() {
|
|
8
|
+
const data = require("@teambit/semantics.entities.semantic-schema");
|
|
9
|
+
_semanticsEntities = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _lodash() {
|
|
15
|
+
const data = require("lodash");
|
|
16
|
+
_lodash = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _pMapSeries() {
|
|
22
|
+
const data = _interopRequireDefault(require("p-map-series"));
|
|
23
|
+
_pMapSeries = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _typescript() {
|
|
29
|
+
const data = _interopRequireDefault(require("typescript"));
|
|
30
|
+
_typescript = function () {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function _identifier() {
|
|
36
|
+
const data = require("../identifier");
|
|
37
|
+
_identifier = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
43
|
+
/**
|
|
44
|
+
* variable statement is a collection of variable declarations.
|
|
45
|
+
* e.g. `export const a = 1, b = () => {}, c = {};`
|
|
46
|
+
*/
|
|
47
|
+
class VariableStatementTransformer {
|
|
48
|
+
predicate(node) {
|
|
49
|
+
return node.kind === _typescript().default.SyntaxKind.VariableStatement;
|
|
50
|
+
}
|
|
51
|
+
async getIdentifiers(node) {
|
|
52
|
+
return node.declarationList.declarations.map(dec => {
|
|
53
|
+
return new (_identifier().Identifier)(dec.name.getText(), dec.getSourceFile().fileName);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async transform(node, context) {
|
|
57
|
+
const schemas = await (0, _pMapSeries().default)(node.declarationList.declarations, async dec => {
|
|
58
|
+
// this will get the schema from variable-declaration
|
|
59
|
+
const schema = await context.visitDefinition(dec.name);
|
|
60
|
+
return schema;
|
|
61
|
+
});
|
|
62
|
+
return new (_semanticsEntities().ModuleSchema)(context.getLocation(node), (0, _lodash().compact)(schemas), []);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.VariableStatementTransformer = VariableStatementTransformer;
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=variable-statement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_semanticsEntities","data","require","_lodash","_pMapSeries","_interopRequireDefault","_typescript","_identifier","e","__esModule","default","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","exports"],"sources":["variable-statement.ts"],"sourcesContent":["import type { SchemaNode } from '@teambit/semantics.entities.semantic-schema';\nimport { ModuleSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport type { Node, VariableStatement } from 'typescript';\nimport ts from 'typescript';\nimport type { SchemaTransformer } from '../schema-transformer';\nimport type { 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":";;;;;;AACA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,YAAA;EAAA,MAAAL,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAI,WAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAM,YAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,WAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2C,SAAAI,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C;AACA;AACA;AACA;AACO,MAAMG,4BAA4B,CAA8B;EACrEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,iBAAiB;EACtD;EAEA,MAAMC,cAAcA,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,CAAC,CAAC,EAAEH,GAAG,CAACI,aAAa,CAAC,CAAC,CAACC,QAAQ,CAAC;IACzE,CAAC,CAAC;EACJ;EAEA,MAAMC,SAASA,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;AAACO,OAAA,CAAA1B,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es2015",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"jsx": "react",
|
|
6
|
+
"composite": true,
|
|
7
|
+
"declaration": true,
|
|
8
|
+
"sourceMap": true,
|
|
9
|
+
"skipLibCheck": true,
|
|
10
|
+
"outDir": "dist",
|
|
11
|
+
"rootDir": ".",
|
|
12
|
+
"esModuleInterop": true,
|
|
13
|
+
"experimentalDecorators": true,
|
|
14
|
+
"emitDecoratorMetadata": true,
|
|
15
|
+
"strict": true,
|
|
16
|
+
"moduleResolution": "node",
|
|
17
|
+
"noImplicitAny": false,
|
|
18
|
+
"removeComments": true,
|
|
19
|
+
"preserveConstEnums": true,
|
|
20
|
+
"resolveJsonModule": true
|
|
21
|
+
},
|
|
22
|
+
"exclude": [
|
|
23
|
+
"dist"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TypescriptAspect = void 0;
|
|
7
|
+
function _harmony() {
|
|
8
|
+
const data = require("@teambit/harmony");
|
|
9
|
+
_harmony = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
const TypescriptAspect = exports.TypescriptAspect = _harmony().Aspect.create({
|
|
15
|
+
id: 'teambit.typescript/typescript'
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=typescript.aspect.js.map
|