@teambit/typescript 0.0.1166 → 0.0.1168

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.
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.1166/dist/typescript.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.1166/dist/typescript.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.1168/dist/typescript.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.1168/dist/typescript.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -257,7 +257,7 @@ class SchemaExtractorContext {
257
257
  async getQuickInfoDisplayString(node) {
258
258
  var _quickInfo$body;
259
259
  const quickInfo = await this.getQuickInfo(node);
260
- return (quickInfo === null || quickInfo === void 0 || (_quickInfo$body = quickInfo.body) === null || _quickInfo$body === void 0 ? void 0 : _quickInfo$body.displayString) || '';
260
+ return (quickInfo === null || quickInfo === void 0 ? void 0 : (_quickInfo$body = quickInfo.body) === null || _quickInfo$body === void 0 ? void 0 : _quickInfo$body.displayString) || '';
261
261
  }
262
262
 
263
263
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_tsutils","data","require","_typescript","_interopRequireWildcard","_lodash","_utils","_path","_semanticsEntities","_isRelativeImport","_interopRequireDefault","_pMapSeries","_identifierList","_parseTypeFromQuickInfo","_jsdocToDocSchema","_identifier","_exportIdentifier","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","SchemaExtractorContext","mainFile","pathNormalizeToLinux","getPathRelativeToComponent","component","path","identifiers","_identifiers","internalIdentifiers","_internalIdentifiers","computed","_computed","mainFileIdentifierKey","getIdentifierKey","mainModuleIdentifiers","constructor","tsserver","extractor","componentDeps","componentRootPath","hostRootPath","formatter","Map","getComputedNodeKey","filePath","line","character","getIdentifierKeyForNode","node","getSourceFile","fileName","setComputed","location","setIdentifiers","setInternalIdentifiers","existing","uniqueIdentifiers","uniqBy","concat","k","aliasId","id","IdentifierList","findComputedSchemaByName","name","Array","from","values","filter","schema","computeSchema","getLocation","existingComputedSchema","computedSchema","transformSchemaNode","transformAPI","targetSourceFile","absolutePath","sourceFile","position","getLineAndCharacterOfPosition","getStart","getLocationAsString","basePath","filesystem","files","base","relative","getSignature","getSignatureHelp","getPath","getPosition","offset","getPositionOfLineAndCharacter","startsWith","join","getQuickInfo","err","message","Error","getQuickInfoDisplayString","_quickInfo$body","quickInfo","body","displayString","typeDefinition","getTypeDefinition","visitTypeDefinition","getPathWithoutExtension","knownExtensions","fileExtension","extname","substring","filePathWithoutExtension","includes","replace","RegExp","isAbsolute","isIndexFile","currentFilePath","indexFilePath","findFileInComponent","normalizedFilePath","pathToCompareWithoutExtension","matchingFile","find","file","currentFilePathWithoutExtension","isSameFilePath","matches","parsePackageNameFromPath","parts","split","length","lastPart","sep","pkgParts","pkgName","getSourceFileInsideComponent","parseSourceFile","getSourceFileFromNode","getFilePathByNode","def","getDefinition","firstDef","head","definitionInfo","definition","startPosition","start","pos","nodeAtPos","getTokenAtPosition","visitDefinition","getTypeRefForExternalNode","visit","parent","kind","SyntaxKind","Identifier","SourceFile","references","isExported","isFromComponent","getFileIdentifiers","exportDec","_exportDec$moduleSpec","specifierPathStr","ExportDeclaration","moduleSpecifier","getText","specifierPath","absPath","resolve","getIdentifiers","getFileExports","identifier","ExportIdentifier","isExportIdentifier","getFileInternals","computeIdentifiers","headTypeDefinition","headDefinition","unknownExactType","typeStr","isTypeStrFromQuickInfo","InferenceTypeSchema","info","type","parseTypeFromQuickInfo","isDefInSameLocation","loc","resolveType","internalRef","getTypeRef","ts","isTypeNode","definitionNode","definitionNodeName","definitionInternalRef","transformer","getTransformer","getTypeRefForExternalPath","schemaNode","apiTransformer","getAPITransformer","transform","getCompIdByPkgName","_this$componentDeps$f","dep","packageName","componentId","nodeIdentifierKey","nodeIdentifierList","mainIdentifierList","nodeIdentifier","mainIdentifier","parsedNodeIdentifier","parsedMainIdentifier","isExportedFromMain","resolveTypeRef","_this$identifiers$get","sourceFilePath","TypeRefSchema","isRelativeImport","compIdByPkg","compIdByPath","getComponentIDByPath","relativeDir","lastIndexOf","absFilePath","compFilePath","idKey","exportedIdentifier","i","jsDocToDocSchema","canHaveJsDoc","jsDocs","getJsDoc","jsDoc","comment","getTextOfJSDocComment","tags","pMapSeries","tag","tagParser","DocSchema","exports"],"sources":["schema-extractor-context.ts"],"sourcesContent":["import { TsserverClient } from '@teambit/ts-server';\nimport { getTokenAtPosition, canHaveJsDoc, getJsDoc } from 'tsutils';\nimport ts, { ExportAssignment, getTextOfJSDocComment, ExportDeclaration, Node, SyntaxKind, TypeNode } from 'typescript';\nimport { head, uniqBy } from 'lodash';\n// @ts-ignore david we should figure fix this.\n// eslint-disable-next-line import/no-unresolved\nimport protocol from 'typescript/lib/protocol';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { resolve, sep, relative, join, isAbsolute, extname } from 'path';\nimport { Component, ComponentID } from '@teambit/component';\nimport {\n TypeRefSchema,\n SchemaNode,\n InferenceTypeSchema,\n Location,\n DocSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport isRelativeImport from '@teambit/legacy/dist/utils/is-relative-import';\nimport { ComponentDependency } from '@teambit/dependency-resolver';\nimport { Formatter } from '@teambit/formatter';\nimport pMapSeries from 'p-map-series';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { IdentifierList } from './identifier-list';\nimport { parseTypeFromQuickInfo } from './transformers/utils/parse-type-from-quick-info';\nimport { tagParser } from './transformers/utils/jsdoc-to-doc-schema';\nimport { Identifier } from './identifier';\nimport { ExportIdentifier } from './export-identifier';\n\nexport class SchemaExtractorContext {\n /**\n * list of all declared identifiers (exported and internal) by filename\n */\n private _identifiers = new Map<string, IdentifierList>();\n private _internalIdentifiers = new Map<string, IdentifierList>();\n\n /**\n * computed nodes by filename and (position (line:character))\n */\n private _computed = new Map<string, SchemaNode>();\n\n get mainFile() {\n return pathNormalizeToLinux(this.getPathRelativeToComponent(this.component.mainFile.path));\n }\n\n get identifiers() {\n return this._identifiers;\n }\n\n get internalIdentifiers() {\n return this._internalIdentifiers;\n }\n\n get computed() {\n return this._computed;\n }\n\n get mainFileIdentifierKey() {\n const mainFile = this.component.mainFile;\n return this.getIdentifierKey(mainFile.path);\n }\n\n get mainModuleIdentifiers() {\n return this.identifiers.get(this.mainFileIdentifierKey);\n }\n\n constructor(\n readonly tsserver: TsserverClient,\n readonly component: Component,\n readonly extractor: TypeScriptExtractor,\n readonly componentDeps: ComponentDependency[],\n readonly componentRootPath: string,\n readonly hostRootPath: string,\n readonly formatter?: Formatter\n ) {\n this.componentRootPath = pathNormalizeToLinux(componentRootPath);\n this.hostRootPath = pathNormalizeToLinux(hostRootPath);\n }\n\n getComputedNodeKey({ filePath, line, character }: Location) {\n return `${filePath}:${line}:${character}`;\n }\n\n getIdentifierKeyForNode(node: Node) {\n const filePath = node.getSourceFile().fileName;\n return this.getIdentifierKey(filePath);\n }\n\n getIdentifierKey(filePath: string) {\n return pathNormalizeToLinux(filePath);\n }\n\n setComputed(node: SchemaNode) {\n const { location } = node;\n const key = this.getComputedNodeKey(location);\n this.computed.set(key, node);\n }\n\n setIdentifiers(filePath: string, identifiers: IdentifierList) {\n this._identifiers.set(this.getIdentifierKey(filePath), identifiers);\n }\n\n setInternalIdentifiers(filePath: string, identifiers: IdentifierList) {\n const existing = this._internalIdentifiers.get(filePath);\n if (!existing) {\n this._internalIdentifiers.set(filePath, identifiers);\n } else {\n const uniqueIdentifiers = uniqBy(existing.identifiers.concat(identifiers.identifiers), (k) => k.aliasId || k.id);\n this._internalIdentifiers.set(filePath, new IdentifierList(uniqueIdentifiers));\n }\n }\n\n findComputedSchemaByName(name: string) {\n const computed = Array.from(this.computed.values());\n return computed.filter((schema) => schema.name === name);\n }\n\n async computeSchema(node: Node): Promise<SchemaNode> {\n const location = this.getLocation(node);\n const key = this.getComputedNodeKey(location);\n const existingComputedSchema = this.computed.get(key);\n if (existingComputedSchema) {\n return existingComputedSchema;\n }\n const computedSchema = await this.extractor.computeSchema(node, this);\n this.setComputed(computedSchema);\n return computedSchema;\n }\n\n async transformSchemaNode(schema: SchemaNode) {\n return this.extractor.transformAPI(schema, this);\n }\n\n /**\n * returns the location of a node in a source file.\n */\n getLocation(node: Node, targetSourceFile?: ts.SourceFile, absolutePath = false): Location {\n const sourceFile = targetSourceFile || node.getSourceFile();\n const filePath = absolutePath ? sourceFile.fileName : this.getPathRelativeToComponent(sourceFile.fileName);\n const position = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n const line = position.line + 1;\n const character = position.character + 1;\n\n return {\n filePath: pathNormalizeToLinux(filePath),\n line,\n character,\n };\n }\n\n getLocationAsString(node: Node): string {\n const location = this.getLocation(node);\n return `${node.getSourceFile().fileName}, line: ${location.line}, character: ${location.character}`;\n }\n\n getPathRelativeToComponent(filePath: string): string {\n const basePath = this.component.filesystem.files[0].base;\n return relative(basePath, filePath);\n }\n\n /**\n * returns a signature for a node.\n */\n async getSignature(node: Node) {\n return this.tsserver.getSignatureHelp(this.getPath(node), this.getLocation(node));\n }\n\n /**\n * get the position for the tsserver.\n */\n getPosition(sourceFile: ts.SourceFile, line: number, offset: number): number {\n return sourceFile.getPositionOfLineAndCharacter(line - 1, offset - 1);\n }\n\n /**\n * get the path for a source file.\n */\n getPath(node: Node) {\n const sourceFile = node.getSourceFile();\n\n const fileName = sourceFile.fileName;\n\n if (!fileName.startsWith(this.componentRootPath) && !fileName.startsWith(this.hostRootPath)) {\n return join(this.componentRootPath, fileName);\n }\n\n return sourceFile.fileName;\n }\n\n async getQuickInfo(node: Node) {\n const location = this.getLocation(node);\n try {\n return await this.tsserver.getQuickInfo(this.getPath(node), location);\n } catch (err: any) {\n if (err.message === 'No content available.') {\n throw new Error(\n `unable to get quickinfo data from tsserver at ${this.getPath(node)}, Ln ${location.line}, Col ${\n location.character\n }`\n );\n }\n throw err;\n }\n }\n\n async getQuickInfoDisplayString(node: Node): Promise<string> {\n const quickInfo = await this.getQuickInfo(node);\n return quickInfo?.body?.displayString || '';\n }\n\n /**\n * returns the type definition for a type.\n */\n typeDefinition(node: Node) {\n return this.tsserver.getTypeDefinition(this.getPath(node), this.getLocation(node));\n }\n\n visitTypeDefinition() {}\n\n private getPathWithoutExtension(filePath: string) {\n const knownExtensions = ['ts', 'js', 'jsx', 'tsx'];\n const fileExtension = extname(filePath).substring(1);\n\n const filePathWithoutExtension = () => {\n if (knownExtensions.includes(fileExtension)) {\n return filePath.replace(new RegExp(`\\\\.${fileExtension}$`), '');\n }\n return filePath;\n };\n\n if (!isAbsolute(filePath)) {\n return filePathWithoutExtension();\n }\n\n if (filePath.startsWith(this.componentRootPath)) {\n return relative(this.componentRootPath, filePathWithoutExtension());\n }\n if (filePath.startsWith(this.hostRootPath)) {\n return relative(this.hostRootPath, filePathWithoutExtension());\n }\n return filePathWithoutExtension();\n }\n\n private isIndexFile(filePath: string, currentFilePath: string) {\n const indexFilePath = join(filePath, 'index');\n return pathNormalizeToLinux(indexFilePath) === currentFilePath;\n }\n\n findFileInComponent(filePath: string) {\n const normalizedFilePath = pathNormalizeToLinux(filePath);\n const pathToCompareWithoutExtension = this.getPathWithoutExtension(normalizedFilePath);\n\n const matchingFile = this.component.filesystem.files.find((file) => {\n const currentFilePath = pathNormalizeToLinux(file.path);\n const currentFilePathWithoutExtension = this.getPathWithoutExtension(currentFilePath);\n\n const isSameFilePath = pathToCompareWithoutExtension === currentFilePathWithoutExtension;\n\n const matches =\n isSameFilePath || this.isIndexFile(pathToCompareWithoutExtension, currentFilePathWithoutExtension);\n\n return matches;\n });\n return matchingFile;\n }\n\n private parsePackageNameFromPath(path: string) {\n const parts = path.split('node_modules');\n\n if (parts.length === 1) {\n return path;\n }\n\n const lastPart = parts[parts.length - 1].replace(sep, '');\n const pkgParts = lastPart.split('/');\n if (lastPart.startsWith('@')) {\n // scoped package\n return `${pkgParts[0]}/${pkgParts[1]}`;\n }\n const pkgName = pkgParts[0];\n if (pkgName === 'typescript') {\n // it's a built-in type, such as \"string\".\n return '';\n }\n return pkgName;\n }\n\n /**\n * return the file if part of the component.\n * otherwise, a reference to the target package and the type name.\n */\n getSourceFileInsideComponent(filePath: string) {\n const file = this.findFileInComponent(filePath);\n return file && this.extractor.parseSourceFile(file);\n }\n\n async getSourceFileFromNode(node: Node) {\n const filePath = await this.getFilePathByNode(node);\n if (!filePath) {\n return undefined;\n }\n return this.getSourceFileInsideComponent(filePath);\n }\n\n async getFilePathByNode(node: Node) {\n const def = await this.tsserver.getDefinition(this.getPath(node), this.getLocation(node));\n\n const firstDef = head(def?.body);\n return firstDef?.file;\n }\n\n async definitionInfo(node: Node): Promise<protocol.DefinitionInfo | undefined> {\n const location = this.getLocation(node);\n const filePath = this.getPath(node);\n\n const def = await this.tsserver.getDefinition(filePath, location);\n\n const firstDef = head(def?.body);\n\n return firstDef;\n }\n\n /**\n * get a definition for a given node.\n */\n async definition(definition: protocol.DefinitionInfo): Promise<Node | undefined> {\n const startPosition = definition.start;\n const sourceFile = this.getSourceFileInsideComponent(definition.file);\n if (!sourceFile) {\n // it might be an external reference, cant get the node\n return undefined;\n }\n const pos = this.getPosition(sourceFile, startPosition.line, startPosition.offset);\n const nodeAtPos = getTokenAtPosition(sourceFile, pos);\n return nodeAtPos;\n }\n\n /**\n * visit a definition for node - e.g. return it's schema.\n */\n async visitDefinition(node: Node): Promise<SchemaNode | undefined> {\n const definitionInfo = await this.definitionInfo(node);\n if (!definitionInfo) {\n return undefined;\n }\n\n const definition = await this.definition(definitionInfo);\n if (!definition) {\n return this.getTypeRefForExternalNode(node);\n }\n\n return this.visit(definition.parent);\n }\n\n async visit(node: Node): Promise<SchemaNode> {\n if (node.kind === SyntaxKind.Identifier && node.parent.parent.kind !== SyntaxKind.SourceFile) {\n return this.visit(node.parent);\n }\n return this.extractor.computeSchema(node, this);\n }\n\n references() {}\n\n isExported() {}\n\n isFromComponent() {}\n\n async getFileIdentifiers(exportDec: ExportDeclaration | ExportAssignment) {\n const file = exportDec.getSourceFile().fileName;\n const specifierPathStr =\n (exportDec.kind === SyntaxKind.ExportDeclaration && exportDec.moduleSpecifier?.getText()) || '';\n const specifierPath = specifierPathStr.substring(1, specifierPathStr.length - 1);\n const absPath = resolve(file, '..', specifierPath);\n const sourceFile = this.getSourceFileInsideComponent(absPath);\n if (!sourceFile) return [];\n return this.getIdentifiers(sourceFile);\n }\n\n async getFileExports(exportDec: ExportDeclaration | ExportAssignment) {\n const identifiers = await this.getFileIdentifiers(exportDec);\n return identifiers.filter((identifier) => ExportIdentifier.isExportIdentifier(identifier));\n }\n\n async getFileInternals(exportDec: ExportDeclaration | ExportAssignment) {\n const identifiers = await this.getFileIdentifiers(exportDec);\n return identifiers.filter((identifier) => !ExportIdentifier.isExportIdentifier(identifier));\n }\n\n getIdentifiers(node: Node) {\n return this.extractor.computeIdentifiers(node, this);\n }\n\n /**\n * tsserver has two different calls: \"definition\" and \"typeDefinition\".\n * normally, we need the \"typeDefinition\" to get the type data of a node.\n * sometimes, it has no data, for example when the node is of type TypeReference, and then using \"definition\" is\n * helpful. (couldn't find a rule when to use each one. e.g. \"VariableDeclaration\" sometimes has data only in\n * \"definition\" but it's not clear when/why).\n */\n async getDefinition(node: Node) {\n const typeDefinition = await this.typeDefinition(node);\n const headTypeDefinition = head(typeDefinition?.body);\n if (headTypeDefinition) {\n return headTypeDefinition;\n }\n\n const definition = await this.tsserver.getDefinition(node.getSourceFile().fileName, this.getLocation(node));\n const headDefinition = head(definition?.body);\n\n return headDefinition;\n }\n\n // when we can't figure out the component/package/type of this node, we'll use the typeStr as the type.\n private async unknownExactType(node: Node, location: Location, typeStr = 'any', isTypeStrFromQuickInfo = true) {\n if (isTypeStrFromQuickInfo) {\n return new InferenceTypeSchema(location, typeStr || 'any');\n }\n const info = await this.getQuickInfo(node);\n const type = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(location, type, typeStr);\n }\n\n // the reason for this check is to avoid infinite loop when calling `this.jump` with the same file+location\n private isDefInSameLocation(node: Node, definition: protocol.FileSpanWithContext) {\n if (definition.file !== node.getSourceFile().fileName) {\n return false;\n }\n const loc = this.getLocation(node);\n\n return loc.line === definition.start.line && loc.character === definition.start.offset;\n }\n\n /**\n * resolve a type by a node and its identifier.\n */\n async resolveType(\n node: Node & { type?: TypeNode },\n typeStr: string,\n isTypeStrFromQuickInfo = true\n ): Promise<SchemaNode> {\n const location = this.getLocation(node);\n\n // check if internal ref with typeInfo\n const internalRef = await this.getTypeRef(typeStr, this.getIdentifierKeyForNode(node), location);\n\n if (internalRef) return internalRef;\n\n // if a node has \"type\" prop, it has the type data of the node. this normally happens when the code has the type\n // explicitly, e.g. `const str: string` vs implicitly `const str = 'some-string'`, which the node won't have \"type\"\n if (node.type && ts.isTypeNode(node.type)) {\n return this.computeSchema(node.type);\n }\n\n const definition = await this.getDefinition(node);\n\n if (!definition) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n if (this.isDefInSameLocation(node, definition)) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const definitionNode = await this.definition(definition);\n\n if (!definitionNode) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const definitionNodeName = definitionNode?.getText();\n\n // check if internal ref with definition info\n const definitionInternalRef = await this.getTypeRef(\n definitionNodeName,\n this.getIdentifierKeyForNode(definitionNode),\n location\n );\n\n if (definitionInternalRef) return definitionInternalRef;\n\n const transformer = this.extractor.getTransformer(definitionNode, this);\n\n if (transformer === undefined) {\n const file = this.findFileInComponent(definition.file);\n if (!file) return this.getTypeRefForExternalPath(typeStr, definition.file, location);\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const schemaNode = await this.visit(definitionNode);\n\n if (!schemaNode) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const apiTransformer = this.extractor.getAPITransformer(schemaNode);\n return apiTransformer ? apiTransformer.transform(schemaNode, this) : schemaNode;\n }\n\n private getCompIdByPkgName(pkgName: string): ComponentID | undefined {\n return this.componentDeps.find((dep) => dep.packageName === pkgName)?.componentId;\n }\n\n async getTypeRef(typeStr: string, filePath: string, location: Location): Promise<TypeRefSchema | undefined> {\n const nodeIdentifierKey = this.getIdentifierKey(filePath);\n const mainFileIdentifierKey = this.mainFileIdentifierKey;\n\n const nodeIdentifierList = this.identifiers.get(nodeIdentifierKey);\n const mainIdentifierList = this.identifiers.get(mainFileIdentifierKey);\n\n const nodeIdentifier = new Identifier(typeStr, nodeIdentifierKey);\n const mainIdentifier = new Identifier(typeStr, mainFileIdentifierKey);\n\n const parsedNodeIdentifier = nodeIdentifierList?.find(nodeIdentifier);\n const parsedMainIdentifier = mainIdentifierList?.find(mainIdentifier);\n const isExportedFromMain = parsedMainIdentifier && ExportIdentifier.isExportIdentifier(parsedMainIdentifier);\n\n if (!parsedNodeIdentifier) return undefined;\n\n const internalRef = !isExportedFromMain;\n\n if (internalRef) {\n this.setInternalIdentifiers(filePath, new IdentifierList([parsedNodeIdentifier]));\n }\n\n return this.resolveTypeRef(parsedNodeIdentifier, location, isExportedFromMain);\n }\n\n async resolveTypeRef(\n identifier: Identifier,\n location: Location,\n isExportedFromMain?: boolean\n ): Promise<TypeRefSchema> {\n const sourceFilePath = identifier.sourceFilePath;\n\n if (!sourceFilePath || isExportedFromMain) {\n return new TypeRefSchema(\n location,\n identifier.id,\n undefined,\n undefined,\n !isExportedFromMain ? this.getPathRelativeToComponent(identifier.filePath) : undefined\n );\n }\n\n if (!isRelativeImport(sourceFilePath)) {\n const pkgName = this.parsePackageNameFromPath(sourceFilePath);\n const compIdByPkg = this.getCompIdByPkgName(pkgName);\n\n const compIdByPath = await this.extractor.getComponentIDByPath(sourceFilePath);\n\n if (compIdByPath) {\n return new TypeRefSchema(location, identifier.id, compIdByPath);\n }\n\n if (compIdByPkg) {\n return new TypeRefSchema(location, identifier.id, compIdByPkg);\n }\n\n // package without comp id\n return new TypeRefSchema(location, identifier.id, undefined, pkgName);\n }\n\n const relativeDir = identifier.filePath.substring(0, identifier.filePath.lastIndexOf('/'));\n const absFilePath = resolve(this.componentRootPath, relativeDir, sourceFilePath);\n\n const compFilePath = this.findFileInComponent(absFilePath);\n if (!compFilePath) {\n // @todo handle this better\n throw new Error(\n `cannot find file in component \\n source file path ${sourceFilePath}\\n \n identifier file path ${identifier.filePath}\\nrelative dir ${relativeDir}\\n\n absFilePath ${absFilePath}`\n );\n return new TypeRefSchema(location, identifier.id);\n }\n\n const idKey = this.getIdentifierKey(compFilePath?.path);\n\n // if re exported from a file, recurse until definition\n const exportedIdentifier = (this.identifiers.get(idKey)?.identifiers || []).find((i) => i.id === identifier.id);\n\n if (exportedIdentifier) {\n return this.resolveTypeRef(exportedIdentifier, location, isExportedFromMain);\n }\n\n return new TypeRefSchema(location, identifier.id);\n }\n\n async getTypeRefForExternalNode(node: Node): Promise<TypeRefSchema> {\n const info = await this.getQuickInfo(node);\n const typeStr = parseTypeFromQuickInfo(info);\n const location = this.getLocation(node);\n const filePath = this.getPath(node);\n return this.getTypeRefForExternalPath(typeStr, filePath, location);\n }\n\n async getTypeRefForExternalPath(typeStr: string, filePath: string, location: Location): Promise<TypeRefSchema> {\n const compIdByPath = await this.extractor.getComponentIDByPath(filePath);\n if (compIdByPath) {\n return new TypeRefSchema(location, typeStr, compIdByPath);\n }\n const pkgName = this.parsePackageNameFromPath(filePath);\n const compIdByPkg = this.getCompIdByPkgName(pkgName);\n if (compIdByPkg) {\n return new TypeRefSchema(location, typeStr, compIdByPkg);\n }\n return new TypeRefSchema(location, typeStr, undefined, pkgName);\n }\n\n async jsDocToDocSchema(node: Node): Promise<DocSchema | undefined> {\n if (!canHaveJsDoc(node)) {\n return undefined;\n }\n const jsDocs = getJsDoc(node);\n if (!jsDocs.length) {\n return undefined;\n }\n // not sure how common it is to have multiple JSDocs. never seen it before.\n // regardless, in typescript implementation of methods like `getJSDocDeprecatedTag()`, they use the first one. (`getFirstJSDocTag()`)\n const jsDoc = jsDocs[0];\n const location = this.getLocation(jsDoc);\n const comment = getTextOfJSDocComment(jsDoc.comment);\n const tags = jsDoc.tags ? await pMapSeries(jsDoc.tags, (tag) => tagParser(tag, this, this.formatter)) : undefined;\n return new DocSchema(location, jsDoc.getText(), comment, tags);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_tsutils","data","require","_typescript","_interopRequireWildcard","_lodash","_utils","_path","_semanticsEntities","_isRelativeImport","_interopRequireDefault","_pMapSeries","_identifierList","_parseTypeFromQuickInfo","_jsdocToDocSchema","_identifier","_exportIdentifier","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_defineProperty","value","_toPropertyKey","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","SchemaExtractorContext","mainFile","pathNormalizeToLinux","getPathRelativeToComponent","component","path","identifiers","_identifiers","internalIdentifiers","_internalIdentifiers","computed","_computed","mainFileIdentifierKey","getIdentifierKey","mainModuleIdentifiers","constructor","tsserver","extractor","componentDeps","componentRootPath","hostRootPath","formatter","Map","getComputedNodeKey","filePath","line","character","getIdentifierKeyForNode","node","getSourceFile","fileName","setComputed","location","setIdentifiers","setInternalIdentifiers","existing","uniqueIdentifiers","uniqBy","concat","k","aliasId","id","IdentifierList","findComputedSchemaByName","name","Array","from","values","filter","schema","computeSchema","getLocation","existingComputedSchema","computedSchema","transformSchemaNode","transformAPI","targetSourceFile","absolutePath","sourceFile","position","getLineAndCharacterOfPosition","getStart","getLocationAsString","basePath","filesystem","files","base","relative","getSignature","getSignatureHelp","getPath","getPosition","offset","getPositionOfLineAndCharacter","startsWith","join","getQuickInfo","err","message","Error","getQuickInfoDisplayString","_quickInfo$body","quickInfo","body","displayString","typeDefinition","getTypeDefinition","visitTypeDefinition","getPathWithoutExtension","knownExtensions","fileExtension","extname","substring","filePathWithoutExtension","includes","replace","RegExp","isAbsolute","isIndexFile","currentFilePath","indexFilePath","findFileInComponent","normalizedFilePath","pathToCompareWithoutExtension","matchingFile","find","file","currentFilePathWithoutExtension","isSameFilePath","matches","parsePackageNameFromPath","parts","split","length","lastPart","sep","pkgParts","pkgName","getSourceFileInsideComponent","parseSourceFile","getSourceFileFromNode","getFilePathByNode","def","getDefinition","firstDef","head","definitionInfo","definition","startPosition","start","pos","nodeAtPos","getTokenAtPosition","visitDefinition","getTypeRefForExternalNode","visit","parent","kind","SyntaxKind","Identifier","SourceFile","references","isExported","isFromComponent","getFileIdentifiers","exportDec","_exportDec$moduleSpec","specifierPathStr","ExportDeclaration","moduleSpecifier","getText","specifierPath","absPath","resolve","getIdentifiers","getFileExports","identifier","ExportIdentifier","isExportIdentifier","getFileInternals","computeIdentifiers","headTypeDefinition","headDefinition","unknownExactType","typeStr","isTypeStrFromQuickInfo","InferenceTypeSchema","info","type","parseTypeFromQuickInfo","isDefInSameLocation","loc","resolveType","internalRef","getTypeRef","ts","isTypeNode","definitionNode","definitionNodeName","definitionInternalRef","transformer","getTransformer","getTypeRefForExternalPath","schemaNode","apiTransformer","getAPITransformer","transform","getCompIdByPkgName","_this$componentDeps$f","dep","packageName","componentId","nodeIdentifierKey","nodeIdentifierList","mainIdentifierList","nodeIdentifier","mainIdentifier","parsedNodeIdentifier","parsedMainIdentifier","isExportedFromMain","resolveTypeRef","_this$identifiers$get","sourceFilePath","TypeRefSchema","isRelativeImport","compIdByPkg","compIdByPath","getComponentIDByPath","relativeDir","lastIndexOf","absFilePath","compFilePath","idKey","exportedIdentifier","i","jsDocToDocSchema","canHaveJsDoc","jsDocs","getJsDoc","jsDoc","comment","getTextOfJSDocComment","tags","pMapSeries","tag","tagParser","DocSchema","exports"],"sources":["schema-extractor-context.ts"],"sourcesContent":["import { TsserverClient } from '@teambit/ts-server';\nimport { getTokenAtPosition, canHaveJsDoc, getJsDoc } from 'tsutils';\nimport ts, { ExportAssignment, getTextOfJSDocComment, ExportDeclaration, Node, SyntaxKind, TypeNode } from 'typescript';\nimport { head, uniqBy } from 'lodash';\n// @ts-ignore david we should figure fix this.\n// eslint-disable-next-line import/no-unresolved\nimport protocol from 'typescript/lib/protocol';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { resolve, sep, relative, join, isAbsolute, extname } from 'path';\nimport { Component, ComponentID } from '@teambit/component';\nimport {\n TypeRefSchema,\n SchemaNode,\n InferenceTypeSchema,\n Location,\n DocSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport isRelativeImport from '@teambit/legacy/dist/utils/is-relative-import';\nimport { ComponentDependency } from '@teambit/dependency-resolver';\nimport { Formatter } from '@teambit/formatter';\nimport pMapSeries from 'p-map-series';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { IdentifierList } from './identifier-list';\nimport { parseTypeFromQuickInfo } from './transformers/utils/parse-type-from-quick-info';\nimport { tagParser } from './transformers/utils/jsdoc-to-doc-schema';\nimport { Identifier } from './identifier';\nimport { ExportIdentifier } from './export-identifier';\n\nexport class SchemaExtractorContext {\n /**\n * list of all declared identifiers (exported and internal) by filename\n */\n private _identifiers = new Map<string, IdentifierList>();\n private _internalIdentifiers = new Map<string, IdentifierList>();\n\n /**\n * computed nodes by filename and (position (line:character))\n */\n private _computed = new Map<string, SchemaNode>();\n\n get mainFile() {\n return pathNormalizeToLinux(this.getPathRelativeToComponent(this.component.mainFile.path));\n }\n\n get identifiers() {\n return this._identifiers;\n }\n\n get internalIdentifiers() {\n return this._internalIdentifiers;\n }\n\n get computed() {\n return this._computed;\n }\n\n get mainFileIdentifierKey() {\n const mainFile = this.component.mainFile;\n return this.getIdentifierKey(mainFile.path);\n }\n\n get mainModuleIdentifiers() {\n return this.identifiers.get(this.mainFileIdentifierKey);\n }\n\n constructor(\n readonly tsserver: TsserverClient,\n readonly component: Component,\n readonly extractor: TypeScriptExtractor,\n readonly componentDeps: ComponentDependency[],\n readonly componentRootPath: string,\n readonly hostRootPath: string,\n readonly formatter?: Formatter\n ) {\n this.componentRootPath = pathNormalizeToLinux(componentRootPath);\n this.hostRootPath = pathNormalizeToLinux(hostRootPath);\n }\n\n getComputedNodeKey({ filePath, line, character }: Location) {\n return `${filePath}:${line}:${character}`;\n }\n\n getIdentifierKeyForNode(node: Node) {\n const filePath = node.getSourceFile().fileName;\n return this.getIdentifierKey(filePath);\n }\n\n getIdentifierKey(filePath: string) {\n return pathNormalizeToLinux(filePath);\n }\n\n setComputed(node: SchemaNode) {\n const { location } = node;\n const key = this.getComputedNodeKey(location);\n this.computed.set(key, node);\n }\n\n setIdentifiers(filePath: string, identifiers: IdentifierList) {\n this._identifiers.set(this.getIdentifierKey(filePath), identifiers);\n }\n\n setInternalIdentifiers(filePath: string, identifiers: IdentifierList) {\n const existing = this._internalIdentifiers.get(filePath);\n if (!existing) {\n this._internalIdentifiers.set(filePath, identifiers);\n } else {\n const uniqueIdentifiers = uniqBy(existing.identifiers.concat(identifiers.identifiers), (k) => k.aliasId || k.id);\n this._internalIdentifiers.set(filePath, new IdentifierList(uniqueIdentifiers));\n }\n }\n\n findComputedSchemaByName(name: string) {\n const computed = Array.from(this.computed.values());\n return computed.filter((schema) => schema.name === name);\n }\n\n async computeSchema(node: Node): Promise<SchemaNode> {\n const location = this.getLocation(node);\n const key = this.getComputedNodeKey(location);\n const existingComputedSchema = this.computed.get(key);\n if (existingComputedSchema) {\n return existingComputedSchema;\n }\n const computedSchema = await this.extractor.computeSchema(node, this);\n this.setComputed(computedSchema);\n return computedSchema;\n }\n\n async transformSchemaNode(schema: SchemaNode) {\n return this.extractor.transformAPI(schema, this);\n }\n\n /**\n * returns the location of a node in a source file.\n */\n getLocation(node: Node, targetSourceFile?: ts.SourceFile, absolutePath = false): Location {\n const sourceFile = targetSourceFile || node.getSourceFile();\n const filePath = absolutePath ? sourceFile.fileName : this.getPathRelativeToComponent(sourceFile.fileName);\n const position = sourceFile.getLineAndCharacterOfPosition(node.getStart());\n const line = position.line + 1;\n const character = position.character + 1;\n\n return {\n filePath: pathNormalizeToLinux(filePath),\n line,\n character,\n };\n }\n\n getLocationAsString(node: Node): string {\n const location = this.getLocation(node);\n return `${node.getSourceFile().fileName}, line: ${location.line}, character: ${location.character}`;\n }\n\n getPathRelativeToComponent(filePath: string): string {\n const basePath = this.component.filesystem.files[0].base;\n return relative(basePath, filePath);\n }\n\n /**\n * returns a signature for a node.\n */\n async getSignature(node: Node) {\n return this.tsserver.getSignatureHelp(this.getPath(node), this.getLocation(node));\n }\n\n /**\n * get the position for the tsserver.\n */\n getPosition(sourceFile: ts.SourceFile, line: number, offset: number): number {\n return sourceFile.getPositionOfLineAndCharacter(line - 1, offset - 1);\n }\n\n /**\n * get the path for a source file.\n */\n getPath(node: Node) {\n const sourceFile = node.getSourceFile();\n\n const fileName = sourceFile.fileName;\n\n if (!fileName.startsWith(this.componentRootPath) && !fileName.startsWith(this.hostRootPath)) {\n return join(this.componentRootPath, fileName);\n }\n\n return sourceFile.fileName;\n }\n\n async getQuickInfo(node: Node) {\n const location = this.getLocation(node);\n try {\n return await this.tsserver.getQuickInfo(this.getPath(node), location);\n } catch (err: any) {\n if (err.message === 'No content available.') {\n throw new Error(\n `unable to get quickinfo data from tsserver at ${this.getPath(node)}, Ln ${location.line}, Col ${\n location.character\n }`\n );\n }\n throw err;\n }\n }\n\n async getQuickInfoDisplayString(node: Node): Promise<string> {\n const quickInfo = await this.getQuickInfo(node);\n return quickInfo?.body?.displayString || '';\n }\n\n /**\n * returns the type definition for a type.\n */\n typeDefinition(node: Node) {\n return this.tsserver.getTypeDefinition(this.getPath(node), this.getLocation(node));\n }\n\n visitTypeDefinition() {}\n\n private getPathWithoutExtension(filePath: string) {\n const knownExtensions = ['ts', 'js', 'jsx', 'tsx'];\n const fileExtension = extname(filePath).substring(1);\n\n const filePathWithoutExtension = () => {\n if (knownExtensions.includes(fileExtension)) {\n return filePath.replace(new RegExp(`\\\\.${fileExtension}$`), '');\n }\n return filePath;\n };\n\n if (!isAbsolute(filePath)) {\n return filePathWithoutExtension();\n }\n\n if (filePath.startsWith(this.componentRootPath)) {\n return relative(this.componentRootPath, filePathWithoutExtension());\n }\n if (filePath.startsWith(this.hostRootPath)) {\n return relative(this.hostRootPath, filePathWithoutExtension());\n }\n return filePathWithoutExtension();\n }\n\n private isIndexFile(filePath: string, currentFilePath: string) {\n const indexFilePath = join(filePath, 'index');\n return pathNormalizeToLinux(indexFilePath) === currentFilePath;\n }\n\n findFileInComponent(filePath: string) {\n const normalizedFilePath = pathNormalizeToLinux(filePath);\n const pathToCompareWithoutExtension = this.getPathWithoutExtension(normalizedFilePath);\n\n const matchingFile = this.component.filesystem.files.find((file) => {\n const currentFilePath = pathNormalizeToLinux(file.path);\n const currentFilePathWithoutExtension = this.getPathWithoutExtension(currentFilePath);\n\n const isSameFilePath = pathToCompareWithoutExtension === currentFilePathWithoutExtension;\n\n const matches =\n isSameFilePath || this.isIndexFile(pathToCompareWithoutExtension, currentFilePathWithoutExtension);\n\n return matches;\n });\n return matchingFile;\n }\n\n private parsePackageNameFromPath(path: string) {\n const parts = path.split('node_modules');\n\n if (parts.length === 1) {\n return path;\n }\n\n const lastPart = parts[parts.length - 1].replace(sep, '');\n const pkgParts = lastPart.split('/');\n if (lastPart.startsWith('@')) {\n // scoped package\n return `${pkgParts[0]}/${pkgParts[1]}`;\n }\n const pkgName = pkgParts[0];\n if (pkgName === 'typescript') {\n // it's a built-in type, such as \"string\".\n return '';\n }\n return pkgName;\n }\n\n /**\n * return the file if part of the component.\n * otherwise, a reference to the target package and the type name.\n */\n getSourceFileInsideComponent(filePath: string) {\n const file = this.findFileInComponent(filePath);\n return file && this.extractor.parseSourceFile(file);\n }\n\n async getSourceFileFromNode(node: Node) {\n const filePath = await this.getFilePathByNode(node);\n if (!filePath) {\n return undefined;\n }\n return this.getSourceFileInsideComponent(filePath);\n }\n\n async getFilePathByNode(node: Node) {\n const def = await this.tsserver.getDefinition(this.getPath(node), this.getLocation(node));\n\n const firstDef = head(def?.body);\n return firstDef?.file;\n }\n\n async definitionInfo(node: Node): Promise<protocol.DefinitionInfo | undefined> {\n const location = this.getLocation(node);\n const filePath = this.getPath(node);\n\n const def = await this.tsserver.getDefinition(filePath, location);\n\n const firstDef = head(def?.body);\n\n return firstDef;\n }\n\n /**\n * get a definition for a given node.\n */\n async definition(definition: protocol.DefinitionInfo): Promise<Node | undefined> {\n const startPosition = definition.start;\n const sourceFile = this.getSourceFileInsideComponent(definition.file);\n if (!sourceFile) {\n // it might be an external reference, cant get the node\n return undefined;\n }\n const pos = this.getPosition(sourceFile, startPosition.line, startPosition.offset);\n const nodeAtPos = getTokenAtPosition(sourceFile, pos);\n return nodeAtPos;\n }\n\n /**\n * visit a definition for node - e.g. return it's schema.\n */\n async visitDefinition(node: Node): Promise<SchemaNode | undefined> {\n const definitionInfo = await this.definitionInfo(node);\n if (!definitionInfo) {\n return undefined;\n }\n\n const definition = await this.definition(definitionInfo);\n if (!definition) {\n return this.getTypeRefForExternalNode(node);\n }\n\n return this.visit(definition.parent);\n }\n\n async visit(node: Node): Promise<SchemaNode> {\n if (node.kind === SyntaxKind.Identifier && node.parent.parent.kind !== SyntaxKind.SourceFile) {\n return this.visit(node.parent);\n }\n return this.extractor.computeSchema(node, this);\n }\n\n references() {}\n\n isExported() {}\n\n isFromComponent() {}\n\n async getFileIdentifiers(exportDec: ExportDeclaration | ExportAssignment) {\n const file = exportDec.getSourceFile().fileName;\n const specifierPathStr =\n (exportDec.kind === SyntaxKind.ExportDeclaration && exportDec.moduleSpecifier?.getText()) || '';\n const specifierPath = specifierPathStr.substring(1, specifierPathStr.length - 1);\n const absPath = resolve(file, '..', specifierPath);\n const sourceFile = this.getSourceFileInsideComponent(absPath);\n if (!sourceFile) return [];\n return this.getIdentifiers(sourceFile);\n }\n\n async getFileExports(exportDec: ExportDeclaration | ExportAssignment) {\n const identifiers = await this.getFileIdentifiers(exportDec);\n return identifiers.filter((identifier) => ExportIdentifier.isExportIdentifier(identifier));\n }\n\n async getFileInternals(exportDec: ExportDeclaration | ExportAssignment) {\n const identifiers = await this.getFileIdentifiers(exportDec);\n return identifiers.filter((identifier) => !ExportIdentifier.isExportIdentifier(identifier));\n }\n\n getIdentifiers(node: Node) {\n return this.extractor.computeIdentifiers(node, this);\n }\n\n /**\n * tsserver has two different calls: \"definition\" and \"typeDefinition\".\n * normally, we need the \"typeDefinition\" to get the type data of a node.\n * sometimes, it has no data, for example when the node is of type TypeReference, and then using \"definition\" is\n * helpful. (couldn't find a rule when to use each one. e.g. \"VariableDeclaration\" sometimes has data only in\n * \"definition\" but it's not clear when/why).\n */\n async getDefinition(node: Node) {\n const typeDefinition = await this.typeDefinition(node);\n const headTypeDefinition = head(typeDefinition?.body);\n if (headTypeDefinition) {\n return headTypeDefinition;\n }\n\n const definition = await this.tsserver.getDefinition(node.getSourceFile().fileName, this.getLocation(node));\n const headDefinition = head(definition?.body);\n\n return headDefinition;\n }\n\n // when we can't figure out the component/package/type of this node, we'll use the typeStr as the type.\n private async unknownExactType(node: Node, location: Location, typeStr = 'any', isTypeStrFromQuickInfo = true) {\n if (isTypeStrFromQuickInfo) {\n return new InferenceTypeSchema(location, typeStr || 'any');\n }\n const info = await this.getQuickInfo(node);\n const type = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(location, type, typeStr);\n }\n\n // the reason for this check is to avoid infinite loop when calling `this.jump` with the same file+location\n private isDefInSameLocation(node: Node, definition: protocol.FileSpanWithContext) {\n if (definition.file !== node.getSourceFile().fileName) {\n return false;\n }\n const loc = this.getLocation(node);\n\n return loc.line === definition.start.line && loc.character === definition.start.offset;\n }\n\n /**\n * resolve a type by a node and its identifier.\n */\n async resolveType(\n node: Node & { type?: TypeNode },\n typeStr: string,\n isTypeStrFromQuickInfo = true\n ): Promise<SchemaNode> {\n const location = this.getLocation(node);\n\n // check if internal ref with typeInfo\n const internalRef = await this.getTypeRef(typeStr, this.getIdentifierKeyForNode(node), location);\n\n if (internalRef) return internalRef;\n\n // if a node has \"type\" prop, it has the type data of the node. this normally happens when the code has the type\n // explicitly, e.g. `const str: string` vs implicitly `const str = 'some-string'`, which the node won't have \"type\"\n if (node.type && ts.isTypeNode(node.type)) {\n return this.computeSchema(node.type);\n }\n\n const definition = await this.getDefinition(node);\n\n if (!definition) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n if (this.isDefInSameLocation(node, definition)) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const definitionNode = await this.definition(definition);\n\n if (!definitionNode) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const definitionNodeName = definitionNode?.getText();\n\n // check if internal ref with definition info\n const definitionInternalRef = await this.getTypeRef(\n definitionNodeName,\n this.getIdentifierKeyForNode(definitionNode),\n location\n );\n\n if (definitionInternalRef) return definitionInternalRef;\n\n const transformer = this.extractor.getTransformer(definitionNode, this);\n\n if (transformer === undefined) {\n const file = this.findFileInComponent(definition.file);\n if (!file) return this.getTypeRefForExternalPath(typeStr, definition.file, location);\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const schemaNode = await this.visit(definitionNode);\n\n if (!schemaNode) {\n return this.unknownExactType(node, location, typeStr, isTypeStrFromQuickInfo);\n }\n\n const apiTransformer = this.extractor.getAPITransformer(schemaNode);\n return apiTransformer ? apiTransformer.transform(schemaNode, this) : schemaNode;\n }\n\n private getCompIdByPkgName(pkgName: string): ComponentID | undefined {\n return this.componentDeps.find((dep) => dep.packageName === pkgName)?.componentId;\n }\n\n async getTypeRef(typeStr: string, filePath: string, location: Location): Promise<TypeRefSchema | undefined> {\n const nodeIdentifierKey = this.getIdentifierKey(filePath);\n const mainFileIdentifierKey = this.mainFileIdentifierKey;\n\n const nodeIdentifierList = this.identifiers.get(nodeIdentifierKey);\n const mainIdentifierList = this.identifiers.get(mainFileIdentifierKey);\n\n const nodeIdentifier = new Identifier(typeStr, nodeIdentifierKey);\n const mainIdentifier = new Identifier(typeStr, mainFileIdentifierKey);\n\n const parsedNodeIdentifier = nodeIdentifierList?.find(nodeIdentifier);\n const parsedMainIdentifier = mainIdentifierList?.find(mainIdentifier);\n const isExportedFromMain = parsedMainIdentifier && ExportIdentifier.isExportIdentifier(parsedMainIdentifier);\n\n if (!parsedNodeIdentifier) return undefined;\n\n const internalRef = !isExportedFromMain;\n\n if (internalRef) {\n this.setInternalIdentifiers(filePath, new IdentifierList([parsedNodeIdentifier]));\n }\n\n return this.resolveTypeRef(parsedNodeIdentifier, location, isExportedFromMain);\n }\n\n async resolveTypeRef(\n identifier: Identifier,\n location: Location,\n isExportedFromMain?: boolean\n ): Promise<TypeRefSchema> {\n const sourceFilePath = identifier.sourceFilePath;\n\n if (!sourceFilePath || isExportedFromMain) {\n return new TypeRefSchema(\n location,\n identifier.id,\n undefined,\n undefined,\n !isExportedFromMain ? this.getPathRelativeToComponent(identifier.filePath) : undefined\n );\n }\n\n if (!isRelativeImport(sourceFilePath)) {\n const pkgName = this.parsePackageNameFromPath(sourceFilePath);\n const compIdByPkg = this.getCompIdByPkgName(pkgName);\n\n const compIdByPath = await this.extractor.getComponentIDByPath(sourceFilePath);\n\n if (compIdByPath) {\n return new TypeRefSchema(location, identifier.id, compIdByPath);\n }\n\n if (compIdByPkg) {\n return new TypeRefSchema(location, identifier.id, compIdByPkg);\n }\n\n // package without comp id\n return new TypeRefSchema(location, identifier.id, undefined, pkgName);\n }\n\n const relativeDir = identifier.filePath.substring(0, identifier.filePath.lastIndexOf('/'));\n const absFilePath = resolve(this.componentRootPath, relativeDir, sourceFilePath);\n\n const compFilePath = this.findFileInComponent(absFilePath);\n if (!compFilePath) {\n // @todo handle this better\n throw new Error(\n `cannot find file in component \\n source file path ${sourceFilePath}\\n \n identifier file path ${identifier.filePath}\\nrelative dir ${relativeDir}\\n\n absFilePath ${absFilePath}`\n );\n return new TypeRefSchema(location, identifier.id);\n }\n\n const idKey = this.getIdentifierKey(compFilePath?.path);\n\n // if re exported from a file, recurse until definition\n const exportedIdentifier = (this.identifiers.get(idKey)?.identifiers || []).find((i) => i.id === identifier.id);\n\n if (exportedIdentifier) {\n return this.resolveTypeRef(exportedIdentifier, location, isExportedFromMain);\n }\n\n return new TypeRefSchema(location, identifier.id);\n }\n\n async getTypeRefForExternalNode(node: Node): Promise<TypeRefSchema> {\n const info = await this.getQuickInfo(node);\n const typeStr = parseTypeFromQuickInfo(info);\n const location = this.getLocation(node);\n const filePath = this.getPath(node);\n return this.getTypeRefForExternalPath(typeStr, filePath, location);\n }\n\n async getTypeRefForExternalPath(typeStr: string, filePath: string, location: Location): Promise<TypeRefSchema> {\n const compIdByPath = await this.extractor.getComponentIDByPath(filePath);\n if (compIdByPath) {\n return new TypeRefSchema(location, typeStr, compIdByPath);\n }\n const pkgName = this.parsePackageNameFromPath(filePath);\n const compIdByPkg = this.getCompIdByPkgName(pkgName);\n if (compIdByPkg) {\n return new TypeRefSchema(location, typeStr, compIdByPkg);\n }\n return new TypeRefSchema(location, typeStr, undefined, pkgName);\n }\n\n async jsDocToDocSchema(node: Node): Promise<DocSchema | undefined> {\n if (!canHaveJsDoc(node)) {\n return undefined;\n }\n const jsDocs = getJsDoc(node);\n if (!jsDocs.length) {\n return undefined;\n }\n // not sure how common it is to have multiple JSDocs. never seen it before.\n // regardless, in typescript implementation of methods like `getJSDocDeprecatedTag()`, they use the first one. (`getFirstJSDocTag()`)\n const jsDoc = jsDocs[0];\n const location = this.getLocation(jsDoc);\n const comment = getTextOfJSDocComment(jsDoc.comment);\n const tags = jsDoc.tags ? await pMapSeries(jsDoc.tags, (tag) => tagParser(tag, this, this.formatter)) : undefined;\n return new DocSchema(location, jsDoc.getText(), comment, tags);\n }\n}\n"],"mappings":"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"}
@@ -51,7 +51,7 @@ class BindingElementTransformer {
51
51
  var _info$body;
52
52
  const name = node.name.getText();
53
53
  const info = await context.getQuickInfo(node.name);
54
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
54
+ const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
55
55
  const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
56
56
  const type = await context.resolveType(node, typeStr);
57
57
  const doc = await context.jsDocToDocSchema(node);
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_parseTypeFromQuickInfo","_identifier","obj","__esModule","default","BindingElementTransformer","predicate","node","kind","ts","SyntaxKind","BindingElement","getIdentifiers","Identifier","name","getText","getSourceFile","fileName","transform","context","_info$body","info","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","doc","jsDocToDocSchema","defaultValue","initializer","undefined","VariableLikeSchema","getLocation","exports"],"sources":["binding-element.ts"],"sourcesContent":["import ts, { BindingElement, Node } 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\n/**\n * for example:\n *\n * const objBindingElem = { elem1: 1, elem2: 2 };\n * const { elem1 } = objBindingElem;\n * export { elem1 };\n */\nexport class BindingElementTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.BindingElement;\n }\n\n async getIdentifiers(node: BindingElement) {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(node: BindingElement, context: SchemaExtractorContext) {\n const name = node.name.getText();\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 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, false, doc, defaultValue);\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;AACA,SAAAK,YAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,WAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2C,SAAAC,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,yBAAyB,CAA8B;EAClEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,cAAc;EACnD;EAEA,MAAMC,cAAcA,CAACL,IAAoB,EAAE;IACzC,OAAO,CAAC,KAAIM,wBAAU,EAACN,IAAI,CAACO,IAAI,CAACC,OAAO,CAAC,CAAC,EAAER,IAAI,CAACS,aAAa,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC7E;EAEA,MAAMC,SAASA,CAACX,IAAoB,EAAEY,OAA+B,EAAE;IAAA,IAAAC,UAAA;IACrE,MAAMN,IAAI,GAAGP,IAAI,CAACO,IAAI,CAACC,OAAO,CAAC,CAAC;IAChC,MAAMM,IAAI,GAAG,MAAMF,OAAO,CAACG,YAAY,CAACf,IAAI,CAACO,IAAI,CAAC;IAClD,MAAMS,UAAU,GAAG,CAAAF,IAAI,aAAJA,IAAI,gBAAAD,UAAA,GAAJC,IAAI,CAAEG,IAAI,cAAAJ,UAAA,uBAAVA,UAAA,CAAYK,aAAa,KAAI,EAAE;IAClD,MAAMC,OAAO,GAAG,IAAAC,gDAAsB,EAACN,IAAI,CAAC;IAC5C,MAAMO,IAAI,GAAG,MAAMT,OAAO,CAACU,WAAW,CAACtB,IAAI,EAAEmB,OAAO,CAAC;IACrD,MAAMI,GAAG,GAAG,MAAMX,OAAO,CAACY,gBAAgB,CAACxB,IAAI,CAAC;IAChD,MAAMyB,YAAY,GAAGzB,IAAI,CAAC0B,WAAW,GAAG1B,IAAI,CAAC0B,WAAW,CAAClB,OAAO,CAAC,CAAC,GAAGmB,SAAS;IAC9E,OAAO,KAAIC,uCAAkB,EAAChB,OAAO,CAACiB,WAAW,CAAC7B,IAAI,CAAC,EAAEO,IAAI,EAAES,UAAU,EAAEK,IAAI,EAAE,KAAK,EAAEE,GAAG,EAAEE,YAAY,CAAC;EAC5G;AACF;AAACK,OAAA,CAAAhC,yBAAA,GAAAA,yBAAA"}
1
+ {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_parseTypeFromQuickInfo","_identifier","obj","__esModule","default","BindingElementTransformer","predicate","node","kind","ts","SyntaxKind","BindingElement","getIdentifiers","Identifier","name","getText","getSourceFile","fileName","transform","context","_info$body","info","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","doc","jsDocToDocSchema","defaultValue","initializer","undefined","VariableLikeSchema","getLocation","exports"],"sources":["binding-element.ts"],"sourcesContent":["import ts, { BindingElement, Node } 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\n/**\n * for example:\n *\n * const objBindingElem = { elem1: 1, elem2: 2 };\n * const { elem1 } = objBindingElem;\n * export { elem1 };\n */\nexport class BindingElementTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.BindingElement;\n }\n\n async getIdentifiers(node: BindingElement) {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(node: BindingElement, context: SchemaExtractorContext) {\n const name = node.name.getText();\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 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, false, doc, defaultValue);\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;AACA,SAAAK,YAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,WAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2C,SAAAC,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,yBAAyB,CAA8B;EAClEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,cAAc;EACnD;EAEA,MAAMC,cAAcA,CAACL,IAAoB,EAAE;IACzC,OAAO,CAAC,KAAIM,wBAAU,EAACN,IAAI,CAACO,IAAI,CAACC,OAAO,CAAC,CAAC,EAAER,IAAI,CAACS,aAAa,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC7E;EAEA,MAAMC,SAASA,CAACX,IAAoB,EAAEY,OAA+B,EAAE;IAAA,IAAAC,UAAA;IACrE,MAAMN,IAAI,GAAGP,IAAI,CAACO,IAAI,CAACC,OAAO,CAAC,CAAC;IAChC,MAAMM,IAAI,GAAG,MAAMF,OAAO,CAACG,YAAY,CAACf,IAAI,CAACO,IAAI,CAAC;IAClD,MAAMS,UAAU,GAAG,CAAAF,IAAI,aAAJA,IAAI,wBAAAD,UAAA,GAAJC,IAAI,CAAEG,IAAI,cAAAJ,UAAA,uBAAVA,UAAA,CAAYK,aAAa,KAAI,EAAE;IAClD,MAAMC,OAAO,GAAG,IAAAC,gDAAsB,EAACN,IAAI,CAAC;IAC5C,MAAMO,IAAI,GAAG,MAAMT,OAAO,CAACU,WAAW,CAACtB,IAAI,EAAEmB,OAAO,CAAC;IACrD,MAAMI,GAAG,GAAG,MAAMX,OAAO,CAACY,gBAAgB,CAACxB,IAAI,CAAC;IAChD,MAAMyB,YAAY,GAAGzB,IAAI,CAAC0B,WAAW,GAAG1B,IAAI,CAAC0B,WAAW,CAAClB,OAAO,CAAC,CAAC,GAAGmB,SAAS;IAC9E,OAAO,KAAIC,uCAAkB,EAAChB,OAAO,CAACiB,WAAW,CAAC7B,IAAI,CAAC,EAAEO,IAAI,EAAES,UAAU,EAAEK,IAAI,EAAE,KAAK,EAAEE,GAAG,EAAEE,YAAY,CAAC;EAC5G;AACF;AAACK,OAAA,CAAAhC,yBAAA,GAAAA,yBAAA"}
@@ -37,7 +37,7 @@ class ConstructorTransformer {
37
37
  var _info$body, _node$modifiers;
38
38
  const args = await (0, _pMapSeries().default)(node.parameters, async param => context.computeSchema(param));
39
39
  const info = await context.getQuickInfo(node);
40
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
40
+ const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
41
41
  const returns = new (_semanticsEntities().ThisTypeSchema)(context.getLocation(node.parent));
42
42
  const modifiers = ((_node$modifiers = node.modifiers) === null || _node$modifiers === void 0 ? void 0 : _node$modifiers.map(modifier => modifier.getText())) || [];
43
43
  const doc = await context.jsDocToDocSchema(node);
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_pMapSeries","obj","__esModule","default","ConstructorTransformer","predicate","node","kind","ts","SyntaxKind","Constructor","getIdentifiers","transform","context","_info$body","_node$modifiers","args","pMapSeries","parameters","param","computeSchema","info","getQuickInfo","displaySig","body","displayString","returns","ThisTypeSchema","getLocation","parent","modifiers","map","modifier","getText","doc","jsDocToDocSchema","ConstructorSchema","exports"],"sources":["constructor.ts"],"sourcesContent":["import ts, { Node, ConstructorDeclaration } from 'typescript';\nimport {\n ConstructorSchema,\n ParameterSchema,\n ThisTypeSchema,\n Modifier,\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 { Identifier } from '../identifier';\n\nexport class ConstructorTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.Constructor;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: ConstructorDeclaration, context: SchemaExtractorContext) {\n const args = await pMapSeries(node.parameters, async (param) => context.computeSchema(param));\n const info = await context.getQuickInfo(node);\n const displaySig = info?.body?.displayString || '';\n\n const returns = new ThisTypeSchema(context.getLocation(node.parent));\n const modifiers = node.modifiers?.map((modifier) => modifier.getText()) || [];\n const doc = await context.jsDocToDocSchema(node);\n\n return new ConstructorSchema(\n context.getLocation(node),\n args as ParameterSchema[],\n returns,\n displaySig,\n modifiers as Modifier[],\n doc\n );\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;AAMA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAK/B,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;IAAA,IAAAC,UAAA,EAAAC,eAAA;IAC7E,MAAMC,IAAI,GAAG,MAAM,IAAAC,qBAAU,EAACX,IAAI,CAACY,UAAU,EAAE,MAAOC,KAAK,IAAKN,OAAO,CAACO,aAAa,CAACD,KAAK,CAAC,CAAC;IAC7F,MAAME,IAAI,GAAG,MAAMR,OAAO,CAACS,YAAY,CAAChB,IAAI,CAAC;IAC7C,MAAMiB,UAAU,GAAG,CAAAF,IAAI,aAAJA,IAAI,gBAAAP,UAAA,GAAJO,IAAI,CAAEG,IAAI,cAAAV,UAAA,uBAAVA,UAAA,CAAYW,aAAa,KAAI,EAAE;IAElD,MAAMC,OAAO,GAAG,KAAIC,mCAAc,EAACd,OAAO,CAACe,WAAW,CAACtB,IAAI,CAACuB,MAAM,CAAC,CAAC;IACpE,MAAMC,SAAS,GAAG,EAAAf,eAAA,GAAAT,IAAI,CAACwB,SAAS,cAAAf,eAAA,uBAAdA,eAAA,CAAgBgB,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACC,OAAO,CAAC,CAAC,CAAC,KAAI,EAAE;IAC7E,MAAMC,GAAG,GAAG,MAAMrB,OAAO,CAACsB,gBAAgB,CAAC7B,IAAI,CAAC;IAEhD,OAAO,KAAI8B,sCAAiB,EAC1BvB,OAAO,CAACe,WAAW,CAACtB,IAAI,CAAC,EACzBU,IAAI,EACJU,OAAO,EACPH,UAAU,EACVO,SAAS,EACTI,GACF,CAAC;EACH;AACF;AAACG,OAAA,CAAAjC,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_pMapSeries","obj","__esModule","default","ConstructorTransformer","predicate","node","kind","ts","SyntaxKind","Constructor","getIdentifiers","transform","context","_info$body","_node$modifiers","args","pMapSeries","parameters","param","computeSchema","info","getQuickInfo","displaySig","body","displayString","returns","ThisTypeSchema","getLocation","parent","modifiers","map","modifier","getText","doc","jsDocToDocSchema","ConstructorSchema","exports"],"sources":["constructor.ts"],"sourcesContent":["import ts, { Node, ConstructorDeclaration } from 'typescript';\nimport {\n ConstructorSchema,\n ParameterSchema,\n ThisTypeSchema,\n Modifier,\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 { Identifier } from '../identifier';\n\nexport class ConstructorTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.Constructor;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: ConstructorDeclaration, context: SchemaExtractorContext) {\n const args = await pMapSeries(node.parameters, async (param) => context.computeSchema(param));\n const info = await context.getQuickInfo(node);\n const displaySig = info?.body?.displayString || '';\n\n const returns = new ThisTypeSchema(context.getLocation(node.parent));\n const modifiers = node.modifiers?.map((modifier) => modifier.getText()) || [];\n const doc = await context.jsDocToDocSchema(node);\n\n return new ConstructorSchema(\n context.getLocation(node),\n args as ParameterSchema[],\n returns,\n displaySig,\n modifiers as Modifier[],\n doc\n );\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;AAMA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAK/B,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;IAAA,IAAAC,UAAA,EAAAC,eAAA;IAC7E,MAAMC,IAAI,GAAG,MAAM,IAAAC,qBAAU,EAACX,IAAI,CAACY,UAAU,EAAE,MAAOC,KAAK,IAAKN,OAAO,CAACO,aAAa,CAACD,KAAK,CAAC,CAAC;IAC7F,MAAME,IAAI,GAAG,MAAMR,OAAO,CAACS,YAAY,CAAChB,IAAI,CAAC;IAC7C,MAAMiB,UAAU,GAAG,CAAAF,IAAI,aAAJA,IAAI,wBAAAP,UAAA,GAAJO,IAAI,CAAEG,IAAI,cAAAV,UAAA,uBAAVA,UAAA,CAAYW,aAAa,KAAI,EAAE;IAElD,MAAMC,OAAO,GAAG,KAAIC,mCAAc,EAACd,OAAO,CAACe,WAAW,CAACtB,IAAI,CAACuB,MAAM,CAAC,CAAC;IACpE,MAAMC,SAAS,GAAG,EAAAf,eAAA,GAAAT,IAAI,CAACwB,SAAS,cAAAf,eAAA,uBAAdA,eAAA,CAAgBgB,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACC,OAAO,CAAC,CAAC,CAAC,KAAI,EAAE;IAC7E,MAAMC,GAAG,GAAG,MAAMrB,OAAO,CAACsB,gBAAgB,CAAC7B,IAAI,CAAC;IAEhD,OAAO,KAAI8B,sCAAiB,EAC1BvB,OAAO,CAACe,WAAW,CAACtB,IAAI,CAAC,EACzBU,IAAI,EACJU,OAAO,EACPH,UAAU,EACVO,SAAS,EACTI,GACF,CAAC;EACH;AACF;AAACG,OAAA,CAAAjC,sBAAA,GAAAA,sBAAA"}
@@ -66,7 +66,7 @@ class FunctionLikeTransformer {
66
66
  };
67
67
  const info = node.name ? await context.getQuickInfo(node.name) : await getQuickInfoFromDefaultModifier();
68
68
  const returnTypeStr = info ? (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info) : 'any';
69
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
69
+ const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
70
70
  const args = await (0, _pMapSeries().default)(node.parameters, async param => context.computeSchema(param));
71
71
  const returnType = await context.resolveType(node, returnTypeStr, Boolean(info));
72
72
  const modifiers = ((_node$modifiers2 = node.modifiers) === null || _node$modifiers2 === void 0 ? void 0 : _node$modifiers2.map(modifier => modifier.getText())) || [];
@@ -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","_funcDec$name","name","getText","transform","context","_info$body","_node$modifiers2","_node$typeParameters","getQuickInfoFromDefaultModifier","_node$modifiers","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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"}
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","_funcDec$name","name","getText","transform","context","_info$body","_node$modifiers2","_node$typeParameters","getQuickInfoFromDefaultModifier","_node$modifiers","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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"}
@@ -36,7 +36,7 @@ class GetAccessorTransformer {
36
36
  async transform(node, context) {
37
37
  var _info$body;
38
38
  const info = await context.getQuickInfo(node.name);
39
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
39
+ const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
40
40
  const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
41
41
  const type = await context.resolveType(node, typeStr);
42
42
  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","_info$body","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;IAAA,IAAAC,UAAA;IAC7E,MAAMC,IAAI,GAAG,MAAMF,OAAO,CAACG,YAAY,CAACV,IAAI,CAACW,IAAI,CAAC;IAClD,MAAMC,UAAU,GAAG,CAAAH,IAAI,aAAJA,IAAI,gBAAAD,UAAA,GAAJC,IAAI,CAAEI,IAAI,cAAAL,UAAA,uBAAVA,UAAA,CAAYM,aAAa,KAAI,EAAE;IAClD,MAAMC,OAAO,GAAG,IAAAC,gDAAsB,EAACP,IAAI,CAAC;IAC5C,MAAMQ,IAAI,GAAG,MAAMV,OAAO,CAACW,WAAW,CAAClB,IAAI,EAAEe,OAAO,CAAC;IACrD,OAAO,KAAII,sCAAiB,EAACZ,OAAO,CAACa,WAAW,CAACpB,IAAI,CAAC,EAAEA,IAAI,CAACW,IAAI,CAACU,OAAO,CAAC,CAAC,EAAEJ,IAAI,EAAEL,UAAU,CAAC;EAChG;AACF;AAACU,OAAA,CAAAxB,sBAAA,GAAAA,sBAAA"}
1
+ {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_parseTypeFromQuickInfo","obj","__esModule","default","GetAccessorTransformer","predicate","node","kind","ts","SyntaxKind","GetAccessor","getIdentifiers","transform","context","_info$body","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;IAAA,IAAAC,UAAA;IAC7E,MAAMC,IAAI,GAAG,MAAMF,OAAO,CAACG,YAAY,CAACV,IAAI,CAACW,IAAI,CAAC;IAClD,MAAMC,UAAU,GAAG,CAAAH,IAAI,aAAJA,IAAI,wBAAAD,UAAA,GAAJC,IAAI,CAAEI,IAAI,cAAAL,UAAA,uBAAVA,UAAA,CAAYM,aAAa,KAAI,EAAE;IAClD,MAAMC,OAAO,GAAG,IAAAC,gDAAsB,EAACP,IAAI,CAAC;IAC5C,MAAMQ,IAAI,GAAG,MAAMV,OAAO,CAACW,WAAW,CAAClB,IAAI,EAAEe,OAAO,CAAC;IACrD,OAAO,KAAII,sCAAiB,EAACZ,OAAO,CAACa,WAAW,CAACpB,IAAI,CAAC,EAAEA,IAAI,CAACW,IAAI,CAACU,OAAO,CAAC,CAAC,EAAEJ,IAAI,EAAEL,UAAU,CAAC;EAChG;AACF;AAACU,OAAA,CAAAxB,sBAAA,GAAAA,sBAAA"}
@@ -43,7 +43,7 @@ class PropertyDeclarationTransformer {
43
43
  var _info$body;
44
44
  const name = node.name.getText();
45
45
  const info = this.isComputedProperty(node) ? undefined : await context.getQuickInfo(node.name);
46
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || node.getText();
46
+ const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || node.getText();
47
47
  const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
48
48
  const type = await context.resolveType(node, typeStr);
49
49
  const isOptional = Boolean(node.questionToken);
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","require","_semanticsEntities","_parseTypeFromQuickInfo","PropertyDeclarationTransformer","predicate","node","kind","SyntaxKind","PropertyDeclaration","PropertySignature","getIdentifiers","isComputedProperty","name","ComputedPropertyName","transform","context","_info$body","getText","info","undefined","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","isOptional","Boolean","questionToken","doc","jsDocToDocSchema","defaultValue","initializer","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);\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;IAAA,IAAAC,UAAA;IAC9F,MAAMJ,IAAI,GAAGP,IAAI,CAACO,IAAI,CAACK,OAAO,CAAC,CAAC;IAChC,MAAMC,IAAI,GAAG,IAAI,CAACP,kBAAkB,CAACN,IAAI,CAAC,GAAGc,SAAS,GAAG,MAAMJ,OAAO,CAACK,YAAY,CAACf,IAAI,CAACO,IAAI,CAAC;IAC9F,MAAMS,UAAU,GAAG,CAAAH,IAAI,aAAJA,IAAI,gBAAAF,UAAA,GAAJE,IAAI,CAAEI,IAAI,cAAAN,UAAA,uBAAVA,UAAA,CAAYO,aAAa,KAAIlB,IAAI,CAACY,OAAO,CAAC,CAAC;IAC9D,MAAMO,OAAO,GAAG,IAAAC,gDAAsB,EAACP,IAAI,CAAC;IAC5C,MAAMQ,IAAI,GAAG,MAAMX,OAAO,CAACY,WAAW,CAACtB,IAAI,EAAEmB,OAAO,CAAC;IACrD,MAAMI,UAAU,GAAGC,OAAO,CAACxB,IAAI,CAACyB,aAAa,CAAC;IAC9C,MAAMC,GAAG,GAAG,MAAMhB,OAAO,CAACiB,gBAAgB,CAAC3B,IAAI,CAAC;IAChD,MAAM4B,YAAY,GAAG5B,IAAI,CAAC6B,WAAW,GAAG7B,IAAI,CAAC6B,WAAW,CAACjB,OAAO,CAAC,CAAC,GAAGE,SAAS;IAC9E,OAAO,KAAIgB,uCAAkB,EAACpB,OAAO,CAACqB,WAAW,CAAC/B,IAAI,CAAC,EAAEO,IAAI,EAAES,UAAU,EAAEK,IAAI,EAAEE,UAAU,EAAEG,GAAG,EAAEE,YAAY,CAAC;EACjH;AACF;AAACI,OAAA,CAAAlC,8BAAA,GAAAA,8BAAA"}
1
+ {"version":3,"names":["_typescript","data","require","_semanticsEntities","_parseTypeFromQuickInfo","PropertyDeclarationTransformer","predicate","node","kind","SyntaxKind","PropertyDeclaration","PropertySignature","getIdentifiers","isComputedProperty","name","ComputedPropertyName","transform","context","_info$body","getText","info","undefined","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","isOptional","Boolean","questionToken","doc","jsDocToDocSchema","defaultValue","initializer","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);\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;IAAA,IAAAC,UAAA;IAC9F,MAAMJ,IAAI,GAAGP,IAAI,CAACO,IAAI,CAACK,OAAO,CAAC,CAAC;IAChC,MAAMC,IAAI,GAAG,IAAI,CAACP,kBAAkB,CAACN,IAAI,CAAC,GAAGc,SAAS,GAAG,MAAMJ,OAAO,CAACK,YAAY,CAACf,IAAI,CAACO,IAAI,CAAC;IAC9F,MAAMS,UAAU,GAAG,CAAAH,IAAI,aAAJA,IAAI,wBAAAF,UAAA,GAAJE,IAAI,CAAEI,IAAI,cAAAN,UAAA,uBAAVA,UAAA,CAAYO,aAAa,KAAIlB,IAAI,CAACY,OAAO,CAAC,CAAC;IAC9D,MAAMO,OAAO,GAAG,IAAAC,gDAAsB,EAACP,IAAI,CAAC;IAC5C,MAAMQ,IAAI,GAAG,MAAMX,OAAO,CAACY,WAAW,CAACtB,IAAI,EAAEmB,OAAO,CAAC;IACrD,MAAMI,UAAU,GAAGC,OAAO,CAACxB,IAAI,CAACyB,aAAa,CAAC;IAC9C,MAAMC,GAAG,GAAG,MAAMhB,OAAO,CAACiB,gBAAgB,CAAC3B,IAAI,CAAC;IAChD,MAAM4B,YAAY,GAAG5B,IAAI,CAAC6B,WAAW,GAAG7B,IAAI,CAAC6B,WAAW,CAACjB,OAAO,CAAC,CAAC,GAAGE,SAAS;IAC9E,OAAO,KAAIgB,uCAAkB,EAACpB,OAAO,CAACqB,WAAW,CAAC/B,IAAI,CAAC,EAAEO,IAAI,EAAES,UAAU,EAAEK,IAAI,EAAEE,UAAU,EAAEG,GAAG,EAAEE,YAAY,CAAC;EACjH;AACF;AAACI,OAAA,CAAAlC,8BAAA,GAAAA,8BAAA"}
@@ -54,7 +54,7 @@ class VariableDeclaration {
54
54
  var _info$body, _varDec$modifiers, _varDec$initializer;
55
55
  const name = this.getName(varDec);
56
56
  const info = await context.getQuickInfo(varDec.name);
57
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
57
+ const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
58
58
  const location = context.getLocation(varDec);
59
59
  const doc = await context.jsDocToDocSchema(varDec);
60
60
  const modifiers = ((_varDec$modifiers = varDec.modifiers) === null || _varDec$modifiers === void 0 ? void 0 : _varDec$modifiers.map(modifier => modifier.getText())) || [];
@@ -1 +1 @@
1
- {"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","obj","__esModule","default","VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","Identifier","getSourceFile","fileName","transform","varDec","context","_info$body","_varDec$modifiers","_varDec$initializer","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","modifiers","map","modifier","initializer","ArrowFunction","args","pMapSeries","parameters","param","computeSchema","type","funcType","resolveType","isFunctionLike","FunctionLikeSchema","params","returnType","typeStr","parseReturnTypeFromQuickInfo","parseTypeFromQuickInfo","defaultValue","undefined","VariableLikeSchema","exports"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n ParameterSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseReturnTypeFromQuickInfo, parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await context.jsDocToDocSchema(varDec);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const args = (await pMapSeries((varDec.initializer as ArrowFunction).parameters, async (param) =>\n context.computeSchema(param)\n )) as ParameterSchema[];\n // example => export const useLanesContext: () => LanesContextModel | undefined = () => {\n if (varDec.type) {\n const funcType = await context.resolveType(varDec, '');\n if (isFunctionLike(funcType)) {\n return new FunctionLikeSchema(\n location,\n name,\n funcType.params,\n funcType.returnType,\n displaySig,\n modifiers as Modifier[],\n doc\n );\n }\n }\n const typeStr = parseReturnTypeFromQuickInfo(info);\n const returnType = await context.resolveType(varDec, typeStr);\n return new FunctionLikeSchema(location, name, args, returnType, displaySig, modifiers as Modifier[], doc);\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n 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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"}
1
+ {"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","obj","__esModule","default","VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","Identifier","getSourceFile","fileName","transform","varDec","context","_info$body","_varDec$modifiers","_varDec$initializer","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","modifiers","map","modifier","initializer","ArrowFunction","args","pMapSeries","parameters","param","computeSchema","type","funcType","resolveType","isFunctionLike","FunctionLikeSchema","params","returnType","typeStr","parseReturnTypeFromQuickInfo","parseTypeFromQuickInfo","defaultValue","undefined","VariableLikeSchema","exports"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n ParameterSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseReturnTypeFromQuickInfo, parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await context.jsDocToDocSchema(varDec);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const args = (await pMapSeries((varDec.initializer as ArrowFunction).parameters, async (param) =>\n context.computeSchema(param)\n )) as ParameterSchema[];\n // example => export const useLanesContext: () => LanesContextModel | undefined = () => {\n if (varDec.type) {\n const funcType = await context.resolveType(varDec, '');\n if (isFunctionLike(funcType)) {\n return new FunctionLikeSchema(\n location,\n name,\n funcType.params,\n funcType.returnType,\n displaySig,\n modifiers as Modifier[],\n doc\n );\n }\n }\n const typeStr = parseReturnTypeFromQuickInfo(info);\n const returnType = await context.resolveType(varDec, typeStr);\n return new FunctionLikeSchema(location, name, args, returnType, displaySig, modifiers as Modifier[], doc);\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n 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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"}
@@ -112,21 +112,21 @@ class TypeScriptParser {
112
112
  if (!exportStaticProperties.has(targetName)) exportStaticProperties.set(targetName, new Map());
113
113
  const existingProperties = exportStaticProperties.get(targetName);
114
114
  if (_typescript().default.isStringLiteral(statement.expression.right)) {
115
- existingProperties === null || existingProperties === void 0 || existingProperties.set(propertyName, statement.expression.right.text);
115
+ existingProperties === null || existingProperties === void 0 ? void 0 : existingProperties.set(propertyName, statement.expression.right.text);
116
116
  } else if (_typescript().default.isNumericLiteral(statement.expression.right)) {
117
- existingProperties === null || existingProperties === void 0 || existingProperties.set(propertyName, +statement.expression.right.text);
117
+ existingProperties === null || existingProperties === void 0 ? void 0 : existingProperties.set(propertyName, +statement.expression.right.text);
118
118
  } else if (statement.expression.right.kind === _typescript().default.SyntaxKind.UndefinedKeyword) {
119
- existingProperties === null || existingProperties === void 0 || existingProperties.set(propertyName, undefined);
119
+ existingProperties === null || existingProperties === void 0 ? void 0 : existingProperties.set(propertyName, undefined);
120
120
  } else if (statement.expression.right.kind === _typescript().default.SyntaxKind.NullKeyword) {
121
- existingProperties === null || existingProperties === void 0 || existingProperties.set(propertyName, null);
121
+ existingProperties === null || existingProperties === void 0 ? void 0 : existingProperties.set(propertyName, null);
122
122
  } else if (statement.expression.right.kind === _typescript().default.SyntaxKind.TrueKeyword) {
123
- existingProperties === null || existingProperties === void 0 || existingProperties.set(propertyName, true);
123
+ existingProperties === null || existingProperties === void 0 ? void 0 : existingProperties.set(propertyName, true);
124
124
  } else if (statement.expression.right.kind === _typescript().default.SyntaxKind.FalseKeyword) {
125
- existingProperties === null || existingProperties === void 0 || existingProperties.set(propertyName, false);
125
+ existingProperties === null || existingProperties === void 0 ? void 0 : existingProperties.set(propertyName, false);
126
126
  }
127
127
  } catch (err) {
128
128
  var _this$logger;
129
- (_this$logger = this.logger) === null || _this$logger === void 0 || _this$logger.error('failed parsing static properties', err);
129
+ (_this$logger = this.logger) === null || _this$logger === void 0 ? void 0 : _this$logger.error('failed parsing static properties', err);
130
130
  }
131
131
  });
132
132
  return exportStaticProperties;
@@ -1 +1 @@
1
- {"version":3,"names":["_semanticsEntities","data","require","_fsExtra","_typescript","_interopRequireDefault","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","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","parseModule","modulePath","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","_this$logger","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) {\n const ast = ts.createSourceFile(modulePath, 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","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","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","parseModule","modulePath","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","_this$logger","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) {\n const ast = ts.createSourceFile(modulePath, 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":";;;;;;AACA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4B,SAAAI,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAErB,MAAMU,gBAAgB,CAAmB;EAG9CC,UAAUA,CAACC,UAAyB,EAAY;IAC9C,MAAMC,gBAAgB,GAAG,IAAI,CAACC,qBAAqB,CAACF,UAAU,CAAC;IAC/D,MAAMG,YAAsB,GAAG,EAAE;IAEjCH,UAAU,CAACI,UAAU,CAACC,OAAO,CAAEC,SAAS,IAAK;MAC3C;MACA,IAAIC,qBAAE,CAACC,kBAAkB,CAACF,SAAS,CAAC,EAAE;QACpC;MAAA;;MAGF;MACA,IAAIC,qBAAE,CAACE,mBAAmB,CAACH,SAAS,CAAC,EAAE;QACrC,IAAIA,SAAS,CAACI,YAAY,EAAE;UAC1B,IAAIH,qBAAE,CAACI,cAAc,CAACL,SAAS,CAACI,YAAY,CAAC,EAAE;YAC7CJ,SAAS,CAACI,YAAY,CAACE,QAAQ,CAACP,OAAO,CAAEQ,OAAO,IAAK;cACnD,MAAMC,IAAI,GAAGD,OAAO,CAACC,IAAI,CAACC,WAAW,CAACC,QAAQ,CAAC,CAAC;cAChD,IAAIF,IAAI,KAAK,SAAS,EAAE;gBACtBX,YAAY,CAACc,IAAI,CAAC,KAAIC,2BAAM,EAACJ,IAAI,EAAEb,gBAAgB,CAACkB,GAAG,CAACL,IAAI,CAAC,CAAC,CAAC;cACjE;YACF,CAAC,CAAC;UACJ;UACA,IAAIP,qBAAE,CAACa,iBAAiB,CAACd,SAAS,CAACI,YAAY,CAAC,EAAE;YAChD,MAAMI,IAAI,GAAGR,SAAS,CAACI,YAAY,CAACI,IAAI,CAACC,WAAW,CAACC,QAAQ,CAAC,CAAC;YAC/Db,YAAY,CAACc,IAAI,CAAC,KAAIC,2BAAM,EAACJ,IAAI,EAAEb,gBAAgB,CAACkB,GAAG,CAACL,IAAI,CAAC,CAAC,CAAC;UACjE;QACF;MACF;;MAEA;MACA;MACA;MACA;MACA,IAAIR,SAAS,CAACe,SAAS,EAAE;QACvBf,SAAS,CAACe,SAAS,CAACC,IAAI,CAAEC,QAAQ,IAAK;UACrC,IAAIA,QAAQ,CAACC,IAAI,KAAKjB,qBAAE,CAACkB,UAAU,CAACC,aAAa,EAAE;YACjD,IAAInB,qBAAE,CAACoB,mBAAmB,CAACrB,SAAS,CAAC,EAAE;cACrC,MAAMsB,KAAK,GAAGtB,SAAS,CAACuB,eAAe,CAACC,YAAY,CAAC,CAAC,CAAC;cACvD,IAAIvB,qBAAE,CAACwB,YAAY,CAACH,KAAK,CAACd,IAAI,CAAC,EAAE;gBAC/B,MAAMA,IAAI,GAAGc,KAAK,CAACd,IAAI,CAACC,WAAW,CAACC,QAAQ,CAAC,CAAC;gBAC9Cb,YAAY,CAACc,IAAI,CAAC,KAAIC,2BAAM,EAACJ,IAAI,EAAEb,gBAAgB,CAACkB,GAAG,CAACL,IAAI,CAAC,CAAC,CAAC;cACjE;YACF,CAAC,MAAM,IAAIP,qBAAE,CAACyB,qBAAqB,CAAC1B,SAAS,CAAC,EAAE;cAC9C,IAAIA,SAAS,CAACQ,IAAI,EAAE;gBAClB,MAAMA,IAAI,GAAGR,SAAS,CAACQ,IAAI,CAACC,WAAW,CAACC,QAAQ,CAAC,CAAC;gBAClDb,YAAY,CAACc,IAAI,CAAC,KAAIC,2BAAM,EAACJ,IAAI,EAAEb,gBAAgB,CAACkB,GAAG,CAACL,IAAI,CAAC,CAAC,CAAC;cACjE;YACF,CAAC,MAAM,IAAIP,qBAAE,CAAC0B,kBAAkB,CAAC3B,SAAS,CAAC,EAAE;cAC3C,IAAIA,SAAS,CAACQ,IAAI,EAAE;gBAClB,MAAMA,IAAI,GAAGR,SAAS,CAACQ,IAAI,CAACC,WAAW,CAACC,QAAQ,CAAC,CAAC;gBAClDb,YAAY,CAACc,IAAI,CAAC,KAAIC,2BAAM,EAACJ,IAAI,EAAEb,gBAAgB,CAACkB,GAAG,CAACL,IAAI,CAAC,CAAC,CAAC;cACjE;YACF;YACA,OAAO,IAAI;UACb;UACA,OAAO,KAAK;QACd,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAEF,MAAMoB,YAAY,GAAG/B,YAAY,CAACgC,MAAM,CAAEC,WAAW,IAAKA,WAAW,KAAK3C,SAAS,CAAC;IACpF;IACA,OAAOyC,YAAY;EACrB;EAEAG,WAAWA,CAACC,UAAkB,EAAE;IAC9B,MAAMC,GAAG,GAAGhC,qBAAE,CAACiC,gBAAgB,CAACF,UAAU,EAAE,IAAAG,uBAAY,EAACH,UAAU,EAAE,MAAM,CAAC,EAAE/B,qBAAE,CAACmC,YAAY,CAACC,MAAM,CAAC;IAErG,MAAMC,aAAa,GAAG,IAAI,CAAC7C,UAAU,CAACwC,GAAG,CAAC;IAC1C,OAAOK,aAAa;EACtB;EAEA1C,qBAAqBA,CAACF,UAAyB,EAAE;IAC/C;;IAEA,MAAM6C,sBAAsB,GAAG,IAAIC,GAAG,CAA2B,CAAC;IAElE9C,UAAU,CAACI,UAAU,CAACC,OAAO,CAAEC,SAAS,IAAK;MAC3C,IAAI;QACF,IAAI,CAACC,qBAAE,CAACwC,qBAAqB,CAACzC,SAAS,CAAC,EAAE;QAC1C,IAAI,CAACC,qBAAE,CAACyC,kBAAkB,CAAC1C,SAAS,CAAC2C,UAAU,CAAC,EAAE;QAClD,IAAI3C,SAAS,CAAC2C,UAAU,CAACC,aAAa,CAAC1B,IAAI,KAAKjB,qBAAE,CAACkB,UAAU,CAAC0B,WAAW,EAAE;QAC3E,IAAI,CAAC5C,qBAAE,CAAC6C,0BAA0B,CAAC9C,SAAS,CAAC2C,UAAU,CAACI,IAAI,CAAC,EAAE;QAC/D,IAAI,CAAC9C,qBAAE,CAACwB,YAAY,CAACzB,SAAS,CAAC2C,UAAU,CAACI,IAAI,CAACJ,UAAU,CAAC,EAAE;QAE5D,MAAMK,UAAU,GAAGhD,SAAS,CAAC2C,UAAU,CAACI,IAAI,CAACJ,UAAU,CAACM,IAAI;QAC5D,MAAMC,YAAY,GAAGlD,SAAS,CAAC2C,UAAU,CAACI,IAAI,CAACvC,IAAI,CAACyC,IAAI;QAExD,IAAI,CAACV,sBAAsB,CAACY,GAAG,CAACH,UAAU,CAAC,EAAET,sBAAsB,CAACa,GAAG,CAACJ,UAAU,EAAE,IAAIR,GAAG,CAAC,CAAC,CAAC;QAE9F,MAAMa,kBAAkB,GAAGd,sBAAsB,CAAC1B,GAAG,CAACmC,UAAU,CAAC;QAEjE,IAAI/C,qBAAE,CAACqD,eAAe,CAACtD,SAAS,CAAC2C,UAAU,CAACY,KAAK,CAAC,EAAE;UAClDF,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAED,GAAG,CAACF,YAAY,EAAElD,SAAS,CAAC2C,UAAU,CAACY,KAAK,CAACN,IAAI,CAAC;QACxE,CAAC,MAAM,IAAIhD,qBAAE,CAACuD,gBAAgB,CAACxD,SAAS,CAAC2C,UAAU,CAACY,KAAK,CAAC,EAAE;UAC1DF,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAED,GAAG,CAACF,YAAY,EAAE,CAAClD,SAAS,CAAC2C,UAAU,CAACY,KAAK,CAACN,IAAI,CAAC;QACzE,CAAC,MAAM,IAAIjD,SAAS,CAAC2C,UAAU,CAACY,KAAK,CAACrC,IAAI,KAAKjB,qBAAE,CAACkB,UAAU,CAACsC,gBAAgB,EAAE;UAC7EJ,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAED,GAAG,CAACF,YAAY,EAAE/D,SAAS,CAAC;QAClD,CAAC,MAAM,IAAIa,SAAS,CAAC2C,UAAU,CAACY,KAAK,CAACrC,IAAI,KAAKjB,qBAAE,CAACkB,UAAU,CAACuC,WAAW,EAAE;UACxEL,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAED,GAAG,CAACF,YAAY,EAAE,IAAI,CAAC;QAC7C,CAAC,MAAM,IAAIlD,SAAS,CAAC2C,UAAU,CAACY,KAAK,CAACrC,IAAI,KAAKjB,qBAAE,CAACkB,UAAU,CAACwC,WAAW,EAAE;UACxEN,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAED,GAAG,CAACF,YAAY,EAAE,IAAI,CAAC;QAC7C,CAAC,MAAM,IAAIlD,SAAS,CAAC2C,UAAU,CAACY,KAAK,CAACrC,IAAI,KAAKjB,qBAAE,CAACkB,UAAU,CAACyC,YAAY,EAAE;UACzEP,kBAAkB,aAAlBA,kBAAkB,uBAAlBA,kBAAkB,CAAED,GAAG,CAACF,YAAY,EAAE,KAAK,CAAC;QAC9C;MACF,CAAC,CAAC,OAAOW,GAAG,EAAE;QAAA,IAAAC,YAAA;QACZ,CAAAA,YAAA,OAAI,CAACC,MAAM,cAAAD,YAAA,uBAAXA,YAAA,CAAaE,KAAK,CAAC,kCAAkC,EAAEH,GAAG,CAAC;MAC7D;IACF,CAAC,CAAC;IAEF,OAAOtB,sBAAsB;EAC/B;EAEA0B,WAAWA,CAASF,MAA2B,EAAE;IAAA,KAA7BA,MAA2B,GAA3BA,MAA2B;IAAA7F,eAAA,oBAlH5B,uBAAuB;EAkHQ;AACpD;AAACgG,OAAA,CAAA1E,gBAAA,GAAAA,gBAAA"}
@@ -129,21 +129,21 @@ describe('TypescriptParser', () => {
129
129
  const ast = _typescript().default.createSourceFile('example.tsx', exampleArrowFunction, _typescript().default.ScriptTarget.Latest);
130
130
  const exports = new (_typescript2().TypeScriptParser)().getExports(ast);
131
131
  const exportArrow = exports.find(x => x.identifier === 'arrow');
132
- (0, _chai().expect)(exportArrow === null || exportArrow === void 0 || (_exportArrow$staticPr = exportArrow.staticProperties) === null || _exportArrow$staticPr === void 0 ? void 0 : _exportArrow$staticPr.get('textProperty')).to.equal('propertyValue');
132
+ (0, _chai().expect)(exportArrow === null || exportArrow === void 0 ? void 0 : (_exportArrow$staticPr = exportArrow.staticProperties) === null || _exportArrow$staticPr === void 0 ? void 0 : _exportArrow$staticPr.get('textProperty')).to.equal('propertyValue');
133
133
  });
134
134
  it('should include staticProperties, when on regular functions', () => {
135
135
  var _exportClass$staticPr;
136
136
  const ast = _typescript().default.createSourceFile('example.tsx', exampleFunction, _typescript().default.ScriptTarget.Latest);
137
137
  const exports = new (_typescript2().TypeScriptParser)().getExports(ast);
138
138
  const exportClass = exports.find(x => x.identifier === 'func');
139
- (0, _chai().expect)(exportClass === null || exportClass === void 0 || (_exportClass$staticPr = exportClass.staticProperties) === null || _exportClass$staticPr === void 0 ? void 0 : _exportClass$staticPr.get('textProperty')).to.equal('propertyValue');
139
+ (0, _chai().expect)(exportClass === null || exportClass === void 0 ? void 0 : (_exportClass$staticPr = exportClass.staticProperties) === null || _exportClass$staticPr === void 0 ? void 0 : _exportClass$staticPr.get('textProperty')).to.equal('propertyValue');
140
140
  });
141
141
  it('should include staticProperties, when on classes', () => {
142
142
  var _exportClass$staticPr2;
143
143
  const ast = _typescript().default.createSourceFile('example.tsx', exampleClass, _typescript().default.ScriptTarget.Latest);
144
144
  const exports = new (_typescript2().TypeScriptParser)().getExports(ast);
145
145
  const exportClass = exports.find(x => x.identifier === 'classy');
146
- (0, _chai().expect)(exportClass === null || exportClass === void 0 || (_exportClass$staticPr2 = exportClass.staticProperties) === null || _exportClass$staticPr2 === void 0 ? void 0 : _exportClass$staticPr2.get('textProperty')).to.equal('propertyValue');
146
+ (0, _chai().expect)(exportClass === null || exportClass === void 0 ? void 0 : (_exportClass$staticPr2 = exportClass.staticProperties) === null || _exportClass$staticPr2 === void 0 ? void 0 : _exportClass$staticPr2.get('textProperty')).to.equal('propertyValue');
147
147
  });
148
148
  });
149
149
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_chai","_typescript2","obj","__esModule","default","describe","exampleArrowFunction","exampleFunction","exampleClass","exampleStatement","exampleRenamedStatement","exampleReExport","exampleReExportDefault","exampleRenamedReExportAll","exampleExportDefault","it","ast","ts","createSourceFile","ScriptTarget","Latest","exports","TypeScriptParser","getExports","exportArrow","find","x","identifier","expect","to","exist","exportFunction","exportClass","exportVariable","exportFunction1","exportFunction2","not","length","equal","_exportArrow$staticPr","staticProperties","get","_exportClass$staticPr","_exportClass$staticPr2","exampleFile","parseStaticProperties","exportHello","undefined","has","be","false"],"sources":["typescript.parser.spec.ts"],"sourcesContent":["import ts from 'typescript';\nimport { expect } from 'chai';\n\nimport { TypeScriptParser } from './typescript.parser';\n\ndescribe('TypescriptParser', () => {\n describe('getExports', () => {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export\n // https://www.typescriptlang.org/docs/handbook/modules.html#export\n\n const exampleArrowFunction = `\n export const arrow = () => { return 3; }\n arrow.textProperty = \"propertyValue\";\n `;\n\n const exampleFunction = `\n export function func() { return 3; }\n func.textProperty = \"propertyValue\";\n `;\n\n const exampleClass = `\n export class classy{ render() { return 3; } }\n classy.textProperty = \"propertyValue\";\n `;\n\n const exampleStatement = `\n function myFunction2 () { return 3; }\n const myVariable2 = 3;\n export { myFunction2, myVariable2 };\n `;\n\n const exampleRenamedStatement = `\n function myFunction2 () { return 3; }\n const myVariable2 = 3;\n export { myFunction2, myVariable2 as myVariable2Alias };\n `;\n\n const exampleReExport = `\n export { default as function1, function2 } from \"bar.js\";\n `;\n\n const exampleReExportDefault = `\n export { default, function2 } from \"bar.js\";\n `;\n\n const exampleRenamedReExportAll = `\n export * as ns from \"mod\";\n `;\n\n const exampleExportDefault = `\n const a: number = 1\n export default { a };\n `;\n\n it('should parse arrowFunctions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleArrowFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportArrow = exports.find((x) => x.identifier === 'arrow');\n\n expect(exportArrow).to.exist;\n });\n\n it('should parse function exports', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction = exports.find((x) => x.identifier === 'func');\n\n expect(exportFunction).to.exist;\n });\n\n it('should parse classes', () => {\n const ast = ts.createSourceFile('example.tsx', exampleClass, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'classy');\n\n expect(exportClass).to.exist;\n });\n\n it('should parse declarations', () => {\n const ast = ts.createSourceFile('example.tsx', exampleStatement, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction = exports.find((x) => x.identifier === 'myFunction2');\n const exportVariable = exports.find((x) => x.identifier === 'myVariable2');\n\n expect(exportFunction).to.exist;\n expect(exportVariable).to.exist;\n });\n\n it('should parse renamed declarations', () => {\n const ast = ts.createSourceFile('example.tsx', exampleRenamedStatement, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction = exports.find((x) => x.identifier === 'myFunction2');\n const exportVariable = exports.find((x) => x.identifier === 'myVariable2Alias');\n\n expect(exportFunction).to.exist;\n expect(exportVariable).to.exist;\n });\n\n it('should parse re-exports', () => {\n const ast = ts.createSourceFile('example.tsx', exampleReExport, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction1 = exports.find((x) => x.identifier === 'function1');\n const exportFunction2 = exports.find((x) => x.identifier === 'function2');\n\n expect(exportFunction1).to.exist;\n expect(exportFunction2).to.exist;\n });\n\n it('should parse re-exports with default', () => {\n const ast = ts.createSourceFile('example.tsx', exampleReExportDefault, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction1 = exports.find((x) => x.identifier === 'default');\n const exportFunction2 = exports.find((x) => x.identifier === 'function2');\n\n expect(exportFunction1).not.to.exist;\n expect(exportFunction2).to.exist;\n });\n\n it('should parse renamed re-exports all', () => {\n const ast = ts.createSourceFile('example.tsx', exampleRenamedReExportAll, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction1 = exports.find((x) => x.identifier === 'ns');\n\n expect(exportFunction1).to.exist;\n });\n\n it('should parse default exports', () => {\n const ast = ts.createSourceFile('example.tsx', exampleExportDefault, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n expect(exports.length).to.equal(0);\n });\n\n describe('staticProperties', () => {\n it('should include staticProperties, when on arrowFunctions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleArrowFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportArrow = exports.find((x) => x.identifier === 'arrow');\n\n expect(exportArrow?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n\n it('should include staticProperties, when on regular functions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'func');\n\n expect(exportClass?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n\n it('should include staticProperties, when on classes', () => {\n const ast = ts.createSourceFile('example.tsx', exampleClass, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'classy');\n\n expect(exportClass?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n });\n });\n\n describe('collectStaticProperties', () => {\n const exampleFile = `\n export const hello = () => { return 3; }\n\n hello.text = \"is\";\n hello.count = 3;\n hello.nullish = null;\n hello.undef = undefined;\n hello.disable = false;\n hello.enable = true;\n hello.complextLiteral = \\`what \\${hello.text} it?\\`;\n hello.nonAssignedProperty += 'value';\n `;\n\n it('should parse all primitive values', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n\n expect(staticProperties).to.exist;\n\n const exportHello = staticProperties.get('hello');\n expect(exportHello).to.exist;\n\n expect(exportHello?.get('text')).to.equal('is');\n expect(exportHello?.get('count')).to.equal(3);\n expect(exportHello?.get('nullish')).to.equal(null);\n expect(exportHello?.get('undef')).to.equal(undefined);\n expect(exportHello?.get('disable')).to.equal(false);\n expect(exportHello?.get('enable')).to.equal(true);\n\n expect(exportHello?.has('complextLiteral')).to.be.false;\n });\n\n it('should skip non primitive values', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n const exportHello = staticProperties.get('hello');\n\n expect(exportHello?.has('complextLiteral')).to.be.false;\n });\n\n it('should skip non assignment statements', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n const exportHello = staticProperties.get('hello');\n\n expect(exportHello?.has('nonAssignedProperty')).to.be.false;\n });\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,MAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,aAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,YAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAuD,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEvDG,QAAQ,CAAC,kBAAkB,EAAE,MAAM;EACjCA,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC3B;IACA;;IAEA,MAAMC,oBAAoB,GAAI;AAClC;AACA;AACA,KAAK;IAED,MAAMC,eAAe,GAAI;AAC7B;AACA;AACA,KAAK;IAED,MAAMC,YAAY,GAAI;AAC1B;AACA;AACA,KAAK;IAED,MAAMC,gBAAgB,GAAI;AAC9B;AACA;AACA;AACA,KAAK;IAED,MAAMC,uBAAuB,GAAI;AACrC;AACA;AACA;AACA,KAAK;IAED,MAAMC,eAAe,GAAI;AAC7B;AACA,KAAK;IAED,MAAMC,sBAAsB,GAAI;AACpC;AACA,KAAK;IAED,MAAMC,yBAAyB,GAAI;AACvC;AACA,KAAK;IAED,MAAMC,oBAAoB,GAAI;AAClC;AACA;AACA,KAAK;IAEDC,EAAE,CAAC,6BAA6B,EAAE,MAAM;MACtC,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEZ,oBAAoB,EAAEW,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MAC5F,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,MAAMQ,WAAW,GAAGH,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,OAAO,CAAC;MAEjE,IAAAC,cAAM,EAACJ,WAAW,CAAC,CAACK,EAAE,CAACC,KAAK;IAC9B,CAAC,CAAC;IAEFf,EAAE,CAAC,+BAA+B,EAAE,MAAM;MACxC,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEX,eAAe,EAAEU,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MACvF,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,MAAMe,cAAc,GAAGV,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,MAAM,CAAC;MAEnE,IAAAC,cAAM,EAACG,cAAc,CAAC,CAACF,EAAE,CAACC,KAAK;IACjC,CAAC,CAAC;IAEFf,EAAE,CAAC,sBAAsB,EAAE,MAAM;MAC/B,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEV,YAAY,EAAES,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MACpF,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,MAAMgB,WAAW,GAAGX,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,QAAQ,CAAC;MAElE,IAAAC,cAAM,EAACI,WAAW,CAAC,CAACH,EAAE,CAACC,KAAK;IAC9B,CAAC,CAAC;IAEFf,EAAE,CAAC,2BAA2B,EAAE,MAAM;MACpC,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAET,gBAAgB,EAAEQ,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MACxF,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,MAAMe,cAAc,GAAGV,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,aAAa,CAAC;MAC1E,MAAMM,cAAc,GAAGZ,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,aAAa,CAAC;MAE1E,IAAAC,cAAM,EAACG,cAAc,CAAC,CAACF,EAAE,CAACC,KAAK;MAC/B,IAAAF,cAAM,EAACK,cAAc,CAAC,CAACJ,EAAE,CAACC,KAAK;IACjC,CAAC,CAAC;IAEFf,EAAE,CAAC,mCAAmC,EAAE,MAAM;MAC5C,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAER,uBAAuB,EAAEO,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MAC/F,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,MAAMe,cAAc,GAAGV,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,aAAa,CAAC;MAC1E,MAAMM,cAAc,GAAGZ,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,kBAAkB,CAAC;MAE/E,IAAAC,cAAM,EAACG,cAAc,CAAC,CAACF,EAAE,CAACC,KAAK;MAC/B,IAAAF,cAAM,EAACK,cAAc,CAAC,CAACJ,EAAE,CAACC,KAAK;IACjC,CAAC,CAAC;IAEFf,EAAE,CAAC,yBAAyB,EAAE,MAAM;MAClC,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEP,eAAe,EAAEM,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MACvF,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,MAAMkB,eAAe,GAAGb,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,WAAW,CAAC;MACzE,MAAMQ,eAAe,GAAGd,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,WAAW,CAAC;MAEzE,IAAAC,cAAM,EAACM,eAAe,CAAC,CAACL,EAAE,CAACC,KAAK;MAChC,IAAAF,cAAM,EAACO,eAAe,CAAC,CAACN,EAAE,CAACC,KAAK;IAClC,CAAC,CAAC;IAEFf,EAAE,CAAC,sCAAsC,EAAE,MAAM;MAC/C,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEN,sBAAsB,EAAEK,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MAC9F,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,MAAMkB,eAAe,GAAGb,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,SAAS,CAAC;MACvE,MAAMQ,eAAe,GAAGd,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,WAAW,CAAC;MAEzE,IAAAC,cAAM,EAACM,eAAe,CAAC,CAACE,GAAG,CAACP,EAAE,CAACC,KAAK;MACpC,IAAAF,cAAM,EAACO,eAAe,CAAC,CAACN,EAAE,CAACC,KAAK;IAClC,CAAC,CAAC;IAEFf,EAAE,CAAC,qCAAqC,EAAE,MAAM;MAC9C,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEL,yBAAyB,EAAEI,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MACjG,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,MAAMkB,eAAe,GAAGb,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,IAAI,CAAC;MAElE,IAAAC,cAAM,EAACM,eAAe,CAAC,CAACL,EAAE,CAACC,KAAK;IAClC,CAAC,CAAC;IAEFf,EAAE,CAAC,8BAA8B,EAAE,MAAM;MACvC,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEJ,oBAAoB,EAAEG,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MAC5F,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;MAEtD,IAAAY,cAAM,EAACP,OAAO,CAACgB,MAAM,CAAC,CAACR,EAAE,CAACS,KAAK,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC;IAEFjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM;MACjCU,EAAE,CAAC,yDAAyD,EAAE,MAAM;QAAA,IAAAwB,qBAAA;QAClE,MAAMvB,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEZ,oBAAoB,EAAEW,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;QAC5F,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;QAEtD,MAAMQ,WAAW,GAAGH,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,OAAO,CAAC;QAEjE,IAAAC,cAAM,EAACJ,WAAW,aAAXA,WAAW,gBAAAe,qBAAA,GAAXf,WAAW,CAAEgB,gBAAgB,cAAAD,qBAAA,uBAA7BA,qBAAA,CAA+BE,GAAG,CAAC,cAAc,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAAC,eAAe,CAAC;MACtF,CAAC,CAAC;MAEFvB,EAAE,CAAC,4DAA4D,EAAE,MAAM;QAAA,IAAA2B,qBAAA;QACrE,MAAM1B,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEX,eAAe,EAAEU,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;QACvF,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;QAEtD,MAAMgB,WAAW,GAAGX,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,MAAM,CAAC;QAEhE,IAAAC,cAAM,EAACI,WAAW,aAAXA,WAAW,gBAAAU,qBAAA,GAAXV,WAAW,CAAEQ,gBAAgB,cAAAE,qBAAA,uBAA7BA,qBAAA,CAA+BD,GAAG,CAAC,cAAc,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAAC,eAAe,CAAC;MACtF,CAAC,CAAC;MAEFvB,EAAE,CAAC,kDAAkD,EAAE,MAAM;QAAA,IAAA4B,sBAAA;QAC3D,MAAM3B,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAEV,YAAY,EAAES,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;QACpF,MAAMC,OAAO,GAAG,KAAIC,+BAAgB,EAAC,CAAC,CAACC,UAAU,CAACP,GAAG,CAAC;QAEtD,MAAMgB,WAAW,GAAGX,OAAO,CAACI,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,UAAU,KAAK,QAAQ,CAAC;QAElE,IAAAC,cAAM,EAACI,WAAW,aAAXA,WAAW,gBAAAW,sBAAA,GAAXX,WAAW,CAAEQ,gBAAgB,cAAAG,sBAAA,uBAA7BA,sBAAA,CAA+BF,GAAG,CAAC,cAAc,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAAC,eAAe,CAAC;MACtF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFjC,QAAQ,CAAC,yBAAyB,EAAE,MAAM;IACxC,MAAMuC,WAAW,GAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IAED7B,EAAE,CAAC,mCAAmC,EAAE,MAAM;MAC5C,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAE0B,WAAW,EAAE3B,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MACnF,MAAMoB,gBAAgB,GAAG,KAAIlB,+BAAgB,EAAC,CAAC,CAACuB,qBAAqB,CAAC7B,GAAG,CAAC;MAE1E,IAAAY,cAAM,EAACY,gBAAgB,CAAC,CAACX,EAAE,CAACC,KAAK;MAEjC,MAAMgB,WAAW,GAAGN,gBAAgB,CAACC,GAAG,CAAC,OAAO,CAAC;MACjD,IAAAb,cAAM,EAACkB,WAAW,CAAC,CAACjB,EAAE,CAACC,KAAK;MAE5B,IAAAF,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEL,GAAG,CAAC,MAAM,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAAC,IAAI,CAAC;MAC/C,IAAAV,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEL,GAAG,CAAC,OAAO,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAAC,CAAC,CAAC;MAC7C,IAAAV,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEL,GAAG,CAAC,SAAS,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAAC,IAAI,CAAC;MAClD,IAAAV,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEL,GAAG,CAAC,OAAO,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAACS,SAAS,CAAC;MACrD,IAAAnB,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEL,GAAG,CAAC,SAAS,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAAC,KAAK,CAAC;MACnD,IAAAV,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAACZ,EAAE,CAACS,KAAK,CAAC,IAAI,CAAC;MAEjD,IAAAV,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAACnB,EAAE,CAACoB,EAAE,CAACC,KAAK;IACzD,CAAC,CAAC;IAEFnC,EAAE,CAAC,kCAAkC,EAAE,MAAM;MAC3C,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAE0B,WAAW,EAAE3B,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MACnF,MAAMoB,gBAAgB,GAAG,KAAIlB,+BAAgB,EAAC,CAAC,CAACuB,qBAAqB,CAAC7B,GAAG,CAAC;MAC1E,MAAM8B,WAAW,GAAGN,gBAAgB,CAACC,GAAG,CAAC,OAAO,CAAC;MAEjD,IAAAb,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAACnB,EAAE,CAACoB,EAAE,CAACC,KAAK;IACzD,CAAC,CAAC;IAEFnC,EAAE,CAAC,uCAAuC,EAAE,MAAM;MAChD,MAAMC,GAAG,GAAGC,qBAAE,CAACC,gBAAgB,CAAC,aAAa,EAAE0B,WAAW,EAAE3B,qBAAE,CAACE,YAAY,CAACC,MAAM,CAAC;MACnF,MAAMoB,gBAAgB,GAAG,KAAIlB,+BAAgB,EAAC,CAAC,CAACuB,qBAAqB,CAAC7B,GAAG,CAAC;MAC1E,MAAM8B,WAAW,GAAGN,gBAAgB,CAACC,GAAG,CAAC,OAAO,CAAC;MAEjD,IAAAb,cAAM,EAACkB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEE,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAACnB,EAAE,CAACoB,EAAE,CAACC,KAAK;IAC7D,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_chai","_typescript2","obj","__esModule","default","describe","exampleArrowFunction","exampleFunction","exampleClass","exampleStatement","exampleRenamedStatement","exampleReExport","exampleReExportDefault","exampleRenamedReExportAll","exampleExportDefault","it","ast","ts","createSourceFile","ScriptTarget","Latest","exports","TypeScriptParser","getExports","exportArrow","find","x","identifier","expect","to","exist","exportFunction","exportClass","exportVariable","exportFunction1","exportFunction2","not","length","equal","_exportArrow$staticPr","staticProperties","get","_exportClass$staticPr","_exportClass$staticPr2","exampleFile","parseStaticProperties","exportHello","undefined","has","be","false"],"sources":["typescript.parser.spec.ts"],"sourcesContent":["import ts from 'typescript';\nimport { expect } from 'chai';\n\nimport { TypeScriptParser } from './typescript.parser';\n\ndescribe('TypescriptParser', () => {\n describe('getExports', () => {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export\n // https://www.typescriptlang.org/docs/handbook/modules.html#export\n\n const exampleArrowFunction = `\n export const arrow = () => { return 3; }\n arrow.textProperty = \"propertyValue\";\n `;\n\n const exampleFunction = `\n export function func() { return 3; }\n func.textProperty = \"propertyValue\";\n `;\n\n const exampleClass = `\n export class classy{ render() { return 3; } }\n classy.textProperty = \"propertyValue\";\n `;\n\n const exampleStatement = `\n function myFunction2 () { return 3; }\n const myVariable2 = 3;\n export { myFunction2, myVariable2 };\n `;\n\n const exampleRenamedStatement = `\n function myFunction2 () { return 3; }\n const myVariable2 = 3;\n export { myFunction2, myVariable2 as myVariable2Alias };\n `;\n\n const exampleReExport = `\n export { default as function1, function2 } from \"bar.js\";\n `;\n\n const exampleReExportDefault = `\n export { default, function2 } from \"bar.js\";\n `;\n\n const exampleRenamedReExportAll = `\n export * as ns from \"mod\";\n `;\n\n const exampleExportDefault = `\n const a: number = 1\n export default { a };\n `;\n\n it('should parse arrowFunctions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleArrowFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportArrow = exports.find((x) => x.identifier === 'arrow');\n\n expect(exportArrow).to.exist;\n });\n\n it('should parse function exports', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction = exports.find((x) => x.identifier === 'func');\n\n expect(exportFunction).to.exist;\n });\n\n it('should parse classes', () => {\n const ast = ts.createSourceFile('example.tsx', exampleClass, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'classy');\n\n expect(exportClass).to.exist;\n });\n\n it('should parse declarations', () => {\n const ast = ts.createSourceFile('example.tsx', exampleStatement, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction = exports.find((x) => x.identifier === 'myFunction2');\n const exportVariable = exports.find((x) => x.identifier === 'myVariable2');\n\n expect(exportFunction).to.exist;\n expect(exportVariable).to.exist;\n });\n\n it('should parse renamed declarations', () => {\n const ast = ts.createSourceFile('example.tsx', exampleRenamedStatement, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction = exports.find((x) => x.identifier === 'myFunction2');\n const exportVariable = exports.find((x) => x.identifier === 'myVariable2Alias');\n\n expect(exportFunction).to.exist;\n expect(exportVariable).to.exist;\n });\n\n it('should parse re-exports', () => {\n const ast = ts.createSourceFile('example.tsx', exampleReExport, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction1 = exports.find((x) => x.identifier === 'function1');\n const exportFunction2 = exports.find((x) => x.identifier === 'function2');\n\n expect(exportFunction1).to.exist;\n expect(exportFunction2).to.exist;\n });\n\n it('should parse re-exports with default', () => {\n const ast = ts.createSourceFile('example.tsx', exampleReExportDefault, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction1 = exports.find((x) => x.identifier === 'default');\n const exportFunction2 = exports.find((x) => x.identifier === 'function2');\n\n expect(exportFunction1).not.to.exist;\n expect(exportFunction2).to.exist;\n });\n\n it('should parse renamed re-exports all', () => {\n const ast = ts.createSourceFile('example.tsx', exampleRenamedReExportAll, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction1 = exports.find((x) => x.identifier === 'ns');\n\n expect(exportFunction1).to.exist;\n });\n\n it('should parse default exports', () => {\n const ast = ts.createSourceFile('example.tsx', exampleExportDefault, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n expect(exports.length).to.equal(0);\n });\n\n describe('staticProperties', () => {\n it('should include staticProperties, when on arrowFunctions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleArrowFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportArrow = exports.find((x) => x.identifier === 'arrow');\n\n expect(exportArrow?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n\n it('should include staticProperties, when on regular functions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'func');\n\n expect(exportClass?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n\n it('should include staticProperties, when on classes', () => {\n const ast = ts.createSourceFile('example.tsx', exampleClass, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'classy');\n\n expect(exportClass?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n });\n });\n\n describe('collectStaticProperties', () => {\n const exampleFile = `\n export const hello = () => { return 3; }\n\n hello.text = \"is\";\n hello.count = 3;\n hello.nullish = null;\n hello.undef = undefined;\n hello.disable = false;\n hello.enable = true;\n hello.complextLiteral = \\`what \\${hello.text} it?\\`;\n hello.nonAssignedProperty += 'value';\n `;\n\n it('should parse all primitive values', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n\n expect(staticProperties).to.exist;\n\n const exportHello = staticProperties.get('hello');\n expect(exportHello).to.exist;\n\n expect(exportHello?.get('text')).to.equal('is');\n expect(exportHello?.get('count')).to.equal(3);\n expect(exportHello?.get('nullish')).to.equal(null);\n expect(exportHello?.get('undef')).to.equal(undefined);\n expect(exportHello?.get('disable')).to.equal(false);\n expect(exportHello?.get('enable')).to.equal(true);\n\n expect(exportHello?.has('complextLiteral')).to.be.false;\n });\n\n it('should skip non primitive values', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n const exportHello = staticProperties.get('hello');\n\n expect(exportHello?.has('complextLiteral')).to.be.false;\n });\n\n it('should skip non assignment statements', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n const exportHello = staticProperties.get('hello');\n\n expect(exportHello?.has('nonAssignedProperty')).to.be.false;\n });\n });\n});\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/typescript",
3
- "version": "0.0.1166",
3
+ "version": "0.0.1168",
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": "0.0.1166"
9
+ "version": "0.0.1168"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -18,25 +18,25 @@
18
18
  "yesno": "0.4.0",
19
19
  "get-tsconfig": "4.2.0",
20
20
  "@teambit/harmony": "0.4.6",
21
- "@teambit/compiler": "0.0.1166",
21
+ "@teambit/compiler": "0.0.1168",
22
22
  "@teambit/typescript.modules.ts-config-mutator": "0.0.76",
23
- "@teambit/builder": "0.0.1166",
24
- "@teambit/isolator": "0.0.1166",
25
- "@teambit/component": "0.0.1166",
26
- "@teambit/dependency-resolver": "0.0.1166",
27
- "@teambit/formatter": "0.0.717",
23
+ "@teambit/builder": "0.0.1168",
24
+ "@teambit/isolator": "0.0.1168",
25
+ "@teambit/component": "0.0.1168",
26
+ "@teambit/dependency-resolver": "0.0.1168",
27
+ "@teambit/formatter": "0.0.719",
28
28
  "@teambit/semantics.entities.semantic-schema": "0.0.54",
29
29
  "@teambit/ts-server": "0.0.48",
30
- "@teambit/aspect-loader": "0.0.1166",
31
- "@teambit/envs": "0.0.1166",
32
- "@teambit/logger": "0.0.870",
33
- "@teambit/workspace": "0.0.1166",
30
+ "@teambit/aspect-loader": "0.0.1168",
31
+ "@teambit/envs": "0.0.1168",
32
+ "@teambit/logger": "0.0.872",
33
+ "@teambit/workspace": "0.0.1168",
34
34
  "@teambit/bit-error": "0.0.402",
35
- "@teambit/schema": "0.0.1166",
36
- "@teambit/scope": "0.0.1166",
37
- "@teambit/cli": "0.0.777",
38
- "@teambit/pkg": "0.0.1166",
39
- "@teambit/watcher": "0.0.178"
35
+ "@teambit/schema": "0.0.1168",
36
+ "@teambit/scope": "0.0.1168",
37
+ "@teambit/cli": "0.0.779",
38
+ "@teambit/pkg": "0.0.1168",
39
+ "@teambit/watcher": "0.0.180"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/lodash": "4.14.165",
@@ -52,7 +52,7 @@
52
52
  "@teambit/typescript.aspect-docs.typescript": "0.0.157"
53
53
  },
54
54
  "peerDependencies": {
55
- "@teambit/legacy": "1.0.562",
55
+ "@teambit/legacy": "1.0.564",
56
56
  "react": "^16.8.0 || ^17.0.0",
57
57
  "react-dom": "^16.8.0 || ^17.0.0"
58
58
  },