@teambit/typescript 1.0.187 → 1.0.188
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 +14 -14
- package/artifacts/preview/teambit_typescript_typescript-preview.js +1 -1
- package/dist/{preview-1709867881461.js → preview-1710040632859.js} +2 -2
- package/dist/schema-extractor-context.d.ts +4 -4
- package/dist/sourceFileTransformers/class.js +4 -4
- package/dist/sourceFileTransformers/class.js.map +1 -1
- package/dist/sourceFileTransformers/export.js +2 -2
- package/dist/sourceFileTransformers/export.js.map +1 -1
- package/dist/sourceFileTransformers/expression-statement.js.map +1 -1
- package/dist/sourceFileTransformers/function.js +3 -3
- package/dist/sourceFileTransformers/function.js.map +1 -1
- package/dist/sourceFileTransformers/import.js +3 -3
- package/dist/sourceFileTransformers/import.js.map +1 -1
- package/dist/sourceFileTransformers/interface.js +1 -1
- package/dist/sourceFileTransformers/interface.js.map +1 -1
- package/dist/sourceFileTransformers/type-reference.js.map +1 -1
- package/dist/sourceFileTransformers/typeAlias.js +1 -1
- package/dist/sourceFileTransformers/typeAlias.js.map +1 -1
- package/dist/sourceFileTransformers/variable.js.map +1 -1
- package/dist/transformers/class-declaration.js +4 -2
- package/dist/transformers/class-declaration.js.map +1 -1
- package/dist/transformers/export-declaration.js +1 -1
- package/dist/transformers/export-declaration.js.map +1 -1
- package/dist/transformers/function-like.js +5 -3
- package/dist/transformers/function-like.js.map +1 -1
- package/dist/transformers/property-declaration.js +2 -2
- package/dist/transformers/property-declaration.js.map +1 -1
- package/dist/transformers/source-file-transformer.js +4 -2
- package/dist/transformers/source-file-transformer.js.map +1 -1
- package/dist/transformers/utils/parse-type-from-quick-info.d.ts +3 -3
- package/dist/transformers/utils/parse-type-from-quick-info.js +0 -2
- package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -1
- package/dist/transformers/variable-declaration.js +2 -1
- package/dist/transformers/variable-declaration.js.map +1 -1
- package/dist/typescript.parser.js +3 -2
- package/dist/typescript.parser.js.map +1 -1
- package/package.json +18 -18
- package/sourceFileTransformers/class.ts +2 -6
- package/sourceFileTransformers/export.ts +2 -3
- package/sourceFileTransformers/expression-statement.ts +7 -3
- package/sourceFileTransformers/function.ts +2 -5
- package/sourceFileTransformers/import.ts +1 -4
- package/sourceFileTransformers/interface.ts +1 -2
- package/sourceFileTransformers/type-reference.ts +1 -1
- package/sourceFileTransformers/typeAlias.ts +1 -2
- package/sourceFileTransformers/variable.ts +1 -1
- package/transformers/class-declaration.ts +5 -3
- package/transformers/export-declaration.ts +1 -1
- package/transformers/function-like.ts +6 -4
- package/transformers/property-declaration.ts +3 -3
- package/transformers/source-file-transformer.ts +4 -2
- package/transformers/utils/parse-type-from-quick-info.ts +3 -4
- package/transformers/variable-declaration.ts +2 -1
- package/artifacts/schema.json +0 -14426
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_lodash","_semanticsEntities","_typescript","_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","ClassDeclarationTransformer","predicate","node","kind","ts","SyntaxKind","ClassDeclaration","getName","name","getText","getIdentifiers","Identifier","getSourceFile","fileName","getExpressionWithTypeArgs","context","token","heritageClauses","pMapSeries","heritageClause","flatMap","h","types","map","type","expressionWithTypeArgs","typeArguments","expression","typeArgsNodes","computeSchema","location","getLocation","expressionNode","visitDefinition","UnresolvedSchema","ExpressionWithTypeArgumentsSchema","transform","decorators","decorator","undefined","className","extendsExpressionsWithTypeArgs","ExtendsKeyword","implementsExpressionsWithTypeArgs","ImplementsKeyword","typeParameters","typeParam","signature","getQuickInfoDisplayString","members","member","isPrivate","modifiers","some","modifier","PrivateKeyword","doc","jsDocToDocSchema","Error","ClassSchema","compact","exports"],"sources":["class-declaration.ts"],"sourcesContent":["import pMapSeries from 'p-map-series';\nimport { compact } from 'lodash';\nimport {\n ClassSchema,\n UnresolvedSchema,\n ExpressionWithTypeArgumentsSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, ClassDeclaration } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class ClassDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.ClassDeclaration;\n }\n\n // @todo: in case of `export default class` the class has no name.\n private getName(node: ClassDeclaration) {\n return node.name?.getText() || 'default';\n }\n\n async getIdentifiers(node: ClassDeclaration) {\n return [new Identifier(this.getName(node), node.getSourceFile().fileName)];\n }\n\n private async getExpressionWithTypeArgs(\n node: ClassDeclaration,\n context: SchemaExtractorContext,\n token: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword\n ) {\n if (!node.heritageClauses) return [];\n\n return pMapSeries(\n node.heritageClauses\n .filter((heritageClause: ts.HeritageClause) => heritageClause.token === token)\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(node: ClassDeclaration, context: SchemaExtractorContext) {\n const decorators = node.decorators?.length\n ? await pMapSeries(node.decorators, (decorator) => context.computeSchema(decorator))\n : undefined;\n const className = this.getName(node);\n const extendsExpressionsWithTypeArgs = await this.getExpressionWithTypeArgs(\n node,\n context,\n ts.SyntaxKind.ExtendsKeyword\n );\n\n const implementsExpressionsWithTypeArgs = await this.getExpressionWithTypeArgs(\n node,\n context,\n ts.SyntaxKind.ImplementsKeyword\n );\n\n const typeParameters = node.typeParameters?.map((typeParam) => {\n return typeParam.name.getText();\n });\n const signature = node.name ? await context.getQuickInfoDisplayString(node.name) : undefined;\n const members = await pMapSeries(node.members, async (member) => {\n const isPrivate = member.modifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.PrivateKeyword);\n if (isPrivate) {\n return null;\n }\n return context.computeSchema(member);\n });\n const doc = await context.jsDocToDocSchema(node);\n\n if (!signature) {\n throw Error(`Missing signature for class ${className} declaration`);\n }\n\n return new ClassSchema(\n className,\n compact(members),\n context.getLocation(node),\n signature,\n doc,\n typeParameters,\n extendsExpressionsWithTypeArgs,\n implementsExpressionsWithTypeArgs,\n decorators\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_lodash","_semanticsEntities","_typescript","_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","ClassDeclarationTransformer","predicate","node","kind","ts","SyntaxKind","ClassDeclaration","getName","name","getText","getIdentifiers","Identifier","getSourceFile","fileName","getExpressionWithTypeArgs","context","token","heritageClauses","pMapSeries","heritageClause","flatMap","h","types","map","type","expressionWithTypeArgs","typeArguments","expression","typeArgsNodes","computeSchema","location","getLocation","expressionNode","visitDefinition","UnresolvedSchema","ExpressionWithTypeArgumentsSchema","transform","nodeDecorators","canHaveDecorators","getDecorators","undefined","decorators","decorator","className","extendsExpressionsWithTypeArgs","ExtendsKeyword","implementsExpressionsWithTypeArgs","ImplementsKeyword","typeParameters","typeParam","signature","getQuickInfoDisplayString","members","member","memberModifiers","canHaveModifiers","getModifiers","isPrivate","some","modifier","PrivateKeyword","doc","jsDocToDocSchema","Error","ClassSchema","compact","exports"],"sources":["class-declaration.ts"],"sourcesContent":["import pMapSeries from 'p-map-series';\nimport { compact } from 'lodash';\nimport {\n ClassSchema,\n UnresolvedSchema,\n ExpressionWithTypeArgumentsSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, ClassDeclaration } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class ClassDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.ClassDeclaration;\n }\n\n // @todo: in case of `export default class` the class has no name.\n private getName(node: ClassDeclaration) {\n return node.name?.getText() || 'default';\n }\n\n async getIdentifiers(node: ClassDeclaration) {\n return [new Identifier(this.getName(node), node.getSourceFile().fileName)];\n }\n\n private async getExpressionWithTypeArgs(\n node: ClassDeclaration,\n context: SchemaExtractorContext,\n token: ts.SyntaxKind.ExtendsKeyword | ts.SyntaxKind.ImplementsKeyword\n ) {\n if (!node.heritageClauses) return [];\n\n return pMapSeries(\n node.heritageClauses\n .filter((heritageClause: ts.HeritageClause) => heritageClause.token === token)\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(node: ClassDeclaration, context: SchemaExtractorContext) {\n const nodeDecorators = ts.canHaveDecorators(node) ? ts.getDecorators(node) : undefined;\n const decorators = nodeDecorators?.length\n ? await pMapSeries(nodeDecorators, (decorator) => context.computeSchema(decorator))\n : undefined;\n const className = this.getName(node);\n const extendsExpressionsWithTypeArgs = await this.getExpressionWithTypeArgs(\n node,\n context,\n ts.SyntaxKind.ExtendsKeyword\n );\n\n const implementsExpressionsWithTypeArgs = await this.getExpressionWithTypeArgs(\n node,\n context,\n ts.SyntaxKind.ImplementsKeyword\n );\n\n const typeParameters = node.typeParameters?.map((typeParam) => {\n return typeParam.name.getText();\n });\n const signature = node.name ? await context.getQuickInfoDisplayString(node.name) : undefined;\n const members = await pMapSeries(node.members, async (member) => {\n const memberModifiers = ts.canHaveModifiers(member) ? ts.getModifiers(member) : undefined;\n const isPrivate = memberModifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.PrivateKeyword);\n if (isPrivate) {\n return null;\n }\n return context.computeSchema(member);\n });\n const doc = await context.jsDocToDocSchema(node);\n\n if (!signature) {\n throw Error(`Missing signature for class ${className} declaration`);\n }\n\n return new ClassSchema(\n className,\n compact(members),\n context.getLocation(node),\n signature,\n doc,\n typeParameters,\n extendsExpressionsWithTypeArgs,\n implementsExpressionsWithTypeArgs,\n decorators\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -117,7 +117,7 @@ async function exportSpecifierToSchemaNode(element, context) {
|
|
|
117
117
|
make sure "bit status" is clean and there are no errors about missing packages/links.
|
|
118
118
|
also, make sure the tsconfig.json in the root has the "jsx" setting defined.`);
|
|
119
119
|
}
|
|
120
|
-
if (definitionNode.parent.kind === _typescript().SyntaxKind.ExportSpecifier) return exportSpecifierToSchemaNode(definitionNode.parent, context);
|
|
120
|
+
if (definitionNode.parent.kind === _typescript().SyntaxKind.ExportSpecifier) return await exportSpecifierToSchemaNode(definitionNode.parent, context);
|
|
121
121
|
return await context.computeSchema(definitionNode.parent);
|
|
122
122
|
} catch (e) {
|
|
123
123
|
return new (_semanticsEntities().UnresolvedSchema)(context.getLocation(element.name), element.name.getText());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireWildcard","_exportIdentifier","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ExportDeclarationTransformer","predicate","node","kind","SyntaxKind","ExportDeclaration","getIdentifiers","exportDec","context","rawSourceFilePath","moduleSpecifier","getText","sourceFilePath","substring","length","exportClause","ts","NamedExports","elements","map","elm","alias","propertyName","name","undefined","id","fileName","getSourceFile","ExportIdentifier","NamespaceExport","getFileExports","transform","specifier","Error","sourceFile","getSourceFileFromNode","UnImplementedSchema","getLocation","computeSchema","schemas","namedExport","ModuleSchema","namespaceExport","exports","isSameNode","nodeA","nodeB","pos","end","Promise","all","element","exportSpecifierToSchemaNode","definitionInfo","UnresolvedSchema","definitionNode","definition","resolveType","parent","getLocationAsString","ExportSpecifier","namespace","filePath","getFilePathByNode","getSourceFileInsideComponent","getTypeRefForExternalPath","result"],"sources":["export-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n ModuleSchema,\n UnresolvedSchema,\n UnImplementedSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, {\n Node,\n SyntaxKind,\n ExportDeclaration as ExportDeclarationNode,\n NamedExports,\n NamespaceExport,\n ExportSpecifier,\n} from 'typescript';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\n\nexport class ExportDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.ExportDeclaration;\n }\n\n async getIdentifiers(exportDec: ExportDeclarationNode, context: SchemaExtractorContext) {\n // e.g. `export { button1, button2 } as Composition from './button';\n const rawSourceFilePath = exportDec.moduleSpecifier?.getText();\n\n // strip off quotes ''\n const sourceFilePath = rawSourceFilePath && rawSourceFilePath.substring(1, rawSourceFilePath?.length - 1);\n\n if (exportDec.exportClause?.kind === ts.SyntaxKind.NamedExports) {\n return exportDec.exportClause.elements.map((elm) => {\n const alias = (elm.propertyName && elm.name.getText()) || undefined;\n const id = elm.propertyName?.getText() || elm.name.getText();\n const fileName = elm.getSourceFile().fileName;\n\n return new ExportIdentifier(id, fileName, alias, sourceFilePath);\n });\n }\n\n // e.g. `export * as Composition from './button';\n if (exportDec.exportClause?.kind === ts.SyntaxKind.NamespaceExport) {\n return [\n new ExportIdentifier(\n exportDec.exportClause.name.getText(),\n exportDec.getSourceFile().fileName,\n undefined,\n sourceFilePath\n ),\n ];\n }\n\n if (exportDec.moduleSpecifier) {\n return context.getFileExports(exportDec);\n }\n\n return [];\n }\n\n async transform(exportDec: ExportDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const exportClause = exportDec.exportClause;\n\n // it's export-all, e.g. `export * from './button'`;\n if (!exportClause) {\n const specifier = exportDec.moduleSpecifier;\n if (!specifier) {\n throw new Error(`fatal: no specifier`);\n }\n const sourceFile = await context.getSourceFileFromNode(specifier);\n // export * from 'webpack', export-all from a package\n if (!sourceFile) {\n return new UnImplementedSchema(\n context.getLocation(exportDec),\n exportDec.getText(),\n SyntaxKind[SyntaxKind.ExportDeclaration]\n );\n }\n return context.computeSchema(sourceFile);\n }\n\n // e.g. `export { button1, button2 } as Composition from './button';\n if (exportClause.kind === SyntaxKind.NamedExports) {\n const schemas = await namedExport(exportClause, context);\n return new ModuleSchema(context.getLocation(exportDec), schemas, []);\n }\n // e.g. `export * as Composition from './button';\n if (exportClause.kind === SyntaxKind.NamespaceExport) {\n return namespaceExport(exportClause, exportDec, context);\n }\n\n // should never reach here. exportClause can be either NamespaceExport or NamedExports\n throw new Error(`unrecognized exportClause type`);\n }\n}\n\nfunction isSameNode(nodeA: Node, nodeB: Node): boolean {\n return nodeA.kind === nodeB.kind && nodeA.pos === nodeB.pos && nodeA.end === nodeB.end;\n}\n\nasync function namedExport(exportClause: NamedExports, context: SchemaExtractorContext): Promise<SchemaNode[]> {\n const schemas = await Promise.all(\n exportClause.elements.map(async (element) => {\n return exportSpecifierToSchemaNode(element, context);\n })\n );\n\n return schemas;\n}\n\nasync function exportSpecifierToSchemaNode(element: ExportSpecifier, context: SchemaExtractorContext) {\n try {\n const definitionInfo = await context.definitionInfo(element);\n if (!definitionInfo) {\n // happens for example when the main index.ts file exports variable from an mdx file.\n // tsserver is unable to get the definition node because it doesn't know to parse mdx files.\n return new UnresolvedSchema(context.getLocation(element.name), element.name.getText());\n }\n\n const definitionNode = await context.definition(definitionInfo);\n\n if (!definitionNode) {\n return await context.resolveType(element, element.name.getText(), false);\n }\n\n // if it is reexported from another export\n if (isSameNode(element, definitionNode.parent)) {\n // the definition node is the same node as element.name. tsserver wasn't able to find the source for it\n // normally, \"bit install\" should fix it. another option is to open vscode and look for errors.\n throw new Error(`error: tsserver is unable to locate the identifier \"${element.name.getText()}\" at ${context.getLocationAsString(\n element.name\n )}.\nmake sure \"bit status\" is clean and there are no errors about missing packages/links.\nalso, make sure the tsconfig.json in the root has the \"jsx\" setting defined.`);\n }\n\n if (definitionNode.parent.kind === SyntaxKind.ExportSpecifier)\n return exportSpecifierToSchemaNode(definitionNode.parent as ExportSpecifier, context);\n\n return await context.computeSchema(definitionNode.parent);\n } catch (e) {\n return new UnresolvedSchema(context.getLocation(element.name), element.name.getText());\n }\n}\n\nasync function namespaceExport(\n exportClause: NamespaceExport,\n exportDec: ExportDeclarationNode,\n context: SchemaExtractorContext\n) {\n const namespace = exportClause.name.getText();\n const filePath = await context.getFilePathByNode(exportClause.name);\n if (!filePath) {\n throw new Error(`unable to find the file-path for \"${namespace}\"`);\n }\n const sourceFile = context.getSourceFileInsideComponent(filePath);\n if (!sourceFile) {\n // it's a namespace from another component or an external package.\n return context.getTypeRefForExternalPath(namespace, filePath, context.getLocation(exportDec));\n }\n const result = await context.computeSchema(sourceFile);\n if (!(result instanceof ModuleSchema)) {\n throw new Error(`expect result to be instance of Module`);\n }\n result.namespace = namespace;\n return result;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireWildcard","_exportIdentifier","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ExportDeclarationTransformer","predicate","node","kind","SyntaxKind","ExportDeclaration","getIdentifiers","exportDec","context","rawSourceFilePath","moduleSpecifier","getText","sourceFilePath","substring","length","exportClause","ts","NamedExports","elements","map","elm","alias","propertyName","name","undefined","id","fileName","getSourceFile","ExportIdentifier","NamespaceExport","getFileExports","transform","specifier","Error","sourceFile","getSourceFileFromNode","UnImplementedSchema","getLocation","computeSchema","schemas","namedExport","ModuleSchema","namespaceExport","exports","isSameNode","nodeA","nodeB","pos","end","Promise","all","element","exportSpecifierToSchemaNode","definitionInfo","UnresolvedSchema","definitionNode","definition","resolveType","parent","getLocationAsString","ExportSpecifier","namespace","filePath","getFilePathByNode","getSourceFileInsideComponent","getTypeRefForExternalPath","result"],"sources":["export-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n ModuleSchema,\n UnresolvedSchema,\n UnImplementedSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, {\n Node,\n SyntaxKind,\n ExportDeclaration as ExportDeclarationNode,\n NamedExports,\n NamespaceExport,\n ExportSpecifier,\n} from 'typescript';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\n\nexport class ExportDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.ExportDeclaration;\n }\n\n async getIdentifiers(exportDec: ExportDeclarationNode, context: SchemaExtractorContext) {\n // e.g. `export { button1, button2 } as Composition from './button';\n const rawSourceFilePath = exportDec.moduleSpecifier?.getText();\n\n // strip off quotes ''\n const sourceFilePath = rawSourceFilePath && rawSourceFilePath.substring(1, rawSourceFilePath?.length - 1);\n\n if (exportDec.exportClause?.kind === ts.SyntaxKind.NamedExports) {\n return exportDec.exportClause.elements.map((elm) => {\n const alias = (elm.propertyName && elm.name.getText()) || undefined;\n const id = elm.propertyName?.getText() || elm.name.getText();\n const fileName = elm.getSourceFile().fileName;\n\n return new ExportIdentifier(id, fileName, alias, sourceFilePath);\n });\n }\n\n // e.g. `export * as Composition from './button';\n if (exportDec.exportClause?.kind === ts.SyntaxKind.NamespaceExport) {\n return [\n new ExportIdentifier(\n exportDec.exportClause.name.getText(),\n exportDec.getSourceFile().fileName,\n undefined,\n sourceFilePath\n ),\n ];\n }\n\n if (exportDec.moduleSpecifier) {\n return context.getFileExports(exportDec);\n }\n\n return [];\n }\n\n async transform(exportDec: ExportDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const exportClause = exportDec.exportClause;\n\n // it's export-all, e.g. `export * from './button'`;\n if (!exportClause) {\n const specifier = exportDec.moduleSpecifier;\n if (!specifier) {\n throw new Error(`fatal: no specifier`);\n }\n const sourceFile = await context.getSourceFileFromNode(specifier);\n // export * from 'webpack', export-all from a package\n if (!sourceFile) {\n return new UnImplementedSchema(\n context.getLocation(exportDec),\n exportDec.getText(),\n SyntaxKind[SyntaxKind.ExportDeclaration]\n );\n }\n return context.computeSchema(sourceFile);\n }\n\n // e.g. `export { button1, button2 } as Composition from './button';\n if (exportClause.kind === SyntaxKind.NamedExports) {\n const schemas = await namedExport(exportClause, context);\n return new ModuleSchema(context.getLocation(exportDec), schemas, []);\n }\n // e.g. `export * as Composition from './button';\n if (exportClause.kind === SyntaxKind.NamespaceExport) {\n return namespaceExport(exportClause, exportDec, context);\n }\n\n // should never reach here. exportClause can be either NamespaceExport or NamedExports\n throw new Error(`unrecognized exportClause type`);\n }\n}\n\nfunction isSameNode(nodeA: Node, nodeB: Node): boolean {\n return nodeA.kind === nodeB.kind && nodeA.pos === nodeB.pos && nodeA.end === nodeB.end;\n}\n\nasync function namedExport(exportClause: NamedExports, context: SchemaExtractorContext): Promise<SchemaNode[]> {\n const schemas = await Promise.all(\n exportClause.elements.map(async (element) => {\n return exportSpecifierToSchemaNode(element, context);\n })\n );\n\n return schemas;\n}\n\nasync function exportSpecifierToSchemaNode(element: ExportSpecifier, context: SchemaExtractorContext) {\n try {\n const definitionInfo = await context.definitionInfo(element);\n if (!definitionInfo) {\n // happens for example when the main index.ts file exports variable from an mdx file.\n // tsserver is unable to get the definition node because it doesn't know to parse mdx files.\n return new UnresolvedSchema(context.getLocation(element.name), element.name.getText());\n }\n\n const definitionNode = await context.definition(definitionInfo);\n\n if (!definitionNode) {\n return await context.resolveType(element, element.name.getText(), false);\n }\n\n // if it is reexported from another export\n if (isSameNode(element, definitionNode.parent)) {\n // the definition node is the same node as element.name. tsserver wasn't able to find the source for it\n // normally, \"bit install\" should fix it. another option is to open vscode and look for errors.\n throw new Error(`error: tsserver is unable to locate the identifier \"${element.name.getText()}\" at ${context.getLocationAsString(\n element.name\n )}.\nmake sure \"bit status\" is clean and there are no errors about missing packages/links.\nalso, make sure the tsconfig.json in the root has the \"jsx\" setting defined.`);\n }\n\n if (definitionNode.parent.kind === SyntaxKind.ExportSpecifier)\n return await exportSpecifierToSchemaNode(definitionNode.parent as ExportSpecifier, context);\n\n return await context.computeSchema(definitionNode.parent);\n } catch (e) {\n return new UnresolvedSchema(context.getLocation(element.name), element.name.getText());\n }\n}\n\nasync function namespaceExport(\n exportClause: NamespaceExport,\n exportDec: ExportDeclarationNode,\n context: SchemaExtractorContext\n) {\n const namespace = exportClause.name.getText();\n const filePath = await context.getFilePathByNode(exportClause.name);\n if (!filePath) {\n throw new Error(`unable to find the file-path for \"${namespace}\"`);\n }\n const sourceFile = context.getSourceFileInsideComponent(filePath);\n if (!sourceFile) {\n // it's a namespace from another component or an external package.\n return context.getTypeRefForExternalPath(namespace, filePath, context.getLocation(exportDec));\n }\n const result = await context.computeSchema(sourceFile);\n if (!(result instanceof ModuleSchema)) {\n throw new Error(`expect result to be instance of Module`);\n }\n result.namespace = namespace;\n return result;\n}\n"],"mappings":"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"}
|
|
@@ -55,8 +55,9 @@ class FunctionLikeTransformer {
|
|
|
55
55
|
}
|
|
56
56
|
async transform(node, context) {
|
|
57
57
|
const name = this.getName(node);
|
|
58
|
+
const nodeModifiers = _typescript().default.canHaveModifiers(node) ? _typescript().default.getModifiers(node) : undefined;
|
|
58
59
|
const getQuickInfoFromDefaultModifier = async () => {
|
|
59
|
-
const defaultModifier =
|
|
60
|
+
const defaultModifier = nodeModifiers?.find(modifier => modifier.kind === _typescript().default.SyntaxKind.DefaultKeyword);
|
|
60
61
|
if (defaultModifier) return context.getQuickInfo(defaultModifier);
|
|
61
62
|
if (node.kind === _typescript().default.SyntaxKind.ArrowFunction) return context.getQuickInfo(node.equalsGreaterThanToken);
|
|
62
63
|
return null;
|
|
@@ -66,11 +67,12 @@ class FunctionLikeTransformer {
|
|
|
66
67
|
const displaySig = info?.body?.displayString || '';
|
|
67
68
|
const args = await (0, _pMapSeries().default)(node.parameters, async param => context.computeSchema(param));
|
|
68
69
|
const returnType = await context.resolveType(node, returnTypeStr, Boolean(info));
|
|
69
|
-
const modifiers =
|
|
70
|
+
const modifiers = nodeModifiers?.map(modifier => modifier.getText()) || [];
|
|
70
71
|
const typeParameters = node.typeParameters?.map(typeParam => typeParam.name.getText());
|
|
71
72
|
const location = context.getLocation(node);
|
|
72
73
|
const doc = await context.jsDocToDocSchema(node);
|
|
73
|
-
const
|
|
74
|
+
const nodeDecorators = _typescript().default.canHaveDecorators(node) ? _typescript().default.getDecorators(node) : undefined;
|
|
75
|
+
const decorators = nodeDecorators?.length ? await (0, _pMapSeries().default)(nodeDecorators, decorator => context.computeSchema(decorator)) : undefined;
|
|
74
76
|
return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, returnType, displaySig, modifiers, doc, typeParameters, decorators);
|
|
75
77
|
}
|
|
76
78
|
}
|
|
@@ -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","FunctionType","MethodSignature","getIdentifiers","funcDec","Identifier","getName","getSourceFile","fileName","name","getText","transform","context","
|
|
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","FunctionType","MethodSignature","getIdentifiers","funcDec","Identifier","getName","getSourceFile","fileName","name","getText","transform","context","nodeModifiers","canHaveModifiers","getModifiers","undefined","getQuickInfoFromDefaultModifier","defaultModifier","find","modifier","DefaultKeyword","getQuickInfo","equalsGreaterThanToken","info","returnTypeStr","parseTypeFromQuickInfo","displaySig","body","displayString","args","pMapSeries","parameters","param","computeSchema","returnType","resolveType","Boolean","modifiers","map","typeParameters","typeParam","location","getLocation","doc","jsDocToDocSchema","nodeDecorators","canHaveDecorators","getDecorators","decorators","length","decorator","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.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 nodeModifiers = ts.canHaveModifiers(node) ? ts.getModifiers(node) : undefined;\n const getQuickInfoFromDefaultModifier = async () => {\n const defaultModifier = nodeModifiers?.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 = nodeModifiers?.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 const nodeDecorators = ts.canHaveDecorators(node) ? ts.getDecorators(node) : undefined;\n const decorators = nodeDecorators?.length\n ? await pMapSeries(nodeDecorators, (decorator) => context.computeSchema(decorator))\n : undefined;\n\n return new FunctionLikeSchema(\n location,\n name,\n args,\n returnType,\n displaySig,\n modifiers as Modifier[],\n doc,\n typeParameters,\n decorators\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -45,9 +45,9 @@ class PropertyDeclarationTransformer {
|
|
|
45
45
|
const displaySig = info?.body?.displayString || node.getText();
|
|
46
46
|
const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
|
|
47
47
|
const type = await context.resolveType(node, typeStr);
|
|
48
|
-
const isOptional = Boolean(node.questionToken) || Boolean(node.initializer);
|
|
48
|
+
const isOptional = Boolean(node.questionToken) || (0, _typescript().isPropertyDeclaration)(node) && Boolean(node.initializer);
|
|
49
49
|
const doc = await context.jsDocToDocSchema(node);
|
|
50
|
-
const defaultValue = node
|
|
50
|
+
const defaultValue = (0, _typescript().isPropertyDeclaration)(node) ? node.initializer?.getText() : undefined;
|
|
51
51
|
return new (_semanticsEntities().VariableLikeSchema)(context.getLocation(node), name, displaySig, type, isOptional, doc, defaultValue);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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","isPropertyDeclaration","initializer","doc","jsDocToDocSchema","defaultValue","VariableLikeSchema","getLocation","exports"],"sources":["property-declaration.ts"],"sourcesContent":["import { Node, PropertyDeclaration, PropertySignature, SyntaxKind, isPropertyDeclaration } 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) || (isPropertyDeclaration(node) && Boolean(node.initializer));\n const doc = await context.jsDocToDocSchema(node);\n const defaultValue = isPropertyDeclaration(node) ? 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,IAAK,IAAAC,mCAAqB,EAACzB,IAAI,CAAC,IAAIuB,OAAO,CAACvB,IAAI,CAAC0B,WAAW,CAAE;IAC5G,MAAMC,GAAG,GAAG,MAAMjB,OAAO,CAACkB,gBAAgB,CAAC5B,IAAI,CAAC;IAChD,MAAM6B,YAAY,GAAG,IAAAJ,mCAAqB,EAACzB,IAAI,CAAC,GAAGA,IAAI,CAAC0B,WAAW,EAAEf,OAAO,CAAC,CAAC,GAAGE,SAAS;IAC1F,OAAO,KAAIiB,uCAAkB,EAACpB,OAAO,CAACqB,WAAW,CAAC/B,IAAI,CAAC,EAAEO,IAAI,EAAEQ,UAAU,EAAEK,IAAI,EAAEE,UAAU,EAAEK,GAAG,EAAEE,YAAY,CAAC;EACjH;AACF;AAACG,OAAA,CAAAlC,8BAAA,GAAAA,8BAAA"}
|
|
@@ -84,7 +84,8 @@ class SourceFileTransformer {
|
|
|
84
84
|
listExports(ast) {
|
|
85
85
|
return ast.statements.filter(statement => {
|
|
86
86
|
if (statement.kind === _typescript().default.SyntaxKind.ExportDeclaration || statement.kind === _typescript().default.SyntaxKind.ExportAssignment) return true;
|
|
87
|
-
const
|
|
87
|
+
const modifiers = _typescript().default.canHaveModifiers(statement) ? _typescript().default.getModifiers(statement) : undefined;
|
|
88
|
+
const isExport = Boolean(modifiers?.find(modifier => {
|
|
88
89
|
return modifier.kind === _typescript().default.SyntaxKind.ExportKeyword;
|
|
89
90
|
}));
|
|
90
91
|
return isExport;
|
|
@@ -92,7 +93,8 @@ class SourceFileTransformer {
|
|
|
92
93
|
}
|
|
93
94
|
listInternalNodes(ast) {
|
|
94
95
|
return ast.statements.filter(statement => {
|
|
95
|
-
|
|
96
|
+
const modifiers = _typescript().default.canHaveModifiers(statement) ? _typescript().default.getModifiers(statement) : undefined;
|
|
97
|
+
if (!(statement.kind === _typescript().default.SyntaxKind.ExportDeclaration || statement.kind === _typescript().default.SyntaxKind.ExportAssignment) && !modifiers?.find(modifier => {
|
|
96
98
|
return modifier.kind === _typescript().default.SyntaxKind.ExportKeyword;
|
|
97
99
|
})) {
|
|
98
100
|
return true;
|
|
@@ -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","ExportDeclaration","ExportAssignment","
|
|
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","modifiers","canHaveModifiers","getModifiers","undefined","isExport","Boolean","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 modifiers = ts.canHaveModifiers(statement) ? ts.getModifiers(statement) : undefined;\n const isExport = Boolean(\n 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 const modifiers = ts.canHaveModifiers(statement) ? ts.getModifiers(statement) : undefined;\n if (\n !(statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment) &&\n !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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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type ts from 'typescript/lib/tsserverlibrary';
|
|
2
2
|
export declare const UNRESOLVED = "<<unresolved>>";
|
|
3
3
|
/**
|
|
4
4
|
* try to parse the type from the quickinfo.
|
|
@@ -32,5 +32,5 @@ export declare const UNRESOLVED = "<<unresolved>>";
|
|
|
32
32
|
* b: number;
|
|
33
33
|
* }
|
|
34
34
|
*/
|
|
35
|
-
export declare function parseTypeFromQuickInfo(quickInfo: protocol.QuickInfoResponse | undefined): string;
|
|
36
|
-
export declare function parseReturnTypeFromQuickInfo(quickInfo: protocol.QuickInfoResponse | undefined): string;
|
|
35
|
+
export declare function parseTypeFromQuickInfo(quickInfo: ts.server.protocol.QuickInfoResponse | undefined): string;
|
|
36
|
+
export declare function parseReturnTypeFromQuickInfo(quickInfo: ts.server.protocol.QuickInfoResponse | undefined): string;
|
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.UNRESOLVED = void 0;
|
|
7
7
|
exports.parseReturnTypeFromQuickInfo = parseReturnTypeFromQuickInfo;
|
|
8
8
|
exports.parseTypeFromQuickInfo = parseTypeFromQuickInfo;
|
|
9
|
-
// eslint-disable-next-line import/no-unresolved
|
|
10
|
-
|
|
11
9
|
const UNRESOLVED = exports.UNRESOLVED = '<<unresolved>>';
|
|
12
10
|
|
|
13
11
|
/**
|
|
@@ -1 +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":["
|
|
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,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,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"}
|
|
@@ -63,7 +63,8 @@ class VariableDeclaration {
|
|
|
63
63
|
const displaySig = info?.body?.displayString || '';
|
|
64
64
|
const location = context.getLocation(varDec);
|
|
65
65
|
const doc = await context.jsDocToDocSchema(varDec);
|
|
66
|
-
const
|
|
66
|
+
const nodeModifiers = _typescript().default.canHaveModifiers(varDec) ? _typescript().default.getModifiers(varDec) : undefined;
|
|
67
|
+
const modifiers = nodeModifiers?.map(modifier => modifier.getText()) || [];
|
|
67
68
|
if (varDec.initializer?.kind === _typescript().default.SyntaxKind.ArrowFunction) {
|
|
68
69
|
const functionLikeInfo = await context.getQuickInfo(varDec.initializer.equalsGreaterThanToken);
|
|
69
70
|
const returnTypeStr = functionLikeInfo ? (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(functionLikeInfo) : 'any';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","_parameter","obj","__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","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","
|
|
1
|
+
{"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","_parameter","obj","__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 {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n ParameterSchema,\n TypeRefSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { 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":"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"}
|
|
@@ -61,8 +61,9 @@ class TypeScriptParser {
|
|
|
61
61
|
// - variable statement
|
|
62
62
|
// - function statement
|
|
63
63
|
// - class statement
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
const statementModifiers = _typescript().default.canHaveModifiers(statement) ? _typescript().default.getModifiers(statement) : undefined;
|
|
65
|
+
if (statementModifiers) {
|
|
66
|
+
statementModifiers.some(modifier => {
|
|
66
67
|
if (modifier.kind === _typescript().default.SyntaxKind.ExportKeyword) {
|
|
67
68
|
if (_typescript().default.isVariableStatement(statement)) {
|
|
68
69
|
const child = statement.declarationList.declarations[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_semanticsEntities","data","require","_fsExtra","_typescript","_interopRequireDefault","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","TypeScriptParser","getExports","sourceFile","staticProperties","parseStaticProperties","exportModels","statements","forEach","statement","ts","isExportAssignment","isExportDeclaration","exportClause","isNamedExports","elements","element","name","escapedText","toString","push","Export","get","isNamespaceExport","modifiers","some","modifier","kind","SyntaxKind","ExportKeyword","isVariableStatement","child","declarationList","declarations","isIdentifier","isFunctionDeclaration","isClassDeclaration","withoutEmpty","filter","exportModel","undefined","parseModule","modulePath","content","ast","createSourceFile","readFileSync","ScriptTarget","Latest","moduleExports","exportStaticProperties","Map","isExpressionStatement","isBinaryExpression","expression","operatorToken","EqualsToken","isPropertyAccessExpression","left","targetName","text","propertyName","has","set","existingProperties","isStringLiteral","right","isNumericLiteral","UndefinedKeyword","NullKeyword","TrueKeyword","FalseKeyword","err","logger","error","constructor","exports"],"sources":["typescript.parser.ts"],"sourcesContent":["import { Parser } from '@teambit/schema';\nimport { Export, StaticProperties } from '@teambit/semantics.entities.semantic-schema';\nimport { Logger } from '@teambit/logger';\nimport { readFileSync } from 'fs-extra';\nimport ts from 'typescript';\n\nexport class TypeScriptParser implements Parser {\n public extension = /^.*\\.(js|jsx|ts|tsx)$/;\n\n getExports(sourceFile: ts.SourceFile): Export[] {\n const staticProperties = this.parseStaticProperties(sourceFile);\n const exportModels: Export[] = [];\n\n sourceFile.statements.forEach((statement) => {\n // export default\n if (ts.isExportAssignment(statement)) {\n // export default\n }\n\n // export declarations or re-exports\n if (ts.isExportDeclaration(statement)) {\n if (statement.exportClause) {\n if (ts.isNamedExports(statement.exportClause)) {\n statement.exportClause.elements.forEach((element) => {\n const name = element.name.escapedText.toString();\n if (name !== 'default') {\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n });\n }\n if (ts.isNamespaceExport(statement.exportClause)) {\n const name = statement.exportClause.name.escapedText.toString();\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n }\n }\n\n // export modifiers\n // - variable statement\n // - function statement\n // - class statement\n if (statement.modifiers) {\n statement.modifiers.some((modifier) => {\n if (modifier.kind === ts.SyntaxKind.ExportKeyword) {\n if (ts.isVariableStatement(statement)) {\n const child = statement.declarationList.declarations[0];\n if (ts.isIdentifier(child.name)) {\n const name = child.name.escapedText.toString();\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n } else if (ts.isFunctionDeclaration(statement)) {\n if (statement.name) {\n const name = statement.name.escapedText.toString();\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n } else if (ts.isClassDeclaration(statement)) {\n if (statement.name) {\n const name = statement.name.escapedText.toString();\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n }\n return true;\n }\n return false;\n });\n }\n });\n\n const withoutEmpty = exportModels.filter((exportModel) => exportModel !== undefined);\n // @ts-ignore\n return withoutEmpty;\n }\n\n parseModule(modulePath: string, content?: string) {\n const ast = ts.createSourceFile(modulePath, content ?? readFileSync(modulePath, 'utf8'), ts.ScriptTarget.Latest);\n\n const moduleExports = this.getExports(ast);\n return moduleExports;\n }\n\n parseStaticProperties(sourceFile: ts.SourceFile) {\n // TODO - should we also parse staticProperties inside classes / objects?\n\n const exportStaticProperties = new Map<string, StaticProperties>();\n\n sourceFile.statements.forEach((statement) => {\n try {\n if (!ts.isExpressionStatement(statement)) return;\n if (!ts.isBinaryExpression(statement.expression)) return;\n if (statement.expression.operatorToken.kind !== ts.SyntaxKind.EqualsToken) return;\n if (!ts.isPropertyAccessExpression(statement.expression.left)) return;\n if (!ts.isIdentifier(statement.expression.left.expression)) return;\n\n const targetName = statement.expression.left.expression.text;\n const propertyName = statement.expression.left.name.text;\n\n if (!exportStaticProperties.has(targetName)) exportStaticProperties.set(targetName, new Map());\n\n const existingProperties = exportStaticProperties.get(targetName);\n\n if (ts.isStringLiteral(statement.expression.right)) {\n existingProperties?.set(propertyName, statement.expression.right.text);\n } else if (ts.isNumericLiteral(statement.expression.right)) {\n existingProperties?.set(propertyName, +statement.expression.right.text);\n } else if (statement.expression.right.kind === ts.SyntaxKind.UndefinedKeyword) {\n existingProperties?.set(propertyName, undefined);\n } else if (statement.expression.right.kind === ts.SyntaxKind.NullKeyword) {\n existingProperties?.set(propertyName, null);\n } else if (statement.expression.right.kind === ts.SyntaxKind.TrueKeyword) {\n existingProperties?.set(propertyName, true);\n } else if (statement.expression.right.kind === ts.SyntaxKind.FalseKeyword) {\n existingProperties?.set(propertyName, false);\n }\n } catch (err) {\n this.logger?.error('failed parsing static properties', err);\n }\n });\n\n return exportStaticProperties;\n }\n\n constructor(private logger?: Logger | undefined) {}\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_semanticsEntities","data","require","_fsExtra","_typescript","_interopRequireDefault","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","TypeScriptParser","getExports","sourceFile","staticProperties","parseStaticProperties","exportModels","statements","forEach","statement","ts","isExportAssignment","isExportDeclaration","exportClause","isNamedExports","elements","element","name","escapedText","toString","push","Export","get","isNamespaceExport","statementModifiers","canHaveModifiers","getModifiers","undefined","some","modifier","kind","SyntaxKind","ExportKeyword","isVariableStatement","child","declarationList","declarations","isIdentifier","isFunctionDeclaration","isClassDeclaration","withoutEmpty","filter","exportModel","parseModule","modulePath","content","ast","createSourceFile","readFileSync","ScriptTarget","Latest","moduleExports","exportStaticProperties","Map","isExpressionStatement","isBinaryExpression","expression","operatorToken","EqualsToken","isPropertyAccessExpression","left","targetName","text","propertyName","has","set","existingProperties","isStringLiteral","right","isNumericLiteral","UndefinedKeyword","NullKeyword","TrueKeyword","FalseKeyword","err","logger","error","constructor","exports"],"sources":["typescript.parser.ts"],"sourcesContent":["import { Parser } from '@teambit/schema';\nimport { Export, StaticProperties } from '@teambit/semantics.entities.semantic-schema';\nimport { Logger } from '@teambit/logger';\nimport { readFileSync } from 'fs-extra';\nimport ts from 'typescript';\n\nexport class TypeScriptParser implements Parser {\n public extension = /^.*\\.(js|jsx|ts|tsx)$/;\n\n getExports(sourceFile: ts.SourceFile): Export[] {\n const staticProperties = this.parseStaticProperties(sourceFile);\n const exportModels: Export[] = [];\n\n sourceFile.statements.forEach((statement) => {\n // export default\n if (ts.isExportAssignment(statement)) {\n // export default\n }\n\n // export declarations or re-exports\n if (ts.isExportDeclaration(statement)) {\n if (statement.exportClause) {\n if (ts.isNamedExports(statement.exportClause)) {\n statement.exportClause.elements.forEach((element) => {\n const name = element.name.escapedText.toString();\n if (name !== 'default') {\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n });\n }\n if (ts.isNamespaceExport(statement.exportClause)) {\n const name = statement.exportClause.name.escapedText.toString();\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n }\n }\n\n // export modifiers\n // - variable statement\n // - function statement\n // - class statement\n const statementModifiers = ts.canHaveModifiers(statement) ? ts.getModifiers(statement) : undefined;\n if (statementModifiers) {\n statementModifiers.some((modifier) => {\n if (modifier.kind === ts.SyntaxKind.ExportKeyword) {\n if (ts.isVariableStatement(statement)) {\n const child = statement.declarationList.declarations[0];\n if (ts.isIdentifier(child.name)) {\n const name = child.name.escapedText.toString();\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n } else if (ts.isFunctionDeclaration(statement)) {\n if (statement.name) {\n const name = statement.name.escapedText.toString();\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n } else if (ts.isClassDeclaration(statement)) {\n if (statement.name) {\n const name = statement.name.escapedText.toString();\n exportModels.push(new Export(name, staticProperties.get(name)));\n }\n }\n return true;\n }\n return false;\n });\n }\n });\n\n const withoutEmpty = exportModels.filter((exportModel) => exportModel !== undefined);\n // @ts-ignore\n return withoutEmpty;\n }\n\n parseModule(modulePath: string, content?: string) {\n const ast = ts.createSourceFile(modulePath, content ?? readFileSync(modulePath, 'utf8'), ts.ScriptTarget.Latest);\n\n const moduleExports = this.getExports(ast);\n return moduleExports;\n }\n\n parseStaticProperties(sourceFile: ts.SourceFile) {\n // TODO - should we also parse staticProperties inside classes / objects?\n\n const exportStaticProperties = new Map<string, StaticProperties>();\n\n sourceFile.statements.forEach((statement) => {\n try {\n if (!ts.isExpressionStatement(statement)) return;\n if (!ts.isBinaryExpression(statement.expression)) return;\n if (statement.expression.operatorToken.kind !== ts.SyntaxKind.EqualsToken) return;\n if (!ts.isPropertyAccessExpression(statement.expression.left)) return;\n if (!ts.isIdentifier(statement.expression.left.expression)) return;\n\n const targetName = statement.expression.left.expression.text;\n const propertyName = statement.expression.left.name.text;\n\n if (!exportStaticProperties.has(targetName)) exportStaticProperties.set(targetName, new Map());\n\n const existingProperties = exportStaticProperties.get(targetName);\n\n if (ts.isStringLiteral(statement.expression.right)) {\n existingProperties?.set(propertyName, statement.expression.right.text);\n } else if (ts.isNumericLiteral(statement.expression.right)) {\n existingProperties?.set(propertyName, +statement.expression.right.text);\n } else if (statement.expression.right.kind === ts.SyntaxKind.UndefinedKeyword) {\n existingProperties?.set(propertyName, undefined);\n } else if (statement.expression.right.kind === ts.SyntaxKind.NullKeyword) {\n existingProperties?.set(propertyName, null);\n } else if (statement.expression.right.kind === ts.SyntaxKind.TrueKeyword) {\n existingProperties?.set(propertyName, true);\n } else if (statement.expression.right.kind === ts.SyntaxKind.FalseKeyword) {\n existingProperties?.set(propertyName, false);\n }\n } catch (err) {\n this.logger?.error('failed parsing static properties', err);\n }\n });\n\n return exportStaticProperties;\n }\n\n constructor(private logger?: Logger | undefined) {}\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/typescript",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.188",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/typescript/typescript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.typescript",
|
|
8
8
|
"name": "typescript",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.188"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"lodash": "4.17.21",
|
|
13
13
|
"p-map-series": "2.1.0",
|
|
14
14
|
"tsutils": "3.21.0",
|
|
15
|
-
"typescript": "
|
|
15
|
+
"typescript": "5.3.3",
|
|
16
16
|
"chalk": "2.4.2",
|
|
17
17
|
"fs-extra": "10.0.0",
|
|
18
18
|
"yesno": "0.4.0",
|
|
19
19
|
"get-tsconfig": "4.2.0",
|
|
20
20
|
"@teambit/typescript.typescript-compiler": "2.0.22",
|
|
21
21
|
"@teambit/harmony": "0.4.6",
|
|
22
|
-
"@teambit/compiler": "1.0.
|
|
23
|
-
"@teambit/typescript.modules.ts-config-mutator": "0.0.
|
|
24
|
-
"@teambit/builder": "1.0.
|
|
25
|
-
"@teambit/isolator": "1.0.
|
|
26
|
-
"@teambit/component": "1.0.
|
|
27
|
-
"@teambit/dependency-resolver": "1.0.
|
|
28
|
-
"@teambit/formatter": "1.0.
|
|
22
|
+
"@teambit/compiler": "1.0.188",
|
|
23
|
+
"@teambit/typescript.modules.ts-config-mutator": "0.0.83",
|
|
24
|
+
"@teambit/builder": "1.0.188",
|
|
25
|
+
"@teambit/isolator": "1.0.188",
|
|
26
|
+
"@teambit/component": "1.0.188",
|
|
27
|
+
"@teambit/dependency-resolver": "1.0.188",
|
|
28
|
+
"@teambit/formatter": "1.0.188",
|
|
29
29
|
"@teambit/semantics.entities.semantic-schema": "0.0.68",
|
|
30
|
-
"@teambit/ts-server": "0.0.
|
|
31
|
-
"@teambit/aspect-loader": "1.0.
|
|
32
|
-
"@teambit/envs": "1.0.
|
|
30
|
+
"@teambit/ts-server": "0.0.56",
|
|
31
|
+
"@teambit/aspect-loader": "1.0.188",
|
|
32
|
+
"@teambit/envs": "1.0.188",
|
|
33
33
|
"@teambit/logger": "0.0.948",
|
|
34
|
-
"@teambit/workspace": "1.0.
|
|
35
|
-
"@teambit/schema": "1.0.
|
|
36
|
-
"@teambit/scope": "1.0.
|
|
34
|
+
"@teambit/workspace": "1.0.188",
|
|
35
|
+
"@teambit/schema": "1.0.188",
|
|
36
|
+
"@teambit/scope": "1.0.188",
|
|
37
37
|
"@teambit/cli": "0.0.855",
|
|
38
|
-
"@teambit/pkg": "1.0.
|
|
39
|
-
"@teambit/watcher": "1.0.
|
|
38
|
+
"@teambit/pkg": "1.0.188",
|
|
39
|
+
"@teambit/watcher": "1.0.188"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/chai": "4.2.15",
|