@teambit/typescript 1.0.107 → 1.0.109
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/artifacts/__bit_junit.xml +49 -0
- package/artifacts/preview/teambit_typescript_typescript-preview.js +1 -0
- package/dist/cmds/write-tsconfig.cmd.d.ts +2 -2
- package/dist/compiler-options.d.ts +2 -2
- package/dist/extractor-options.d.ts +1 -1
- package/dist/identifier-list.d.ts +1 -1
- package/dist/identifier.d.ts +3 -3
- package/dist/{preview-1703590665075.js → preview-1703698405864.js} +2 -2
- package/dist/schema-extractor-context.d.ts +11 -11
- package/dist/schema-extractor-context.js +13 -17
- package/dist/schema-extractor-context.js.map +1 -1
- package/dist/schema-transformer.d.ts +2 -2
- package/dist/sourceFileTransformers/export.js +1 -2
- package/dist/sourceFileTransformers/export.js.map +1 -1
- package/dist/sourceFileTransformers/function.js +2 -3
- package/dist/sourceFileTransformers/function.js.map +1 -1
- package/dist/sourceFileTransformers/import.js +1 -2
- package/dist/sourceFileTransformers/import.js.map +1 -1
- package/dist/sourceFileTransformers/index.d.ts +1 -1
- package/dist/sourceFileTransformers/transform.js +1 -1
- package/dist/sourceFileTransformers/transform.js.map +1 -1
- package/dist/transformers/binding-element.js +1 -2
- package/dist/transformers/binding-element.js.map +1 -1
- package/dist/transformers/class-declaration.js +3 -6
- package/dist/transformers/class-declaration.js.map +1 -1
- package/dist/transformers/constructor.js +3 -4
- package/dist/transformers/constructor.js.map +1 -1
- package/dist/transformers/enum-declaration.js +1 -2
- package/dist/transformers/enum-declaration.js.map +1 -1
- package/dist/transformers/export-declaration.js +5 -7
- package/dist/transformers/export-declaration.js.map +1 -1
- package/dist/transformers/function-like.js +5 -8
- package/dist/transformers/function-like.js.map +1 -1
- package/dist/transformers/get-accessor.js +1 -2
- package/dist/transformers/get-accessor.js.map +1 -1
- package/dist/transformers/import-declaration.js +2 -3
- package/dist/transformers/import-declaration.js.map +1 -1
- package/dist/transformers/interface-declaration.js +1 -2
- package/dist/transformers/interface-declaration.js.map +1 -1
- package/dist/transformers/parameter.js +1 -2
- package/dist/transformers/parameter.js.map +1 -1
- package/dist/transformers/property-declaration.js +1 -2
- package/dist/transformers/property-declaration.js.map +1 -1
- package/dist/transformers/source-file-transformer.js +3 -5
- package/dist/transformers/source-file-transformer.js.map +1 -1
- package/dist/transformers/utils/jsdoc-to-doc-schema.js +2 -4
- package/dist/transformers/utils/jsdoc-to-doc-schema.js.map +1 -1
- package/dist/transformers/utils/parse-type-from-quick-info.js +1 -2
- package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -1
- package/dist/transformers/variable-declaration.js +8 -12
- package/dist/transformers/variable-declaration.js.map +1 -1
- package/dist/tsconfig-writer.d.ts +2 -2
- package/dist/tsconfig-writer.js +1 -4
- package/dist/tsconfig-writer.js.map +1 -1
- package/dist/typescript.composition.d.ts +2 -2
- package/dist/typescript.extractor.d.ts +3 -3
- package/dist/typescript.extractor.js +5 -7
- package/dist/typescript.extractor.js.map +1 -1
- package/dist/typescript.main.runtime.d.ts +7 -7
- package/dist/typescript.main.runtime.js +1 -2
- package/dist/typescript.main.runtime.js.map +1 -1
- package/dist/typescript.parser.js +7 -8
- package/dist/typescript.parser.js.map +1 -1
- package/dist/typescript.parser.spec.js +12 -15
- package/dist/typescript.parser.spec.js.map +1 -1
- package/package.json +27 -34
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
|
@@ -50,27 +50,24 @@ class FunctionLikeTransformer {
|
|
|
50
50
|
return [new (_identifier().Identifier)(this.getName(funcDec), funcDec.getSourceFile().fileName)];
|
|
51
51
|
}
|
|
52
52
|
getName(funcDec) {
|
|
53
|
-
var _funcDec$name;
|
|
54
53
|
if (funcDec.kind === _typescript().default.SyntaxKind.ConstructSignature) return 'new';
|
|
55
|
-
return
|
|
54
|
+
return funcDec.name?.getText() || '';
|
|
56
55
|
}
|
|
57
56
|
async transform(node, context) {
|
|
58
|
-
var _info$body, _node$modifiers2, _node$typeParameters;
|
|
59
57
|
const name = this.getName(node);
|
|
60
58
|
const getQuickInfoFromDefaultModifier = async () => {
|
|
61
|
-
|
|
62
|
-
const defaultModifier = (_node$modifiers = node.modifiers) === null || _node$modifiers === void 0 ? void 0 : _node$modifiers.find(modifier => modifier.kind === _typescript().default.SyntaxKind.DefaultKeyword);
|
|
59
|
+
const defaultModifier = node.modifiers?.find(modifier => modifier.kind === _typescript().default.SyntaxKind.DefaultKeyword);
|
|
63
60
|
if (defaultModifier) return context.getQuickInfo(defaultModifier);
|
|
64
61
|
if (node.kind === _typescript().default.SyntaxKind.ArrowFunction) return context.getQuickInfo(node.equalsGreaterThanToken);
|
|
65
62
|
return null;
|
|
66
63
|
};
|
|
67
64
|
const info = node.name ? await context.getQuickInfo(node.name) : await getQuickInfoFromDefaultModifier();
|
|
68
65
|
const returnTypeStr = info ? (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info) : 'any';
|
|
69
|
-
const displaySig =
|
|
66
|
+
const displaySig = info?.body?.displayString || '';
|
|
70
67
|
const args = await (0, _pMapSeries().default)(node.parameters, async param => context.computeSchema(param));
|
|
71
68
|
const returnType = await context.resolveType(node, returnTypeStr, Boolean(info));
|
|
72
|
-
const modifiers =
|
|
73
|
-
const typeParameters =
|
|
69
|
+
const modifiers = node.modifiers?.map(modifier => modifier.getText()) || [];
|
|
70
|
+
const typeParameters = node.typeParameters?.map(typeParam => typeParam.name.getText());
|
|
74
71
|
const location = context.getLocation(node);
|
|
75
72
|
const doc = await context.jsDocToDocSchema(node);
|
|
76
73
|
return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, returnType, displaySig, modifiers, doc, typeParameters);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","obj","__esModule","default","FunctionLikeTransformer","predicate","node","kind","ts","SyntaxKind","FunctionDeclaration","ArrowFunction","MethodDeclaration","CallSignature","ConstructSignature","IndexSignature","FunctionType","MethodSignature","getIdentifiers","funcDec","Identifier","getName","getSourceFile","fileName","
|
|
1
|
+
{"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","obj","__esModule","default","FunctionLikeTransformer","predicate","node","kind","ts","SyntaxKind","FunctionDeclaration","ArrowFunction","MethodDeclaration","CallSignature","ConstructSignature","IndexSignature","FunctionType","MethodSignature","getIdentifiers","funcDec","Identifier","getName","getSourceFile","fileName","name","getText","transform","context","getQuickInfoFromDefaultModifier","defaultModifier","modifiers","find","modifier","DefaultKeyword","getQuickInfo","equalsGreaterThanToken","info","returnTypeStr","parseTypeFromQuickInfo","displaySig","body","displayString","args","pMapSeries","parameters","param","computeSchema","returnType","resolveType","Boolean","map","typeParameters","typeParam","location","getLocation","doc","jsDocToDocSchema","FunctionLikeSchema","exports"],"sources":["function-like.ts"],"sourcesContent":["import { FunctionLikeSchema, ParameterSchema, SchemaNode, Modifier } from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, SignatureDeclaration } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class FunctionLikeTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return (\n node.kind === ts.SyntaxKind.FunctionDeclaration ||\n node.kind === ts.SyntaxKind.ArrowFunction ||\n node.kind === ts.SyntaxKind.MethodDeclaration ||\n node.kind === ts.SyntaxKind.CallSignature ||\n node.kind === ts.SyntaxKind.ConstructSignature ||\n node.kind === ts.SyntaxKind.IndexSignature ||\n node.kind === ts.SyntaxKind.FunctionType ||\n node.kind === ts.SyntaxKind.MethodSignature\n );\n }\n\n // need to check for anonymous functions assigned for vars, const and let.\n async getIdentifiers(funcDec: SignatureDeclaration) {\n return [new Identifier(this.getName(funcDec), funcDec.getSourceFile().fileName)];\n }\n\n private getName(funcDec: SignatureDeclaration) {\n if (funcDec.kind === ts.SyntaxKind.ConstructSignature) return 'new';\n return funcDec.name?.getText() || '';\n }\n\n async transform(node: SignatureDeclaration, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(node);\n const getQuickInfoFromDefaultModifier = async () => {\n const defaultModifier = node.modifiers?.find((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword);\n if (defaultModifier) return context.getQuickInfo(defaultModifier);\n if (node.kind === ts.SyntaxKind.ArrowFunction) return context.getQuickInfo(node.equalsGreaterThanToken);\n return null;\n };\n const info = node.name ? await context.getQuickInfo(node.name) : await getQuickInfoFromDefaultModifier();\n const returnTypeStr = info ? parseTypeFromQuickInfo(info) : 'any';\n const displaySig = info?.body?.displayString || '';\n const args = (await pMapSeries(node.parameters, async (param) =>\n context.computeSchema(param)\n )) as ParameterSchema[];\n\n const returnType = await context.resolveType(node, returnTypeStr, Boolean(info));\n const modifiers = node.modifiers?.map((modifier) => modifier.getText()) || [];\n const typeParameters = node.typeParameters?.map((typeParam) => typeParam.name.getText());\n const location = context.getLocation(node);\n const doc = await context.jsDocToDocSchema(node);\n\n return new FunctionLikeSchema(\n location,\n name,\n args,\n returnType,\n displaySig,\n modifiers as Modifier[],\n doc,\n typeParameters\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -34,9 +34,8 @@ class GetAccessorTransformer {
|
|
|
34
34
|
return [];
|
|
35
35
|
}
|
|
36
36
|
async transform(node, context) {
|
|
37
|
-
var _info$body;
|
|
38
37
|
const info = await context.getQuickInfo(node.name);
|
|
39
|
-
const displaySig =
|
|
38
|
+
const displaySig = info?.body?.displayString || '';
|
|
40
39
|
const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
|
|
41
40
|
const type = await context.resolveType(node, typeStr);
|
|
42
41
|
return new (_semanticsEntities().GetAccessorSchema)(context.getLocation(node), node.name.getText(), type, displaySig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_parseTypeFromQuickInfo","obj","__esModule","default","GetAccessorTransformer","predicate","node","kind","ts","SyntaxKind","GetAccessor","getIdentifiers","transform","context","
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_parseTypeFromQuickInfo","obj","__esModule","default","GetAccessorTransformer","predicate","node","kind","ts","SyntaxKind","GetAccessor","getIdentifiers","transform","context","info","getQuickInfo","name","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","GetAccessorSchema","getLocation","getText","exports"],"sources":["get-accessor.ts"],"sourcesContent":["import ts, { Node, GetAccessorDeclaration } from 'typescript';\nimport { GetAccessorSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class GetAccessorTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.GetAccessor;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: GetAccessorDeclaration, context: SchemaExtractorContext) {\n const info = await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || '';\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n return new GetAccessorSchema(context.getLocation(node), node.name.getText(), type, displaySig);\n }\n}\n"],"mappings":";;;;;;AAAA,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;AAGA,SAAAI,wBAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,uBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4E,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGrE,MAAMG,sBAAsB,CAA8B;EAC/DC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,WAAW;EAChD;EAEA,MAAMC,cAAcA,CAAA,EAA0B;IAC5C,OAAO,EAAE;EACX;EAEA,MAAMC,SAASA,CAACN,IAA4B,EAAEO,OAA+B,EAAE;IAC7E,MAAMC,IAAI,GAAG,MAAMD,OAAO,CAACE,YAAY,CAACT,IAAI,CAACU,IAAI,CAAC;IAClD,MAAMC,UAAU,GAAGH,IAAI,EAAEI,IAAI,EAAEC,aAAa,IAAI,EAAE;IAClD,MAAMC,OAAO,GAAG,IAAAC,gDAAsB,EAACP,IAAI,CAAC;IAC5C,MAAMQ,IAAI,GAAG,MAAMT,OAAO,CAACU,WAAW,CAACjB,IAAI,EAAEc,OAAO,CAAC;IACrD,OAAO,KAAII,sCAAiB,EAACX,OAAO,CAACY,WAAW,CAACnB,IAAI,CAAC,EAAEA,IAAI,CAACU,IAAI,CAACU,OAAO,CAAC,CAAC,EAAEJ,IAAI,EAAEL,UAAU,CAAC;EAChG;AACF;AAACU,OAAA,CAAAvB,sBAAA,GAAAA,sBAAA"}
|
|
@@ -30,7 +30,6 @@ class ImportDeclarationTransformer {
|
|
|
30
30
|
return node.kind === _typescript().SyntaxKind.ImportDeclaration;
|
|
31
31
|
}
|
|
32
32
|
async getIdentifiers(importDec) {
|
|
33
|
-
var _importDec$importClau;
|
|
34
33
|
if (!importDec.importClause) return [];
|
|
35
34
|
const sourceFile = importDec.getSourceFile().fileName;
|
|
36
35
|
const rawSourceFilePath = importDec.moduleSpecifier.getText();
|
|
@@ -42,7 +41,7 @@ class ImportDeclarationTransformer {
|
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
// import { A } from 'a'
|
|
45
|
-
if (
|
|
44
|
+
if (importDec.importClause.namedBindings?.kind === _typescript().SyntaxKind.NamedImports) {
|
|
46
45
|
const {
|
|
47
46
|
elements
|
|
48
47
|
} = importDec.importClause.namedBindings;
|
|
@@ -50,7 +49,7 @@ class ImportDeclarationTransformer {
|
|
|
50
49
|
name,
|
|
51
50
|
propertyName
|
|
52
51
|
}) => {
|
|
53
|
-
const id =
|
|
52
|
+
const id = propertyName?.getText() || name.getText();
|
|
54
53
|
const alias = propertyName && name.getText() || undefined;
|
|
55
54
|
const identifier = new (_identifier().Identifier)(id, sourceFile, alias, sourceFilePath);
|
|
56
55
|
return identifier;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_typescript","data","require","_semanticsEntities","_identifier","ImportDeclarationTransformer","predicate","node","kind","SyntaxKind","ImportDeclaration","getIdentifiers","importDec","
|
|
1
|
+
{"version":3,"names":["_typescript","data","require","_semanticsEntities","_identifier","ImportDeclarationTransformer","predicate","node","kind","SyntaxKind","ImportDeclaration","getIdentifiers","importDec","importClause","sourceFile","getSourceFile","fileName","rawSourceFilePath","moduleSpecifier","getText","sourceFilePath","substring","length","namedBindings","Identifier","undefined","NamedImports","elements","map","name","propertyName","id","alias","identifier","NamespaceImport","transform","context","location","getLocation","UnImplementedSchema","toString","exports"],"sources":["import-declaration.ts"],"sourcesContent":["import { ImportDeclaration, Node, SyntaxKind } from 'typescript';\nimport { UnImplementedSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class ImportDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.ImportDeclaration;\n }\n\n async getIdentifiers(importDec: ImportDeclaration): Promise<Identifier[]> {\n if (!importDec.importClause) return [];\n\n const sourceFile = importDec.getSourceFile().fileName;\n const rawSourceFilePath = importDec.moduleSpecifier.getText();\n const sourceFilePath = rawSourceFilePath.substring(1, rawSourceFilePath.length - 1);\n\n // import A from 'a'\n if (!importDec.importClause.namedBindings) {\n return [new Identifier(importDec.importClause.getText(), sourceFile, undefined, sourceFilePath)];\n }\n\n // import { A } from 'a'\n if (importDec.importClause.namedBindings?.kind === SyntaxKind.NamedImports) {\n const { elements } = importDec.importClause.namedBindings;\n\n return elements.map(({ name, propertyName }) => {\n const id = propertyName?.getText() || name.getText();\n const alias = (propertyName && name.getText()) || undefined;\n const identifier = new Identifier(id, sourceFile, alias, sourceFilePath);\n return identifier;\n });\n }\n\n // import * as A from 'a';\n if (importDec.importClause.namedBindings.kind === SyntaxKind.NamespaceImport) {\n return [\n new Identifier(\n importDec.importClause.namedBindings.name.getText(),\n sourceFile,\n undefined,\n importDec.moduleSpecifier.getText()\n ),\n ];\n }\n\n return [];\n }\n\n async transform(node: ImportDeclaration, context: SchemaExtractorContext) {\n const location = context.getLocation(node);\n\n return new UnImplementedSchema(location, node.getText(), node.kind.toString());\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMI,4BAA4B,CAA8B;EACrEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACC,iBAAiB;EACnD;EAEA,MAAMC,cAAcA,CAACC,SAA4B,EAAyB;IACxE,IAAI,CAACA,SAAS,CAACC,YAAY,EAAE,OAAO,EAAE;IAEtC,MAAMC,UAAU,GAAGF,SAAS,CAACG,aAAa,CAAC,CAAC,CAACC,QAAQ;IACrD,MAAMC,iBAAiB,GAAGL,SAAS,CAACM,eAAe,CAACC,OAAO,CAAC,CAAC;IAC7D,MAAMC,cAAc,GAAGH,iBAAiB,CAACI,SAAS,CAAC,CAAC,EAAEJ,iBAAiB,CAACK,MAAM,GAAG,CAAC,CAAC;;IAEnF;IACA,IAAI,CAACV,SAAS,CAACC,YAAY,CAACU,aAAa,EAAE;MACzC,OAAO,CAAC,KAAIC,wBAAU,EAACZ,SAAS,CAACC,YAAY,CAACM,OAAO,CAAC,CAAC,EAAEL,UAAU,EAAEW,SAAS,EAAEL,cAAc,CAAC,CAAC;IAClG;;IAEA;IACA,IAAIR,SAAS,CAACC,YAAY,CAACU,aAAa,EAAEf,IAAI,KAAKC,wBAAU,CAACiB,YAAY,EAAE;MAC1E,MAAM;QAAEC;MAAS,CAAC,GAAGf,SAAS,CAACC,YAAY,CAACU,aAAa;MAEzD,OAAOI,QAAQ,CAACC,GAAG,CAAC,CAAC;QAAEC,IAAI;QAAEC;MAAa,CAAC,KAAK;QAC9C,MAAMC,EAAE,GAAGD,YAAY,EAAEX,OAAO,CAAC,CAAC,IAAIU,IAAI,CAACV,OAAO,CAAC,CAAC;QACpD,MAAMa,KAAK,GAAIF,YAAY,IAAID,IAAI,CAACV,OAAO,CAAC,CAAC,IAAKM,SAAS;QAC3D,MAAMQ,UAAU,GAAG,KAAIT,wBAAU,EAACO,EAAE,EAAEjB,UAAU,EAAEkB,KAAK,EAAEZ,cAAc,CAAC;QACxE,OAAOa,UAAU;MACnB,CAAC,CAAC;IACJ;;IAEA;IACA,IAAIrB,SAAS,CAACC,YAAY,CAACU,aAAa,CAACf,IAAI,KAAKC,wBAAU,CAACyB,eAAe,EAAE;MAC5E,OAAO,CACL,KAAIV,wBAAU,EACZZ,SAAS,CAACC,YAAY,CAACU,aAAa,CAACM,IAAI,CAACV,OAAO,CAAC,CAAC,EACnDL,UAAU,EACVW,SAAS,EACTb,SAAS,CAACM,eAAe,CAACC,OAAO,CAAC,CACpC,CAAC,CACF;IACH;IAEA,OAAO,EAAE;EACX;EAEA,MAAMgB,SAASA,CAAC5B,IAAuB,EAAE6B,OAA+B,EAAE;IACxE,MAAMC,QAAQ,GAAGD,OAAO,CAACE,WAAW,CAAC/B,IAAI,CAAC;IAE1C,OAAO,KAAIgC,wCAAmB,EAACF,QAAQ,EAAE9B,IAAI,CAACY,OAAO,CAAC,CAAC,EAAEZ,IAAI,CAACC,IAAI,CAACgC,QAAQ,CAAC,CAAC,CAAC;EAChF;AACF;AAACC,OAAA,CAAApC,4BAAA,GAAAA,4BAAA"}
|
|
@@ -68,12 +68,11 @@ class InterfaceDeclarationTransformer {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
async transform(interfaceDec, context) {
|
|
71
|
-
var _interfaceDec$typePar;
|
|
72
71
|
const members = await (0, _pMapSeries().default)(interfaceDec.members, member => context.computeSchema(member));
|
|
73
72
|
const doc = await context.jsDocToDocSchema(interfaceDec);
|
|
74
73
|
const signature = interfaceDec.name ? await context.getQuickInfoDisplayString(interfaceDec.name) : undefined;
|
|
75
74
|
const extendsNodes = await this.getExpressionWithTypeArgs(interfaceDec, context);
|
|
76
|
-
const typeParameters =
|
|
75
|
+
const typeParameters = interfaceDec.typeParameters?.map(typeParam => {
|
|
77
76
|
return typeParam.name.getText();
|
|
78
77
|
});
|
|
79
78
|
if (!signature) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_typescript","data","require","_pMapSeries","_interopRequireDefault","_semanticsEntities","_identifier","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","InterfaceDeclarationTransformer","predicate","node","kind","SyntaxKind","InterfaceDeclaration","getIdentifiers","Identifier","name","getText","getSourceFile","fileName","getExpressionWithTypeArgs","context","heritageClauses","pMapSeries","heritageClause","token","ExtendsKeyword","flatMap","h","types","map","type","expressionWithTypeArgs","typeArguments","expression","typeArgsNodes","computeSchema","location","getLocation","expressionNode","visitDefinition","UnresolvedSchema","ExpressionWithTypeArgumentsSchema","transform","interfaceDec","
|
|
1
|
+
{"version":3,"names":["_typescript","data","require","_pMapSeries","_interopRequireDefault","_semanticsEntities","_identifier","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","InterfaceDeclarationTransformer","predicate","node","kind","SyntaxKind","InterfaceDeclaration","getIdentifiers","Identifier","name","getText","getSourceFile","fileName","getExpressionWithTypeArgs","context","heritageClauses","pMapSeries","heritageClause","token","ExtendsKeyword","flatMap","h","types","map","type","expressionWithTypeArgs","typeArguments","expression","typeArgsNodes","computeSchema","location","getLocation","expressionNode","visitDefinition","UnresolvedSchema","ExpressionWithTypeArgumentsSchema","transform","interfaceDec","members","member","doc","jsDocToDocSchema","signature","getQuickInfoDisplayString","undefined","extendsNodes","typeParameters","typeParam","Error","InterfaceSchema","exports"],"sources":["interface-declaration.ts"],"sourcesContent":["import ts, { Node, InterfaceDeclaration, SyntaxKind } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport {\n ExpressionWithTypeArgumentsSchema,\n InterfaceSchema,\n UnresolvedSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class InterfaceDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.InterfaceDeclaration;\n }\n\n async getIdentifiers(node: InterfaceDeclaration): Promise<Identifier[]> {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n private async getExpressionWithTypeArgs(node: InterfaceDeclaration, context: SchemaExtractorContext) {\n if (!node.heritageClauses) return [];\n\n return pMapSeries(\n node.heritageClauses\n .filter((heritageClause: ts.HeritageClause) => heritageClause.token === SyntaxKind.ExtendsKeyword)\n .flatMap((h: ts.HeritageClause) => {\n const { types } = h;\n const name = h.getText();\n return types.map((type) => ({ ...type, name }));\n }),\n async (expressionWithTypeArgs: ts.ExpressionWithTypeArguments & { name: string }) => {\n const { typeArguments, expression, name } = expressionWithTypeArgs;\n const typeArgsNodes = typeArguments ? await pMapSeries(typeArguments, (t) => context.computeSchema(t)) : [];\n const location = context.getLocation(expression);\n const expressionNode =\n (await context.visitDefinition(expression)) || new UnresolvedSchema(location, expression.getText());\n return new ExpressionWithTypeArgumentsSchema(typeArgsNodes, expressionNode, name, location);\n }\n );\n }\n\n async transform(interfaceDec: InterfaceDeclaration, context: SchemaExtractorContext) {\n const members = await pMapSeries(interfaceDec.members, (member) => context.computeSchema(member));\n const doc = await context.jsDocToDocSchema(interfaceDec);\n const signature = interfaceDec.name ? await context.getQuickInfoDisplayString(interfaceDec.name) : undefined;\n const extendsNodes = await this.getExpressionWithTypeArgs(interfaceDec, context);\n const typeParameters = interfaceDec.typeParameters?.map((typeParam) => {\n return typeParam.name.getText();\n });\n\n if (!signature) {\n throw Error(`Missing signature for interface ${interfaceDec.name.getText()} declaration`);\n }\n\n return new InterfaceSchema(\n context.getLocation(interfaceDec),\n interfaceDec.name.getText(),\n signature,\n extendsNodes,\n members,\n doc,\n typeParameters\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -90,8 +90,7 @@ class ParameterTransformer {
|
|
|
90
90
|
static async getObjectBindingNodes(param, paramType, context) {
|
|
91
91
|
if (param.name.kind !== _typescript().SyntaxKind.ObjectBindingPattern) return undefined;
|
|
92
92
|
return (0, _pMapSeries().default)(param.name.elements, async elem => {
|
|
93
|
-
|
|
94
|
-
const existing = (_paramType$findNode = paramType.findNode) === null || _paramType$findNode === void 0 ? void 0 : _paramType$findNode.call(paramType, node => {
|
|
93
|
+
const existing = paramType.findNode?.(node => {
|
|
95
94
|
return node.name === elem.name.getText().trim();
|
|
96
95
|
});
|
|
97
96
|
if (existing && existing.__schema !== 'InferenceTypeSchema') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_typescript","data","_interopRequireWildcard","require","_semanticsEntities","_pMapSeries","_interopRequireDefault","_parseTypeFromQuickInfo","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ParameterTransformer","predicate","node","kind","ts","SyntaxKind","Parameter","getIdentifiers","transform","context","type","getType","ParameterSchema","getLocation","getName","Boolean","questionToken","initializer","getText","undefined","getObjectBindingNodes","dotDotDotToken","param","isIdentifier","name","elements","map","elem","elementsStr","join","ArrayBindingPattern","computeSchema","info","getQuickInfo","parsed","parseTypeFromQuickInfo","InferenceTypeSchema","pMapSeries","TupleTypeSchema","ObjectBindingPattern","TypeLiteralSchema","Error","paramType","_paramType$findNode","existing","findNode","trim","__schema","defaultValue","exports"],"sources":["parameter.ts"],"sourcesContent":["import ts, {\n BindingElement,\n isIdentifier,\n Node,\n ParameterDeclaration,\n SyntaxKind,\n ArrayBindingElement,\n} from 'typescript';\nimport {\n InferenceTypeSchema,\n ParameterSchema,\n SchemaNode,\n TupleTypeSchema,\n TypeLiteralSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class ParameterTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.Parameter;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: ParameterDeclaration, context: SchemaExtractorContext) {\n const type = await this.getType(node, context);\n return new ParameterSchema(\n context.getLocation(node),\n ParameterTransformer.getName(node),\n type,\n Boolean(node.questionToken) || Boolean(node.initializer),\n node.initializer ? node.initializer.getText() : undefined,\n undefined,\n await ParameterTransformer.getObjectBindingNodes(node, type, context),\n Boolean(node.dotDotDotToken)\n );\n }\n\n static getName(param: ParameterDeclaration): string {\n if (isIdentifier(param.name)) {\n return param.name.getText();\n }\n // it's binding pattern, either an array or an object\n const elements = param.name.elements.map((elem) => elem.getText());\n const elementsStr = elements.join(', ');\n if (param.name.kind === SyntaxKind.ArrayBindingPattern) {\n return `[ ${elementsStr} ]`;\n }\n // it's an object binding\n return `{ ${elementsStr} }`;\n }\n\n async getType(param: ParameterDeclaration, context: SchemaExtractorContext): Promise<SchemaNode> {\n if (param.type) {\n return context.computeSchema(param.type);\n }\n\n if (isIdentifier(param.name)) {\n const info = await context.getQuickInfo(param.name);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed);\n }\n // it's binding pattern, either an array or an object\n if (param.name.kind === SyntaxKind.ArrayBindingPattern) {\n const elements = await pMapSeries(param.name.elements, async (elem: ArrayBindingElement) => {\n const info = await context.getQuickInfo(elem);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed);\n });\n return new TupleTypeSchema(context.getLocation(param), elements);\n }\n if (param.name.kind === SyntaxKind.ObjectBindingPattern) {\n const elements = await pMapSeries(param.name.elements, async (elem: BindingElement) => {\n const info = await context.getQuickInfo(elem.name);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed, elem.name.getText());\n });\n return new TypeLiteralSchema(context.getLocation(param), elements);\n }\n throw new Error(`unknown param type`);\n }\n\n static async getObjectBindingNodes(\n param: ParameterDeclaration,\n paramType: SchemaNode,\n context: SchemaExtractorContext\n ): Promise<SchemaNode[] | undefined> {\n if (param.name.kind !== SyntaxKind.ObjectBindingPattern) return undefined;\n return pMapSeries(param.name.elements, async (elem: BindingElement) => {\n const existing = paramType.findNode?.((node) => {\n return node.name === elem.name.getText().trim();\n });\n if (existing && existing.__schema !== 'InferenceTypeSchema') {\n return existing;\n }\n const info = await context.getQuickInfo(elem.name);\n const parsed = info ? parseTypeFromQuickInfo(info) : elem.getText();\n const defaultValue = elem.initializer ? elem.initializer.getText() : undefined;\n return new InferenceTypeSchema(\n context.getLocation(elem.name),\n parsed,\n elem.name.getText(),\n defaultValue,\n Boolean(elem.dotDotDotToken)\n );\n });\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,uBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA,SAAAG,mBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAM,wBAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,uBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4E,SAAAK,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAGrE,MAAMY,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,IAA0B,EAAEO,OAA+B,EAAE;IAC3E,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACC,OAAO,CAACT,IAAI,EAAEO,OAAO,CAAC;IAC9C,OAAO,KAAIG,oCAAe,EACxBH,OAAO,CAACI,WAAW,CAACX,IAAI,CAAC,EACzBF,oBAAoB,CAACc,OAAO,CAACZ,IAAI,CAAC,EAClCQ,IAAI,EACJK,OAAO,CAACb,IAAI,CAACc,aAAa,CAAC,IAAID,OAAO,CAACb,IAAI,CAACe,WAAW,CAAC,EACxDf,IAAI,CAACe,WAAW,GAAGf,IAAI,CAACe,WAAW,CAACC,OAAO,CAAC,CAAC,GAAGC,SAAS,EACzDA,SAAS,EACT,MAAMnB,oBAAoB,CAACoB,qBAAqB,CAAClB,IAAI,EAAEQ,IAAI,EAAED,OAAO,CAAC,EACrEM,OAAO,CAACb,IAAI,CAACmB,cAAc,CAC7B,CAAC;EACH;EAEA,OAAOP,OAAOA,CAACQ,KAA2B,EAAU;IAClD,IAAI,IAAAC,0BAAY,EAACD,KAAK,CAACE,IAAI,CAAC,EAAE;MAC5B,OAAOF,KAAK,CAACE,IAAI,CAACN,OAAO,CAAC,CAAC;IAC7B;IACA;IACA,MAAMO,QAAQ,GAAGH,KAAK,CAACE,IAAI,CAACC,QAAQ,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACT,OAAO,CAAC,CAAC,CAAC;IAClE,MAAMU,WAAW,GAAGH,QAAQ,CAACI,IAAI,CAAC,IAAI,CAAC;IACvC,IAAIP,KAAK,CAACE,IAAI,CAACrB,IAAI,KAAKE,wBAAU,CAACyB,mBAAmB,EAAE;MACtD,OAAQ,KAAIF,WAAY,IAAG;IAC7B;IACA;IACA,OAAQ,KAAIA,WAAY,IAAG;EAC7B;EAEA,MAAMjB,OAAOA,CAACW,KAA2B,EAAEb,OAA+B,EAAuB;IAC/F,IAAIa,KAAK,CAACZ,IAAI,EAAE;MACd,OAAOD,OAAO,CAACsB,aAAa,CAACT,KAAK,CAACZ,IAAI,CAAC;IAC1C;IAEA,IAAI,IAAAa,0BAAY,EAACD,KAAK,CAACE,IAAI,CAAC,EAAE;MAC5B,MAAMQ,IAAI,GAAG,MAAMvB,OAAO,CAACwB,YAAY,CAACX,KAAK,CAACE,IAAI,CAAC;MACnD,MAAMU,MAAM,GAAG,IAAAC,gDAAsB,EAACH,IAAI,CAAC;MAC3C,OAAO,KAAII,wCAAmB,EAAC3B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEY,MAAM,CAAC;IACpE;IACA;IACA,IAAIZ,KAAK,CAACE,IAAI,CAACrB,IAAI,KAAKE,wBAAU,CAACyB,mBAAmB,EAAE;MACtD,MAAML,QAAQ,GAAG,MAAM,IAAAY,qBAAU,EAACf,KAAK,CAACE,IAAI,CAACC,QAAQ,EAAE,MAAOE,IAAyB,IAAK;QAC1F,MAAMK,IAAI,GAAG,MAAMvB,OAAO,CAACwB,YAAY,CAACN,IAAI,CAAC;QAC7C,MAAMO,MAAM,GAAG,IAAAC,gDAAsB,EAACH,IAAI,CAAC;QAC3C,OAAO,KAAII,wCAAmB,EAAC3B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEY,MAAM,CAAC;MACpE,CAAC,CAAC;MACF,OAAO,KAAII,oCAAe,EAAC7B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEG,QAAQ,CAAC;IAClE;IACA,IAAIH,KAAK,CAACE,IAAI,CAACrB,IAAI,KAAKE,wBAAU,CAACkC,oBAAoB,EAAE;MACvD,MAAMd,QAAQ,GAAG,MAAM,IAAAY,qBAAU,EAACf,KAAK,CAACE,IAAI,CAACC,QAAQ,EAAE,MAAOE,IAAoB,IAAK;QACrF,MAAMK,IAAI,GAAG,MAAMvB,OAAO,CAACwB,YAAY,CAACN,IAAI,CAACH,IAAI,CAAC;QAClD,MAAMU,MAAM,GAAG,IAAAC,gDAAsB,EAACH,IAAI,CAAC;QAC3C,OAAO,KAAII,wCAAmB,EAAC3B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEY,MAAM,EAAEP,IAAI,CAACH,IAAI,CAACN,OAAO,CAAC,CAAC,CAAC;MACzF,CAAC,CAAC;MACF,OAAO,KAAIsB,sCAAiB,EAAC/B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEG,QAAQ,CAAC;IACpE;IACA,MAAM,IAAIgB,KAAK,CAAE,oBAAmB,CAAC;EACvC;EAEA,aAAarB,qBAAqBA,CAChCE,KAA2B,EAC3BoB,SAAqB,EACrBjC,OAA+B,EACI;IACnC,IAAIa,KAAK,CAACE,IAAI,CAACrB,IAAI,KAAKE,wBAAU,CAACkC,oBAAoB,EAAE,OAAOpB,SAAS;IACzE,OAAO,IAAAkB,qBAAU,EAACf,KAAK,CAACE,IAAI,CAACC,QAAQ,EAAE,MAAOE,IAAoB,IAAK;MAAA,IAAAgB,mBAAA;MACrE,MAAMC,QAAQ,IAAAD,mBAAA,GAAGD,SAAS,CAACG,QAAQ,cAAAF,mBAAA,uBAAlBA,mBAAA,CAAA9C,IAAA,CAAA6C,SAAS,EAAaxC,IAAI,IAAK;QAC9C,OAAOA,IAAI,CAACsB,IAAI,KAAKG,IAAI,CAACH,IAAI,CAACN,OAAO,CAAC,CAAC,CAAC4B,IAAI,CAAC,CAAC;MACjD,CAAC,CAAC;MACF,IAAIF,QAAQ,IAAIA,QAAQ,CAACG,QAAQ,KAAK,qBAAqB,EAAE;QAC3D,OAAOH,QAAQ;MACjB;MACA,MAAMZ,IAAI,GAAG,MAAMvB,OAAO,CAACwB,YAAY,CAACN,IAAI,CAACH,IAAI,CAAC;MAClD,MAAMU,MAAM,GAAGF,IAAI,GAAG,IAAAG,gDAAsB,EAACH,IAAI,CAAC,GAAGL,IAAI,CAACT,OAAO,CAAC,CAAC;MACnE,MAAM8B,YAAY,GAAGrB,IAAI,CAACV,WAAW,GAAGU,IAAI,CAACV,WAAW,CAACC,OAAO,CAAC,CAAC,GAAGC,SAAS;MAC9E,OAAO,KAAIiB,wCAAmB,EAC5B3B,OAAO,CAACI,WAAW,CAACc,IAAI,CAACH,IAAI,CAAC,EAC9BU,MAAM,EACNP,IAAI,CAACH,IAAI,CAACN,OAAO,CAAC,CAAC,EACnB8B,YAAY,EACZjC,OAAO,CAACY,IAAI,CAACN,cAAc,CAC7B,CAAC;IACH,CAAC,CAAC;EACJ;AACF;AAAC4B,OAAA,CAAAjD,oBAAA,GAAAA,oBAAA"}
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireWildcard","require","_semanticsEntities","_pMapSeries","_interopRequireDefault","_parseTypeFromQuickInfo","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ParameterTransformer","predicate","node","kind","ts","SyntaxKind","Parameter","getIdentifiers","transform","context","type","getType","ParameterSchema","getLocation","getName","Boolean","questionToken","initializer","getText","undefined","getObjectBindingNodes","dotDotDotToken","param","isIdentifier","name","elements","map","elem","elementsStr","join","ArrayBindingPattern","computeSchema","info","getQuickInfo","parsed","parseTypeFromQuickInfo","InferenceTypeSchema","pMapSeries","TupleTypeSchema","ObjectBindingPattern","TypeLiteralSchema","Error","paramType","existing","findNode","trim","__schema","defaultValue","exports"],"sources":["parameter.ts"],"sourcesContent":["import ts, {\n BindingElement,\n isIdentifier,\n Node,\n ParameterDeclaration,\n SyntaxKind,\n ArrayBindingElement,\n} from 'typescript';\nimport {\n InferenceTypeSchema,\n ParameterSchema,\n SchemaNode,\n TupleTypeSchema,\n TypeLiteralSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class ParameterTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.Parameter;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: ParameterDeclaration, context: SchemaExtractorContext) {\n const type = await this.getType(node, context);\n return new ParameterSchema(\n context.getLocation(node),\n ParameterTransformer.getName(node),\n type,\n Boolean(node.questionToken) || Boolean(node.initializer),\n node.initializer ? node.initializer.getText() : undefined,\n undefined,\n await ParameterTransformer.getObjectBindingNodes(node, type, context),\n Boolean(node.dotDotDotToken)\n );\n }\n\n static getName(param: ParameterDeclaration): string {\n if (isIdentifier(param.name)) {\n return param.name.getText();\n }\n // it's binding pattern, either an array or an object\n const elements = param.name.elements.map((elem) => elem.getText());\n const elementsStr = elements.join(', ');\n if (param.name.kind === SyntaxKind.ArrayBindingPattern) {\n return `[ ${elementsStr} ]`;\n }\n // it's an object binding\n return `{ ${elementsStr} }`;\n }\n\n async getType(param: ParameterDeclaration, context: SchemaExtractorContext): Promise<SchemaNode> {\n if (param.type) {\n return context.computeSchema(param.type);\n }\n\n if (isIdentifier(param.name)) {\n const info = await context.getQuickInfo(param.name);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed);\n }\n // it's binding pattern, either an array or an object\n if (param.name.kind === SyntaxKind.ArrayBindingPattern) {\n const elements = await pMapSeries(param.name.elements, async (elem: ArrayBindingElement) => {\n const info = await context.getQuickInfo(elem);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed);\n });\n return new TupleTypeSchema(context.getLocation(param), elements);\n }\n if (param.name.kind === SyntaxKind.ObjectBindingPattern) {\n const elements = await pMapSeries(param.name.elements, async (elem: BindingElement) => {\n const info = await context.getQuickInfo(elem.name);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed, elem.name.getText());\n });\n return new TypeLiteralSchema(context.getLocation(param), elements);\n }\n throw new Error(`unknown param type`);\n }\n\n static async getObjectBindingNodes(\n param: ParameterDeclaration,\n paramType: SchemaNode,\n context: SchemaExtractorContext\n ): Promise<SchemaNode[] | undefined> {\n if (param.name.kind !== SyntaxKind.ObjectBindingPattern) return undefined;\n return pMapSeries(param.name.elements, async (elem: BindingElement) => {\n const existing = paramType.findNode?.((node) => {\n return node.name === elem.name.getText().trim();\n });\n if (existing && existing.__schema !== 'InferenceTypeSchema') {\n return existing;\n }\n const info = await context.getQuickInfo(elem.name);\n const parsed = info ? parseTypeFromQuickInfo(info) : elem.getText();\n const defaultValue = elem.initializer ? elem.initializer.getText() : undefined;\n return new InferenceTypeSchema(\n context.getLocation(elem.name),\n parsed,\n elem.name.getText(),\n defaultValue,\n Boolean(elem.dotDotDotToken)\n );\n });\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,uBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA,SAAAG,mBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAOA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAK,sBAAA,CAAAH,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAM,wBAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,uBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4E,SAAAK,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAGrE,MAAMY,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,IAA0B,EAAEO,OAA+B,EAAE;IAC3E,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACC,OAAO,CAACT,IAAI,EAAEO,OAAO,CAAC;IAC9C,OAAO,KAAIG,oCAAe,EACxBH,OAAO,CAACI,WAAW,CAACX,IAAI,CAAC,EACzBF,oBAAoB,CAACc,OAAO,CAACZ,IAAI,CAAC,EAClCQ,IAAI,EACJK,OAAO,CAACb,IAAI,CAACc,aAAa,CAAC,IAAID,OAAO,CAACb,IAAI,CAACe,WAAW,CAAC,EACxDf,IAAI,CAACe,WAAW,GAAGf,IAAI,CAACe,WAAW,CAACC,OAAO,CAAC,CAAC,GAAGC,SAAS,EACzDA,SAAS,EACT,MAAMnB,oBAAoB,CAACoB,qBAAqB,CAAClB,IAAI,EAAEQ,IAAI,EAAED,OAAO,CAAC,EACrEM,OAAO,CAACb,IAAI,CAACmB,cAAc,CAC7B,CAAC;EACH;EAEA,OAAOP,OAAOA,CAACQ,KAA2B,EAAU;IAClD,IAAI,IAAAC,0BAAY,EAACD,KAAK,CAACE,IAAI,CAAC,EAAE;MAC5B,OAAOF,KAAK,CAACE,IAAI,CAACN,OAAO,CAAC,CAAC;IAC7B;IACA;IACA,MAAMO,QAAQ,GAAGH,KAAK,CAACE,IAAI,CAACC,QAAQ,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACT,OAAO,CAAC,CAAC,CAAC;IAClE,MAAMU,WAAW,GAAGH,QAAQ,CAACI,IAAI,CAAC,IAAI,CAAC;IACvC,IAAIP,KAAK,CAACE,IAAI,CAACrB,IAAI,KAAKE,wBAAU,CAACyB,mBAAmB,EAAE;MACtD,OAAQ,KAAIF,WAAY,IAAG;IAC7B;IACA;IACA,OAAQ,KAAIA,WAAY,IAAG;EAC7B;EAEA,MAAMjB,OAAOA,CAACW,KAA2B,EAAEb,OAA+B,EAAuB;IAC/F,IAAIa,KAAK,CAACZ,IAAI,EAAE;MACd,OAAOD,OAAO,CAACsB,aAAa,CAACT,KAAK,CAACZ,IAAI,CAAC;IAC1C;IAEA,IAAI,IAAAa,0BAAY,EAACD,KAAK,CAACE,IAAI,CAAC,EAAE;MAC5B,MAAMQ,IAAI,GAAG,MAAMvB,OAAO,CAACwB,YAAY,CAACX,KAAK,CAACE,IAAI,CAAC;MACnD,MAAMU,MAAM,GAAG,IAAAC,gDAAsB,EAACH,IAAI,CAAC;MAC3C,OAAO,KAAII,wCAAmB,EAAC3B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEY,MAAM,CAAC;IACpE;IACA;IACA,IAAIZ,KAAK,CAACE,IAAI,CAACrB,IAAI,KAAKE,wBAAU,CAACyB,mBAAmB,EAAE;MACtD,MAAML,QAAQ,GAAG,MAAM,IAAAY,qBAAU,EAACf,KAAK,CAACE,IAAI,CAACC,QAAQ,EAAE,MAAOE,IAAyB,IAAK;QAC1F,MAAMK,IAAI,GAAG,MAAMvB,OAAO,CAACwB,YAAY,CAACN,IAAI,CAAC;QAC7C,MAAMO,MAAM,GAAG,IAAAC,gDAAsB,EAACH,IAAI,CAAC;QAC3C,OAAO,KAAII,wCAAmB,EAAC3B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEY,MAAM,CAAC;MACpE,CAAC,CAAC;MACF,OAAO,KAAII,oCAAe,EAAC7B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEG,QAAQ,CAAC;IAClE;IACA,IAAIH,KAAK,CAACE,IAAI,CAACrB,IAAI,KAAKE,wBAAU,CAACkC,oBAAoB,EAAE;MACvD,MAAMd,QAAQ,GAAG,MAAM,IAAAY,qBAAU,EAACf,KAAK,CAACE,IAAI,CAACC,QAAQ,EAAE,MAAOE,IAAoB,IAAK;QACrF,MAAMK,IAAI,GAAG,MAAMvB,OAAO,CAACwB,YAAY,CAACN,IAAI,CAACH,IAAI,CAAC;QAClD,MAAMU,MAAM,GAAG,IAAAC,gDAAsB,EAACH,IAAI,CAAC;QAC3C,OAAO,KAAII,wCAAmB,EAAC3B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEY,MAAM,EAAEP,IAAI,CAACH,IAAI,CAACN,OAAO,CAAC,CAAC,CAAC;MACzF,CAAC,CAAC;MACF,OAAO,KAAIsB,sCAAiB,EAAC/B,OAAO,CAACI,WAAW,CAACS,KAAK,CAAC,EAAEG,QAAQ,CAAC;IACpE;IACA,MAAM,IAAIgB,KAAK,CAAE,oBAAmB,CAAC;EACvC;EAEA,aAAarB,qBAAqBA,CAChCE,KAA2B,EAC3BoB,SAAqB,EACrBjC,OAA+B,EACI;IACnC,IAAIa,KAAK,CAACE,IAAI,CAACrB,IAAI,KAAKE,wBAAU,CAACkC,oBAAoB,EAAE,OAAOpB,SAAS;IACzE,OAAO,IAAAkB,qBAAU,EAACf,KAAK,CAACE,IAAI,CAACC,QAAQ,EAAE,MAAOE,IAAoB,IAAK;MACrE,MAAMgB,QAAQ,GAAGD,SAAS,CAACE,QAAQ,GAAI1C,IAAI,IAAK;QAC9C,OAAOA,IAAI,CAACsB,IAAI,KAAKG,IAAI,CAACH,IAAI,CAACN,OAAO,CAAC,CAAC,CAAC2B,IAAI,CAAC,CAAC;MACjD,CAAC,CAAC;MACF,IAAIF,QAAQ,IAAIA,QAAQ,CAACG,QAAQ,KAAK,qBAAqB,EAAE;QAC3D,OAAOH,QAAQ;MACjB;MACA,MAAMX,IAAI,GAAG,MAAMvB,OAAO,CAACwB,YAAY,CAACN,IAAI,CAACH,IAAI,CAAC;MAClD,MAAMU,MAAM,GAAGF,IAAI,GAAG,IAAAG,gDAAsB,EAACH,IAAI,CAAC,GAAGL,IAAI,CAACT,OAAO,CAAC,CAAC;MACnE,MAAM6B,YAAY,GAAGpB,IAAI,CAACV,WAAW,GAAGU,IAAI,CAACV,WAAW,CAACC,OAAO,CAAC,CAAC,GAAGC,SAAS;MAC9E,OAAO,KAAIiB,wCAAmB,EAC5B3B,OAAO,CAACI,WAAW,CAACc,IAAI,CAACH,IAAI,CAAC,EAC9BU,MAAM,EACNP,IAAI,CAACH,IAAI,CAACN,OAAO,CAAC,CAAC,EACnB6B,YAAY,EACZhC,OAAO,CAACY,IAAI,CAACN,cAAc,CAC7B,CAAC;IACH,CAAC,CAAC;EACJ;AACF;AAAC2B,OAAA,CAAAhD,oBAAA,GAAAA,oBAAA"}
|
|
@@ -40,10 +40,9 @@ class PropertyDeclarationTransformer {
|
|
|
40
40
|
|
|
41
41
|
// @todo - handle arrow function objects
|
|
42
42
|
async transform(node, context) {
|
|
43
|
-
var _info$body;
|
|
44
43
|
const name = node.name.getText();
|
|
45
44
|
const info = this.isComputedProperty(node) ? undefined : await context.getQuickInfo(node.name);
|
|
46
|
-
const displaySig =
|
|
45
|
+
const displaySig = info?.body?.displayString || node.getText();
|
|
47
46
|
const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
|
|
48
47
|
const type = await context.resolveType(node, typeStr);
|
|
49
48
|
const isOptional = Boolean(node.questionToken) || Boolean(node.initializer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_typescript","data","require","_semanticsEntities","_parseTypeFromQuickInfo","PropertyDeclarationTransformer","predicate","node","kind","SyntaxKind","PropertyDeclaration","PropertySignature","getIdentifiers","isComputedProperty","name","ComputedPropertyName","transform","context","
|
|
1
|
+
{"version":3,"names":["_typescript","data","require","_semanticsEntities","_parseTypeFromQuickInfo","PropertyDeclarationTransformer","predicate","node","kind","SyntaxKind","PropertyDeclaration","PropertySignature","getIdentifiers","isComputedProperty","name","ComputedPropertyName","transform","context","getText","info","undefined","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","isOptional","Boolean","questionToken","initializer","doc","jsDocToDocSchema","defaultValue","VariableLikeSchema","getLocation","exports"],"sources":["property-declaration.ts"],"sourcesContent":["import { Node, PropertyDeclaration, PropertySignature, SyntaxKind } from 'typescript';\nimport { VariableLikeSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class PropertyDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.PropertyDeclaration || node.kind === SyntaxKind.PropertySignature;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n // [computedName]: string\n private isComputedProperty(node: PropertyDeclaration | PropertySignature) {\n return node.name.kind === SyntaxKind.ComputedPropertyName;\n }\n\n // @todo - handle arrow function objects\n async transform(node: PropertyDeclaration | PropertySignature, context: SchemaExtractorContext) {\n const name = node.name.getText();\n const info = this.isComputedProperty(node) ? undefined : await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || node.getText();\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n const isOptional = Boolean(node.questionToken) || Boolean(node.initializer);\n const doc = await context.jsDocToDocSchema(node);\n const defaultValue = node.initializer ? node.initializer.getText() : undefined;\n return new VariableLikeSchema(context.getLocation(node), name, displaySig, type, isOptional, doc, defaultValue);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,wBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,uBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,MAAMI,8BAA8B,CAA8B;EACvEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACC,mBAAmB,IAAIH,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACE,iBAAiB;EACnG;EAEA,MAAMC,cAAcA,CAAA,EAA0B;IAC5C,OAAO,EAAE;EACX;;EAEA;EACQC,kBAAkBA,CAACN,IAA6C,EAAE;IACxE,OAAOA,IAAI,CAACO,IAAI,CAACN,IAAI,KAAKC,wBAAU,CAACM,oBAAoB;EAC3D;;EAEA;EACA,MAAMC,SAASA,CAACT,IAA6C,EAAEU,OAA+B,EAAE;IAC9F,MAAMH,IAAI,GAAGP,IAAI,CAACO,IAAI,CAACI,OAAO,CAAC,CAAC;IAChC,MAAMC,IAAI,GAAG,IAAI,CAACN,kBAAkB,CAACN,IAAI,CAAC,GAAGa,SAAS,GAAG,MAAMH,OAAO,CAACI,YAAY,CAACd,IAAI,CAACO,IAAI,CAAC;IAC9F,MAAMQ,UAAU,GAAGH,IAAI,EAAEI,IAAI,EAAEC,aAAa,IAAIjB,IAAI,CAACW,OAAO,CAAC,CAAC;IAC9D,MAAMO,OAAO,GAAG,IAAAC,gDAAsB,EAACP,IAAI,CAAC;IAC5C,MAAMQ,IAAI,GAAG,MAAMV,OAAO,CAACW,WAAW,CAACrB,IAAI,EAAEkB,OAAO,CAAC;IACrD,MAAMI,UAAU,GAAGC,OAAO,CAACvB,IAAI,CAACwB,aAAa,CAAC,IAAID,OAAO,CAACvB,IAAI,CAACyB,WAAW,CAAC;IAC3E,MAAMC,GAAG,GAAG,MAAMhB,OAAO,CAACiB,gBAAgB,CAAC3B,IAAI,CAAC;IAChD,MAAM4B,YAAY,GAAG5B,IAAI,CAACyB,WAAW,GAAGzB,IAAI,CAACyB,WAAW,CAACd,OAAO,CAAC,CAAC,GAAGE,SAAS;IAC9E,OAAO,KAAIgB,uCAAkB,EAACnB,OAAO,CAACoB,WAAW,CAAC9B,IAAI,CAAC,EAAEO,IAAI,EAAEQ,UAAU,EAAEK,IAAI,EAAEE,UAAU,EAAEI,GAAG,EAAEE,YAAY,CAAC;EACjH;AACF;AAACG,OAAA,CAAAjC,8BAAA,GAAAA,8BAAA"}
|
|
@@ -83,9 +83,8 @@ class SourceFileTransformer {
|
|
|
83
83
|
*/
|
|
84
84
|
listExports(ast) {
|
|
85
85
|
return ast.statements.filter(statement => {
|
|
86
|
-
var _statement$modifiers;
|
|
87
86
|
if (statement.kind === _typescript().default.SyntaxKind.ExportDeclaration || statement.kind === _typescript().default.SyntaxKind.ExportAssignment) return true;
|
|
88
|
-
const isExport = Boolean(
|
|
87
|
+
const isExport = Boolean(statement.modifiers?.find(modifier => {
|
|
89
88
|
return modifier.kind === _typescript().default.SyntaxKind.ExportKeyword;
|
|
90
89
|
}));
|
|
91
90
|
return isExport;
|
|
@@ -93,10 +92,9 @@ class SourceFileTransformer {
|
|
|
93
92
|
}
|
|
94
93
|
listInternalNodes(ast) {
|
|
95
94
|
return ast.statements.filter(statement => {
|
|
96
|
-
|
|
97
|
-
if (!(statement.kind === _typescript().default.SyntaxKind.ExportDeclaration || statement.kind === _typescript().default.SyntaxKind.ExportAssignment) && !((_statement$modifiers2 = statement.modifiers) !== null && _statement$modifiers2 !== void 0 && _statement$modifiers2.find(modifier => {
|
|
95
|
+
if (!(statement.kind === _typescript().default.SyntaxKind.ExportDeclaration || statement.kind === _typescript().default.SyntaxKind.ExportAssignment) && !statement.modifiers?.find(modifier => {
|
|
98
96
|
return modifier.kind === _typescript().default.SyntaxKind.ExportKeyword;
|
|
99
|
-
}))
|
|
97
|
+
})) {
|
|
100
98
|
return true;
|
|
101
99
|
}
|
|
102
100
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","_lodash","_pMapSeries","_semanticsEntities","_exportIdentifier","obj","__esModule","default","SourceFileTransformer","predicate","node","kind","ts","SyntaxKind","SourceFile","getIdentifiers","sourceFile","context","exports","listExports","internals","listInternalNodes","exportIdentifiers","flatten","pMapSeries","reduce","acc","current","item","find","exportIdentifier","isEqual","push","ExportIdentifier","id","filePath","aliasId","sourceFilePath","internalIdentifiers","internalIdentifier","identifiers","transform","filter","internal","ImportDeclaration","exportDeclarations","exportNode","computeSchema","internalDeclarations","internalNode","ModuleSchema","getLocation","ast","statements","statement","
|
|
1
|
+
{"version":3,"names":["_typescript","data","_interopRequireDefault","require","_lodash","_pMapSeries","_semanticsEntities","_exportIdentifier","obj","__esModule","default","SourceFileTransformer","predicate","node","kind","ts","SyntaxKind","SourceFile","getIdentifiers","sourceFile","context","exports","listExports","internals","listInternalNodes","exportIdentifiers","flatten","pMapSeries","reduce","acc","current","item","find","exportIdentifier","isEqual","push","ExportIdentifier","id","filePath","aliasId","sourceFilePath","internalIdentifiers","internalIdentifier","identifiers","transform","filter","internal","ImportDeclaration","exportDeclarations","exportNode","computeSchema","internalDeclarations","internalNode","ModuleSchema","getLocation","ast","statements","statement","ExportDeclaration","ExportAssignment","isExport","Boolean","modifiers","modifier","ExportKeyword"],"sources":["source-file-transformer.ts"],"sourcesContent":["import ts, { Node, SourceFile } from 'typescript';\nimport { flatten } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport { ModuleSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class SourceFileTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.SourceFile;\n }\n\n async getIdentifiers(sourceFile: SourceFile, context: SchemaExtractorContext) {\n const exports = this.listExports(sourceFile);\n const internals = this.listInternalNodes(sourceFile);\n\n // change to pMap series\n const exportIdentifiers = flatten(\n await pMapSeries(exports, (node) => {\n return context.getIdentifiers(node);\n })\n ).reduce<ExportIdentifier[]>((acc, current) => {\n const item = acc.find((exportIdentifier) => exportIdentifier.isEqual(current));\n if (!item) acc.push(new ExportIdentifier(current.id, current.filePath, current.aliasId, current.sourceFilePath));\n return acc;\n }, []);\n\n const internalIdentifiers = flatten(\n await pMapSeries(internals, (node) => {\n return context.getIdentifiers(node);\n })\n ).reduce<Identifier[]>((acc, current) => {\n const item = acc.find((internalIdentifier) => internalIdentifier.isEqual(current));\n if (!item) acc.push(current);\n return acc;\n }, []);\n\n const identifiers = [...exportIdentifiers, ...internalIdentifiers];\n\n return identifiers;\n }\n\n async transform(node: SourceFile, context: SchemaExtractorContext) {\n const exports = this.listExports(node);\n const internals = this.listInternalNodes(node).filter(\n (internal) => internal.kind !== ts.SyntaxKind.ImportDeclaration\n );\n\n const exportDeclarations = await pMapSeries(exports, (exportNode) => {\n return context.computeSchema(exportNode);\n });\n\n const internalDeclarations = await pMapSeries(internals, (internalNode) => {\n return context.computeSchema(internalNode);\n });\n\n return new ModuleSchema(context.getLocation(node), exportDeclarations, internalDeclarations);\n }\n\n /**\n * list all exports of a source file.\n */\n private listExports(ast: SourceFile): Node[] {\n return ast.statements.filter((statement) => {\n if (statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment)\n return true;\n const isExport = Boolean(\n statement.modifiers?.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n })\n );\n return isExport;\n });\n }\n\n private listInternalNodes(ast: SourceFile): Node[] {\n return ast.statements.filter((statement) => {\n if (\n !(statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment) &&\n !statement.modifiers?.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n })\n ) {\n return true;\n }\n\n return false;\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -84,13 +84,11 @@ function simpleTag(tag, tagName, context) {
|
|
|
84
84
|
return new (_semanticsEntities().TagSchema)(context.getLocation(tag), tagName, (0, _typescript().getTextOfJSDocComment)(tag.comment));
|
|
85
85
|
}
|
|
86
86
|
async function returnTag(tag, context) {
|
|
87
|
-
|
|
88
|
-
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;
|
|
87
|
+
const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;
|
|
89
88
|
return new (_semanticsEntities().ReturnTagSchema)(context.getLocation(tag), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
|
|
90
89
|
}
|
|
91
90
|
async function propertyLikeTag(tag, context) {
|
|
92
|
-
|
|
93
|
-
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;
|
|
91
|
+
const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;
|
|
94
92
|
return new (_semanticsEntities().PropertyLikeTagSchema)(context.getLocation(tag), tag.name.getText(), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
|
|
95
93
|
}
|
|
96
94
|
|
|
@@ -1 +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","formattedComment","formatSnippet","TagSchema","getLocation","e","
|
|
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","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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"}
|
|
@@ -43,8 +43,7 @@ const UNRESOLVED = exports.UNRESOLVED = '<<unresolved>>';
|
|
|
43
43
|
* }
|
|
44
44
|
*/
|
|
45
45
|
function parseTypeFromQuickInfo(quickInfo) {
|
|
46
|
-
|
|
47
|
-
if (!(quickInfo !== null && quickInfo !== void 0 && (_quickInfo$body = quickInfo.body) !== null && _quickInfo$body !== void 0 && _quickInfo$body.displayString)) return '';
|
|
46
|
+
if (!quickInfo?.body?.displayString) return '';
|
|
48
47
|
const displayString = quickInfo.body.displayString;
|
|
49
48
|
const splitByColon = displayString.split(':');
|
|
50
49
|
switch (quickInfo.body.kind) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["UNRESOLVED","exports","parseTypeFromQuickInfo","quickInfo","
|
|
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":["// eslint-disable-next-line import/no-unresolved\nimport protocol from 'typescript/lib/protocol';\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: 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: 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":";;;;;;;;AAAA;;AAGO,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,SAAiD,EAAU;EAChG,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,CAAE,IAAGN,SAAS,CAACC,IAAI,CAACI,IAAK,IAAG,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,SAAiD,EAAU;EACtG,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"}
|
|
@@ -58,38 +58,34 @@ class VariableDeclaration {
|
|
|
58
58
|
return [new (_identifier().Identifier)(node.name.getText(), node.getSourceFile().fileName)];
|
|
59
59
|
}
|
|
60
60
|
async transform(varDec, context) {
|
|
61
|
-
var _info$body, _varDec$modifiers, _varDec$initializer;
|
|
62
61
|
const name = this.getName(varDec);
|
|
63
62
|
const info = await context.getQuickInfo(varDec.name);
|
|
64
|
-
const displaySig =
|
|
63
|
+
const displaySig = info?.body?.displayString || '';
|
|
65
64
|
const location = context.getLocation(varDec);
|
|
66
65
|
const doc = await context.jsDocToDocSchema(varDec);
|
|
67
|
-
const modifiers =
|
|
68
|
-
if (
|
|
69
|
-
var _functionLikeInfo$bod3;
|
|
66
|
+
const modifiers = varDec.modifiers?.map(modifier => modifier.getText()) || [];
|
|
67
|
+
if (varDec.initializer?.kind === _typescript().default.SyntaxKind.ArrowFunction) {
|
|
70
68
|
const functionLikeInfo = await context.getQuickInfo(varDec.initializer.equalsGreaterThanToken);
|
|
71
69
|
const returnTypeStr = functionLikeInfo ? (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(functionLikeInfo) : 'any';
|
|
72
70
|
// example => export const useLanesContext: () => LanesContextModel | undefined = () => {
|
|
73
71
|
if (varDec.type) {
|
|
74
72
|
const funcType = await context.resolveType(varDec, '');
|
|
75
73
|
if (isFunctionLike(funcType)) {
|
|
76
|
-
|
|
77
|
-
return new (_semanticsEntities().FunctionLikeSchema)(location, name, funcType.params, funcType.returnType, (functionLikeInfo === null || functionLikeInfo === void 0 || (_functionLikeInfo$bod = functionLikeInfo.body) === null || _functionLikeInfo$bod === void 0 ? void 0 : _functionLikeInfo$bod.displayString) || '', modifiers, doc);
|
|
74
|
+
return new (_semanticsEntities().FunctionLikeSchema)(location, name, funcType.params, funcType.returnType, functionLikeInfo?.body?.displayString || '', modifiers, doc);
|
|
78
75
|
}
|
|
79
76
|
// e.g. export const MyComponent: React.FC<T> = ({}) => {}
|
|
80
77
|
if (funcType instanceof _semanticsEntities().TypeRefSchema) {
|
|
81
|
-
var _functionLikeInfo$bod2;
|
|
82
78
|
const paramTypes = funcType.typeArgs;
|
|
83
79
|
const params = varDec.initializer.parameters;
|
|
84
80
|
const paramsSchema = await (0, _pMapSeries().default)(params, async (param, index) => {
|
|
85
|
-
const objectBindingNodes = await _parameter().ParameterTransformer.getObjectBindingNodes(param,
|
|
86
|
-
return new (_semanticsEntities().ParameterSchema)(location, _parameter().ParameterTransformer.getName(param),
|
|
81
|
+
const objectBindingNodes = await _parameter().ParameterTransformer.getObjectBindingNodes(param, paramTypes?.[index] ?? funcType, context);
|
|
82
|
+
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));
|
|
87
83
|
});
|
|
88
|
-
return new (_semanticsEntities().FunctionLikeSchema)(location, name, paramsSchema, await context.resolveType(varDec.initializer, returnTypeStr),
|
|
84
|
+
return new (_semanticsEntities().FunctionLikeSchema)(location, name, paramsSchema, await context.resolveType(varDec.initializer, returnTypeStr), functionLikeInfo?.body?.displayString || '', modifiers, doc);
|
|
89
85
|
}
|
|
90
86
|
}
|
|
91
87
|
const args = await (0, _pMapSeries().default)(varDec.initializer.parameters, async param => context.computeSchema(param));
|
|
92
|
-
return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, await context.resolveType(varDec.initializer, returnTypeStr),
|
|
88
|
+
return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, await context.resolveType(varDec.initializer, returnTypeStr), functionLikeInfo?.body?.displayString || '', modifiers, doc);
|
|
93
89
|
}
|
|
94
90
|
const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
|
|
95
91
|
const type = await context.resolveType(varDec, typeStr);
|