@teambit/typescript 1.0.106 → 1.0.108

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.
Files changed (86) hide show
  1. package/compiler-options.ts +27 -0
  2. package/dedupe-path.spec.ts +34 -0
  3. package/dist/cmds/write-tsconfig.cmd.d.ts +2 -2
  4. package/dist/compiler-options.d.ts +2 -2
  5. package/dist/extractor-options.d.ts +1 -1
  6. package/dist/identifier-list.d.ts +1 -1
  7. package/dist/identifier.d.ts +3 -3
  8. package/dist/{preview-1703505948637.js → preview-1703647408454.js} +2 -2
  9. package/dist/schema-extractor-context.d.ts +11 -11
  10. package/dist/schema-extractor-context.js +13 -17
  11. package/dist/schema-extractor-context.js.map +1 -1
  12. package/dist/schema-transformer.d.ts +2 -2
  13. package/dist/sourceFileTransformers/export.js +1 -2
  14. package/dist/sourceFileTransformers/export.js.map +1 -1
  15. package/dist/sourceFileTransformers/function.js +2 -3
  16. package/dist/sourceFileTransformers/function.js.map +1 -1
  17. package/dist/sourceFileTransformers/import.js +1 -2
  18. package/dist/sourceFileTransformers/import.js.map +1 -1
  19. package/dist/sourceFileTransformers/index.d.ts +1 -1
  20. package/dist/sourceFileTransformers/transform.js +1 -1
  21. package/dist/sourceFileTransformers/transform.js.map +1 -1
  22. package/dist/transformers/binding-element.js +1 -2
  23. package/dist/transformers/binding-element.js.map +1 -1
  24. package/dist/transformers/class-declaration.js +3 -6
  25. package/dist/transformers/class-declaration.js.map +1 -1
  26. package/dist/transformers/constructor.js +3 -4
  27. package/dist/transformers/constructor.js.map +1 -1
  28. package/dist/transformers/enum-declaration.js +1 -2
  29. package/dist/transformers/enum-declaration.js.map +1 -1
  30. package/dist/transformers/export-declaration.js +5 -7
  31. package/dist/transformers/export-declaration.js.map +1 -1
  32. package/dist/transformers/function-like.js +5 -8
  33. package/dist/transformers/function-like.js.map +1 -1
  34. package/dist/transformers/get-accessor.js +1 -2
  35. package/dist/transformers/get-accessor.js.map +1 -1
  36. package/dist/transformers/import-declaration.js +2 -3
  37. package/dist/transformers/import-declaration.js.map +1 -1
  38. package/dist/transformers/interface-declaration.js +1 -2
  39. package/dist/transformers/interface-declaration.js.map +1 -1
  40. package/dist/transformers/parameter.js +1 -2
  41. package/dist/transformers/parameter.js.map +1 -1
  42. package/dist/transformers/property-declaration.js +1 -2
  43. package/dist/transformers/property-declaration.js.map +1 -1
  44. package/dist/transformers/source-file-transformer.js +3 -5
  45. package/dist/transformers/source-file-transformer.js.map +1 -1
  46. package/dist/transformers/utils/jsdoc-to-doc-schema.js +2 -4
  47. package/dist/transformers/utils/jsdoc-to-doc-schema.js.map +1 -1
  48. package/dist/transformers/utils/parse-type-from-quick-info.js +1 -2
  49. package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -1
  50. package/dist/transformers/variable-declaration.js +8 -12
  51. package/dist/transformers/variable-declaration.js.map +1 -1
  52. package/dist/tsconfig-writer.d.ts +2 -2
  53. package/dist/tsconfig-writer.js +1 -4
  54. package/dist/tsconfig-writer.js.map +1 -1
  55. package/dist/typescript.composition.d.ts +2 -2
  56. package/dist/typescript.extractor.d.ts +3 -3
  57. package/dist/typescript.extractor.js +5 -7
  58. package/dist/typescript.extractor.js.map +1 -1
  59. package/dist/typescript.main.runtime.d.ts +7 -7
  60. package/dist/typescript.main.runtime.js +1 -2
  61. package/dist/typescript.main.runtime.js.map +1 -1
  62. package/dist/typescript.parser.js +7 -8
  63. package/dist/typescript.parser.js.map +1 -1
  64. package/dist/typescript.parser.spec.js +12 -15
  65. package/dist/typescript.parser.spec.js.map +1 -1
  66. package/export-identifier.ts +14 -0
  67. package/extractor-options.ts +21 -0
  68. package/identifier-list.ts +14 -0
  69. package/identifier.ts +23 -0
  70. package/index.ts +14 -0
  71. package/package.json +27 -34
  72. package/remove-types-task.ts +33 -0
  73. package/schema-extractor-context.ts +625 -0
  74. package/schema-transformer.plugin.ts +14 -0
  75. package/schema-transformer.ts +23 -0
  76. package/transform-source-file.spec.ts +155 -0
  77. package/tsconfig-writer.ts +249 -0
  78. package/tsconfig.json +16 -21
  79. package/types/asset.d.ts +15 -3
  80. package/typescript.aspect.ts +5 -0
  81. package/typescript.compiler.spec.ts +63 -0
  82. package/typescript.compiler.ts +286 -0
  83. package/typescript.extractor.ts +247 -0
  84. package/typescript.main.runtime.ts +442 -0
  85. package/typescript.parser.spec.ts +221 -0
  86. package/typescript.parser.ts +123 -0
@@ -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","name","getText","transform","context","getQuickInfoFromDefaultModifier","defaultModifier","modifiers","find","modifier","DefaultKeyword","getQuickInfo","equalsGreaterThanToken","info","returnTypeStr","parseTypeFromQuickInfo","displaySig","body","displayString","args","pMapSeries","parameters","param","computeSchema","returnType","resolveType","Boolean","map","typeParameters","typeParam","location","getLocation","doc","jsDocToDocSchema","FunctionLikeSchema","exports"],"sources":["function-like.ts"],"sourcesContent":["import { FunctionLikeSchema, ParameterSchema, SchemaNode, Modifier } from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, SignatureDeclaration } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class FunctionLikeTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return (\n node.kind === ts.SyntaxKind.FunctionDeclaration ||\n node.kind === ts.SyntaxKind.ArrowFunction ||\n node.kind === ts.SyntaxKind.MethodDeclaration ||\n node.kind === ts.SyntaxKind.CallSignature ||\n node.kind === ts.SyntaxKind.ConstructSignature ||\n node.kind === ts.SyntaxKind.IndexSignature ||\n node.kind === ts.SyntaxKind.FunctionType ||\n node.kind === ts.SyntaxKind.MethodSignature\n );\n }\n\n // need to check for anonymous functions assigned for vars, const and let.\n async getIdentifiers(funcDec: SignatureDeclaration) {\n return [new Identifier(this.getName(funcDec), funcDec.getSourceFile().fileName)];\n }\n\n private getName(funcDec: SignatureDeclaration) {\n if (funcDec.kind === ts.SyntaxKind.ConstructSignature) return 'new';\n return funcDec.name?.getText() || '';\n }\n\n async transform(node: SignatureDeclaration, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(node);\n const getQuickInfoFromDefaultModifier = async () => {\n const defaultModifier = node.modifiers?.find((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword);\n if (defaultModifier) return context.getQuickInfo(defaultModifier);\n if (node.kind === ts.SyntaxKind.ArrowFunction) return context.getQuickInfo(node.equalsGreaterThanToken);\n return null;\n };\n const info = node.name ? await context.getQuickInfo(node.name) : await getQuickInfoFromDefaultModifier();\n const returnTypeStr = info ? parseTypeFromQuickInfo(info) : 'any';\n const displaySig = info?.body?.displayString || '';\n const args = (await pMapSeries(node.parameters, async (param) =>\n context.computeSchema(param)\n )) as ParameterSchema[];\n\n const returnType = await context.resolveType(node, returnTypeStr, Boolean(info));\n const modifiers = node.modifiers?.map((modifier) => modifier.getText()) || [];\n const typeParameters = node.typeParameters?.map((typeParam) => typeParam.name.getText());\n const location = context.getLocation(node);\n const doc = await context.jsDocToDocSchema(node);\n\n return new FunctionLikeSchema(\n location,\n name,\n args,\n returnType,\n displaySig,\n modifiers as Modifier[],\n doc,\n typeParameters\n );\n }\n}\n"],"mappings":"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"}
@@ -34,9 +34,8 @@ class GetAccessorTransformer {
34
34
  return [];
35
35
  }
36
36
  async transform(node, context) {
37
- var _info$body;
38
37
  const info = await context.getQuickInfo(node.name);
39
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
38
+ const displaySig = info?.body?.displayString || '';
40
39
  const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
41
40
  const type = await context.resolveType(node, typeStr);
42
41
  return new (_semanticsEntities().GetAccessorSchema)(context.getLocation(node), node.name.getText(), type, displaySig);
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_semanticsEntities","_parseTypeFromQuickInfo","obj","__esModule","default","GetAccessorTransformer","predicate","node","kind","ts","SyntaxKind","GetAccessor","getIdentifiers","transform","context","_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","getQuickInfo","name","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","GetAccessorSchema","getLocation","getText","exports"],"sources":["get-accessor.ts"],"sourcesContent":["import ts, { Node, GetAccessorDeclaration } from 'typescript';\nimport { GetAccessorSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class GetAccessorTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.GetAccessor;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: GetAccessorDeclaration, context: SchemaExtractorContext) {\n const info = await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || '';\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n return new GetAccessorSchema(context.getLocation(node), node.name.getText(), type, displaySig);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,mBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAI,wBAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,uBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4E,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGrE,MAAMG,sBAAsB,CAA8B;EAC/DC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,WAAW;EAChD;EAEA,MAAMC,cAAcA,CAAA,EAA0B;IAC5C,OAAO,EAAE;EACX;EAEA,MAAMC,SAASA,CAACN,IAA4B,EAAEO,OAA+B,EAAE;IAC7E,MAAMC,IAAI,GAAG,MAAMD,OAAO,CAACE,YAAY,CAACT,IAAI,CAACU,IAAI,CAAC;IAClD,MAAMC,UAAU,GAAGH,IAAI,EAAEI,IAAI,EAAEC,aAAa,IAAI,EAAE;IAClD,MAAMC,OAAO,GAAG,IAAAC,gDAAsB,EAACP,IAAI,CAAC;IAC5C,MAAMQ,IAAI,GAAG,MAAMT,OAAO,CAACU,WAAW,CAACjB,IAAI,EAAEc,OAAO,CAAC;IACrD,OAAO,KAAII,sCAAiB,EAACX,OAAO,CAACY,WAAW,CAACnB,IAAI,CAAC,EAAEA,IAAI,CAACU,IAAI,CAACU,OAAO,CAAC,CAAC,EAAEJ,IAAI,EAAEL,UAAU,CAAC;EAChG;AACF;AAACU,OAAA,CAAAvB,sBAAA,GAAAA,sBAAA"}
@@ -30,7 +30,6 @@ class ImportDeclarationTransformer {
30
30
  return node.kind === _typescript().SyntaxKind.ImportDeclaration;
31
31
  }
32
32
  async getIdentifiers(importDec) {
33
- var _importDec$importClau;
34
33
  if (!importDec.importClause) return [];
35
34
  const sourceFile = importDec.getSourceFile().fileName;
36
35
  const rawSourceFilePath = importDec.moduleSpecifier.getText();
@@ -42,7 +41,7 @@ class ImportDeclarationTransformer {
42
41
  }
43
42
 
44
43
  // import { A } from 'a'
45
- if (((_importDec$importClau = importDec.importClause.namedBindings) === null || _importDec$importClau === void 0 ? void 0 : _importDec$importClau.kind) === _typescript().SyntaxKind.NamedImports) {
44
+ if (importDec.importClause.namedBindings?.kind === _typescript().SyntaxKind.NamedImports) {
46
45
  const {
47
46
  elements
48
47
  } = importDec.importClause.namedBindings;
@@ -50,7 +49,7 @@ class ImportDeclarationTransformer {
50
49
  name,
51
50
  propertyName
52
51
  }) => {
53
- const id = (propertyName === null || propertyName === void 0 ? void 0 : propertyName.getText()) || name.getText();
52
+ const id = propertyName?.getText() || name.getText();
54
53
  const alias = propertyName && name.getText() || undefined;
55
54
  const identifier = new (_identifier().Identifier)(id, sourceFile, alias, sourceFilePath);
56
55
  return identifier;
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","require","_semanticsEntities","_identifier","ImportDeclarationTransformer","predicate","node","kind","SyntaxKind","ImportDeclaration","getIdentifiers","importDec","_importDec$importClau","importClause","sourceFile","getSourceFile","fileName","rawSourceFilePath","moduleSpecifier","getText","sourceFilePath","substring","length","namedBindings","Identifier","undefined","NamedImports","elements","map","name","propertyName","id","alias","identifier","NamespaceImport","transform","context","location","getLocation","UnImplementedSchema","toString","exports"],"sources":["import-declaration.ts"],"sourcesContent":["import { ImportDeclaration, Node, SyntaxKind } from 'typescript';\nimport { UnImplementedSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class ImportDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.ImportDeclaration;\n }\n\n async getIdentifiers(importDec: ImportDeclaration): Promise<Identifier[]> {\n if (!importDec.importClause) return [];\n\n const sourceFile = importDec.getSourceFile().fileName;\n const rawSourceFilePath = importDec.moduleSpecifier.getText();\n const sourceFilePath = rawSourceFilePath.substring(1, rawSourceFilePath.length - 1);\n\n // import A from 'a'\n if (!importDec.importClause.namedBindings) {\n return [new Identifier(importDec.importClause.getText(), sourceFile, undefined, sourceFilePath)];\n }\n\n // import { A } from 'a'\n if (importDec.importClause.namedBindings?.kind === SyntaxKind.NamedImports) {\n const { elements } = importDec.importClause.namedBindings;\n\n return elements.map(({ name, propertyName }) => {\n const id = propertyName?.getText() || name.getText();\n const alias = (propertyName && name.getText()) || undefined;\n const identifier = new Identifier(id, sourceFile, alias, sourceFilePath);\n return identifier;\n });\n }\n\n // import * as A from 'a';\n if (importDec.importClause.namedBindings.kind === SyntaxKind.NamespaceImport) {\n return [\n new Identifier(\n importDec.importClause.namedBindings.name.getText(),\n sourceFile,\n undefined,\n importDec.moduleSpecifier.getText()\n ),\n ];\n }\n\n return [];\n }\n\n async transform(node: ImportDeclaration, context: SchemaExtractorContext) {\n const location = context.getLocation(node);\n\n return new UnImplementedSchema(location, node.getText(), node.kind.toString());\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMI,4BAA4B,CAA8B;EACrEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACC,iBAAiB;EACnD;EAEA,MAAMC,cAAcA,CAACC,SAA4B,EAAyB;IAAA,IAAAC,qBAAA;IACxE,IAAI,CAACD,SAAS,CAACE,YAAY,EAAE,OAAO,EAAE;IAEtC,MAAMC,UAAU,GAAGH,SAAS,CAACI,aAAa,CAAC,CAAC,CAACC,QAAQ;IACrD,MAAMC,iBAAiB,GAAGN,SAAS,CAACO,eAAe,CAACC,OAAO,CAAC,CAAC;IAC7D,MAAMC,cAAc,GAAGH,iBAAiB,CAACI,SAAS,CAAC,CAAC,EAAEJ,iBAAiB,CAACK,MAAM,GAAG,CAAC,CAAC;;IAEnF;IACA,IAAI,CAACX,SAAS,CAACE,YAAY,CAACU,aAAa,EAAE;MACzC,OAAO,CAAC,KAAIC,wBAAU,EAACb,SAAS,CAACE,YAAY,CAACM,OAAO,CAAC,CAAC,EAAEL,UAAU,EAAEW,SAAS,EAAEL,cAAc,CAAC,CAAC;IAClG;;IAEA;IACA,IAAI,EAAAR,qBAAA,GAAAD,SAAS,CAACE,YAAY,CAACU,aAAa,cAAAX,qBAAA,uBAApCA,qBAAA,CAAsCL,IAAI,MAAKC,wBAAU,CAACkB,YAAY,EAAE;MAC1E,MAAM;QAAEC;MAAS,CAAC,GAAGhB,SAAS,CAACE,YAAY,CAACU,aAAa;MAEzD,OAAOI,QAAQ,CAACC,GAAG,CAAC,CAAC;QAAEC,IAAI;QAAEC;MAAa,CAAC,KAAK;QAC9C,MAAMC,EAAE,GAAG,CAAAD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEX,OAAO,CAAC,CAAC,KAAIU,IAAI,CAACV,OAAO,CAAC,CAAC;QACpD,MAAMa,KAAK,GAAIF,YAAY,IAAID,IAAI,CAACV,OAAO,CAAC,CAAC,IAAKM,SAAS;QAC3D,MAAMQ,UAAU,GAAG,KAAIT,wBAAU,EAACO,EAAE,EAAEjB,UAAU,EAAEkB,KAAK,EAAEZ,cAAc,CAAC;QACxE,OAAOa,UAAU;MACnB,CAAC,CAAC;IACJ;;IAEA;IACA,IAAItB,SAAS,CAACE,YAAY,CAACU,aAAa,CAAChB,IAAI,KAAKC,wBAAU,CAAC0B,eAAe,EAAE;MAC5E,OAAO,CACL,KAAIV,wBAAU,EACZb,SAAS,CAACE,YAAY,CAACU,aAAa,CAACM,IAAI,CAACV,OAAO,CAAC,CAAC,EACnDL,UAAU,EACVW,SAAS,EACTd,SAAS,CAACO,eAAe,CAACC,OAAO,CAAC,CACpC,CAAC,CACF;IACH;IAEA,OAAO,EAAE;EACX;EAEA,MAAMgB,SAASA,CAAC7B,IAAuB,EAAE8B,OAA+B,EAAE;IACxE,MAAMC,QAAQ,GAAGD,OAAO,CAACE,WAAW,CAAChC,IAAI,CAAC;IAE1C,OAAO,KAAIiC,wCAAmB,EAACF,QAAQ,EAAE/B,IAAI,CAACa,OAAO,CAAC,CAAC,EAAEb,IAAI,CAACC,IAAI,CAACiC,QAAQ,CAAC,CAAC,CAAC;EAChF;AACF;AAACC,OAAA,CAAArC,4BAAA,GAAAA,4BAAA"}
1
+ {"version":3,"names":["_typescript","data","require","_semanticsEntities","_identifier","ImportDeclarationTransformer","predicate","node","kind","SyntaxKind","ImportDeclaration","getIdentifiers","importDec","importClause","sourceFile","getSourceFile","fileName","rawSourceFilePath","moduleSpecifier","getText","sourceFilePath","substring","length","namedBindings","Identifier","undefined","NamedImports","elements","map","name","propertyName","id","alias","identifier","NamespaceImport","transform","context","location","getLocation","UnImplementedSchema","toString","exports"],"sources":["import-declaration.ts"],"sourcesContent":["import { ImportDeclaration, Node, SyntaxKind } from 'typescript';\nimport { UnImplementedSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class ImportDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.ImportDeclaration;\n }\n\n async getIdentifiers(importDec: ImportDeclaration): Promise<Identifier[]> {\n if (!importDec.importClause) return [];\n\n const sourceFile = importDec.getSourceFile().fileName;\n const rawSourceFilePath = importDec.moduleSpecifier.getText();\n const sourceFilePath = rawSourceFilePath.substring(1, rawSourceFilePath.length - 1);\n\n // import A from 'a'\n if (!importDec.importClause.namedBindings) {\n return [new Identifier(importDec.importClause.getText(), sourceFile, undefined, sourceFilePath)];\n }\n\n // import { A } from 'a'\n if (importDec.importClause.namedBindings?.kind === SyntaxKind.NamedImports) {\n const { elements } = importDec.importClause.namedBindings;\n\n return elements.map(({ name, propertyName }) => {\n const id = propertyName?.getText() || name.getText();\n const alias = (propertyName && name.getText()) || undefined;\n const identifier = new Identifier(id, sourceFile, alias, sourceFilePath);\n return identifier;\n });\n }\n\n // import * as A from 'a';\n if (importDec.importClause.namedBindings.kind === SyntaxKind.NamespaceImport) {\n return [\n new Identifier(\n importDec.importClause.namedBindings.name.getText(),\n sourceFile,\n undefined,\n importDec.moduleSpecifier.getText()\n ),\n ];\n }\n\n return [];\n }\n\n async transform(node: ImportDeclaration, context: SchemaExtractorContext) {\n const location = context.getLocation(node);\n\n return new UnImplementedSchema(location, node.getText(), node.kind.toString());\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMI,4BAA4B,CAA8B;EACrEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACC,iBAAiB;EACnD;EAEA,MAAMC,cAAcA,CAACC,SAA4B,EAAyB;IACxE,IAAI,CAACA,SAAS,CAACC,YAAY,EAAE,OAAO,EAAE;IAEtC,MAAMC,UAAU,GAAGF,SAAS,CAACG,aAAa,CAAC,CAAC,CAACC,QAAQ;IACrD,MAAMC,iBAAiB,GAAGL,SAAS,CAACM,eAAe,CAACC,OAAO,CAAC,CAAC;IAC7D,MAAMC,cAAc,GAAGH,iBAAiB,CAACI,SAAS,CAAC,CAAC,EAAEJ,iBAAiB,CAACK,MAAM,GAAG,CAAC,CAAC;;IAEnF;IACA,IAAI,CAACV,SAAS,CAACC,YAAY,CAACU,aAAa,EAAE;MACzC,OAAO,CAAC,KAAIC,wBAAU,EAACZ,SAAS,CAACC,YAAY,CAACM,OAAO,CAAC,CAAC,EAAEL,UAAU,EAAEW,SAAS,EAAEL,cAAc,CAAC,CAAC;IAClG;;IAEA;IACA,IAAIR,SAAS,CAACC,YAAY,CAACU,aAAa,EAAEf,IAAI,KAAKC,wBAAU,CAACiB,YAAY,EAAE;MAC1E,MAAM;QAAEC;MAAS,CAAC,GAAGf,SAAS,CAACC,YAAY,CAACU,aAAa;MAEzD,OAAOI,QAAQ,CAACC,GAAG,CAAC,CAAC;QAAEC,IAAI;QAAEC;MAAa,CAAC,KAAK;QAC9C,MAAMC,EAAE,GAAGD,YAAY,EAAEX,OAAO,CAAC,CAAC,IAAIU,IAAI,CAACV,OAAO,CAAC,CAAC;QACpD,MAAMa,KAAK,GAAIF,YAAY,IAAID,IAAI,CAACV,OAAO,CAAC,CAAC,IAAKM,SAAS;QAC3D,MAAMQ,UAAU,GAAG,KAAIT,wBAAU,EAACO,EAAE,EAAEjB,UAAU,EAAEkB,KAAK,EAAEZ,cAAc,CAAC;QACxE,OAAOa,UAAU;MACnB,CAAC,CAAC;IACJ;;IAEA;IACA,IAAIrB,SAAS,CAACC,YAAY,CAACU,aAAa,CAACf,IAAI,KAAKC,wBAAU,CAACyB,eAAe,EAAE;MAC5E,OAAO,CACL,KAAIV,wBAAU,EACZZ,SAAS,CAACC,YAAY,CAACU,aAAa,CAACM,IAAI,CAACV,OAAO,CAAC,CAAC,EACnDL,UAAU,EACVW,SAAS,EACTb,SAAS,CAACM,eAAe,CAACC,OAAO,CAAC,CACpC,CAAC,CACF;IACH;IAEA,OAAO,EAAE;EACX;EAEA,MAAMgB,SAASA,CAAC5B,IAAuB,EAAE6B,OAA+B,EAAE;IACxE,MAAMC,QAAQ,GAAGD,OAAO,CAACE,WAAW,CAAC/B,IAAI,CAAC;IAE1C,OAAO,KAAIgC,wCAAmB,EAACF,QAAQ,EAAE9B,IAAI,CAACY,OAAO,CAAC,CAAC,EAAEZ,IAAI,CAACC,IAAI,CAACgC,QAAQ,CAAC,CAAC,CAAC;EAChF;AACF;AAACC,OAAA,CAAApC,4BAAA,GAAAA,4BAAA"}
@@ -68,12 +68,11 @@ class InterfaceDeclarationTransformer {
68
68
  });
69
69
  }
70
70
  async transform(interfaceDec, context) {
71
- var _interfaceDec$typePar;
72
71
  const members = await (0, _pMapSeries().default)(interfaceDec.members, member => context.computeSchema(member));
73
72
  const doc = await context.jsDocToDocSchema(interfaceDec);
74
73
  const signature = interfaceDec.name ? await context.getQuickInfoDisplayString(interfaceDec.name) : undefined;
75
74
  const extendsNodes = await this.getExpressionWithTypeArgs(interfaceDec, context);
76
- const typeParameters = (_interfaceDec$typePar = interfaceDec.typeParameters) === null || _interfaceDec$typePar === void 0 ? void 0 : _interfaceDec$typePar.map(typeParam => {
75
+ const typeParameters = interfaceDec.typeParameters?.map(typeParam => {
77
76
  return typeParam.name.getText();
78
77
  });
79
78
  if (!signature) {
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","require","_pMapSeries","_interopRequireDefault","_semanticsEntities","_identifier","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","InterfaceDeclarationTransformer","predicate","node","kind","SyntaxKind","InterfaceDeclaration","getIdentifiers","Identifier","name","getText","getSourceFile","fileName","getExpressionWithTypeArgs","context","heritageClauses","pMapSeries","heritageClause","token","ExtendsKeyword","flatMap","h","types","map","type","expressionWithTypeArgs","typeArguments","expression","typeArgsNodes","computeSchema","location","getLocation","expressionNode","visitDefinition","UnresolvedSchema","ExpressionWithTypeArgumentsSchema","transform","interfaceDec","_interfaceDec$typePar","members","member","doc","jsDocToDocSchema","signature","getQuickInfoDisplayString","undefined","extendsNodes","typeParameters","typeParam","Error","InterfaceSchema","exports"],"sources":["interface-declaration.ts"],"sourcesContent":["import ts, { Node, InterfaceDeclaration, SyntaxKind } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport {\n ExpressionWithTypeArgumentsSchema,\n InterfaceSchema,\n UnresolvedSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class InterfaceDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.InterfaceDeclaration;\n }\n\n async getIdentifiers(node: InterfaceDeclaration): Promise<Identifier[]> {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n private async getExpressionWithTypeArgs(node: InterfaceDeclaration, context: SchemaExtractorContext) {\n if (!node.heritageClauses) return [];\n\n return pMapSeries(\n node.heritageClauses\n .filter((heritageClause: ts.HeritageClause) => heritageClause.token === SyntaxKind.ExtendsKeyword)\n .flatMap((h: ts.HeritageClause) => {\n const { types } = h;\n const name = h.getText();\n return types.map((type) => ({ ...type, name }));\n }),\n async (expressionWithTypeArgs: ts.ExpressionWithTypeArguments & { name: string }) => {\n const { typeArguments, expression, name } = expressionWithTypeArgs;\n const typeArgsNodes = typeArguments ? await pMapSeries(typeArguments, (t) => context.computeSchema(t)) : [];\n const location = context.getLocation(expression);\n const expressionNode =\n (await context.visitDefinition(expression)) || new UnresolvedSchema(location, expression.getText());\n return new ExpressionWithTypeArgumentsSchema(typeArgsNodes, expressionNode, name, location);\n }\n );\n }\n\n async transform(interfaceDec: InterfaceDeclaration, context: SchemaExtractorContext) {\n const members = await pMapSeries(interfaceDec.members, (member) => context.computeSchema(member));\n const doc = await context.jsDocToDocSchema(interfaceDec);\n const signature = interfaceDec.name ? await context.getQuickInfoDisplayString(interfaceDec.name) : undefined;\n const extendsNodes = await this.getExpressionWithTypeArgs(interfaceDec, context);\n const typeParameters = interfaceDec.typeParameters?.map((typeParam) => {\n return typeParam.name.getText();\n });\n\n if (!signature) {\n throw Error(`Missing signature for interface ${interfaceDec.name.getText()} declaration`);\n }\n\n return new InterfaceSchema(\n context.getLocation(interfaceDec),\n interfaceDec.name.getText(),\n signature,\n extendsNodes,\n members,\n doc,\n typeParameters\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_typescript","data","require","_pMapSeries","_interopRequireDefault","_semanticsEntities","_identifier","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","InterfaceDeclarationTransformer","predicate","node","kind","SyntaxKind","InterfaceDeclaration","getIdentifiers","Identifier","name","getText","getSourceFile","fileName","getExpressionWithTypeArgs","context","heritageClauses","pMapSeries","heritageClause","token","ExtendsKeyword","flatMap","h","types","map","type","expressionWithTypeArgs","typeArguments","expression","typeArgsNodes","computeSchema","location","getLocation","expressionNode","visitDefinition","UnresolvedSchema","ExpressionWithTypeArgumentsSchema","transform","interfaceDec","members","member","doc","jsDocToDocSchema","signature","getQuickInfoDisplayString","undefined","extendsNodes","typeParameters","typeParam","Error","InterfaceSchema","exports"],"sources":["interface-declaration.ts"],"sourcesContent":["import ts, { Node, InterfaceDeclaration, SyntaxKind } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport {\n ExpressionWithTypeArgumentsSchema,\n InterfaceSchema,\n UnresolvedSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class InterfaceDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.InterfaceDeclaration;\n }\n\n async getIdentifiers(node: InterfaceDeclaration): Promise<Identifier[]> {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n private async getExpressionWithTypeArgs(node: InterfaceDeclaration, context: SchemaExtractorContext) {\n if (!node.heritageClauses) return [];\n\n return pMapSeries(\n node.heritageClauses\n .filter((heritageClause: ts.HeritageClause) => heritageClause.token === SyntaxKind.ExtendsKeyword)\n .flatMap((h: ts.HeritageClause) => {\n const { types } = h;\n const name = h.getText();\n return types.map((type) => ({ ...type, name }));\n }),\n async (expressionWithTypeArgs: ts.ExpressionWithTypeArguments & { name: string }) => {\n const { typeArguments, expression, name } = expressionWithTypeArgs;\n const typeArgsNodes = typeArguments ? await pMapSeries(typeArguments, (t) => context.computeSchema(t)) : [];\n const location = context.getLocation(expression);\n const expressionNode =\n (await context.visitDefinition(expression)) || new UnresolvedSchema(location, expression.getText());\n return new ExpressionWithTypeArgumentsSchema(typeArgsNodes, expressionNode, name, location);\n }\n );\n }\n\n async transform(interfaceDec: InterfaceDeclaration, context: SchemaExtractorContext) {\n const members = await pMapSeries(interfaceDec.members, (member) => context.computeSchema(member));\n const doc = await context.jsDocToDocSchema(interfaceDec);\n const signature = interfaceDec.name ? await context.getQuickInfoDisplayString(interfaceDec.name) : undefined;\n const extendsNodes = await this.getExpressionWithTypeArgs(interfaceDec, context);\n const typeParameters = interfaceDec.typeParameters?.map((typeParam) => {\n return typeParam.name.getText();\n });\n\n if (!signature) {\n throw Error(`Missing signature for interface ${interfaceDec.name.getText()} declaration`);\n }\n\n return new InterfaceSchema(\n context.getLocation(interfaceDec),\n interfaceDec.name.getText(),\n signature,\n extendsNodes,\n members,\n doc,\n typeParameters\n );\n }\n}\n"],"mappings":"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"}
@@ -90,8 +90,7 @@ class ParameterTransformer {
90
90
  static async getObjectBindingNodes(param, paramType, context) {
91
91
  if (param.name.kind !== _typescript().SyntaxKind.ObjectBindingPattern) return undefined;
92
92
  return (0, _pMapSeries().default)(param.name.elements, async elem => {
93
- var _paramType$findNode;
94
- const existing = (_paramType$findNode = paramType.findNode) === null || _paramType$findNode === void 0 ? void 0 : _paramType$findNode.call(paramType, node => {
93
+ const existing = paramType.findNode?.(node => {
95
94
  return node.name === elem.name.getText().trim();
96
95
  });
97
96
  if (existing && existing.__schema !== 'InferenceTypeSchema') {
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","_interopRequireWildcard","require","_semanticsEntities","_pMapSeries","_interopRequireDefault","_parseTypeFromQuickInfo","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ParameterTransformer","predicate","node","kind","ts","SyntaxKind","Parameter","getIdentifiers","transform","context","type","getType","ParameterSchema","getLocation","getName","Boolean","questionToken","initializer","getText","undefined","getObjectBindingNodes","dotDotDotToken","param","isIdentifier","name","elements","map","elem","elementsStr","join","ArrayBindingPattern","computeSchema","info","getQuickInfo","parsed","parseTypeFromQuickInfo","InferenceTypeSchema","pMapSeries","TupleTypeSchema","ObjectBindingPattern","TypeLiteralSchema","Error","paramType","_paramType$findNode","existing","findNode","trim","__schema","defaultValue","exports"],"sources":["parameter.ts"],"sourcesContent":["import ts, {\n BindingElement,\n isIdentifier,\n Node,\n ParameterDeclaration,\n SyntaxKind,\n ArrayBindingElement,\n} from 'typescript';\nimport {\n InferenceTypeSchema,\n ParameterSchema,\n SchemaNode,\n TupleTypeSchema,\n TypeLiteralSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class ParameterTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.Parameter;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: ParameterDeclaration, context: SchemaExtractorContext) {\n const type = await this.getType(node, context);\n return new ParameterSchema(\n context.getLocation(node),\n ParameterTransformer.getName(node),\n type,\n Boolean(node.questionToken) || Boolean(node.initializer),\n node.initializer ? node.initializer.getText() : undefined,\n undefined,\n await ParameterTransformer.getObjectBindingNodes(node, type, context),\n Boolean(node.dotDotDotToken)\n );\n }\n\n static getName(param: ParameterDeclaration): string {\n if (isIdentifier(param.name)) {\n return param.name.getText();\n }\n // it's binding pattern, either an array or an object\n const elements = param.name.elements.map((elem) => elem.getText());\n const elementsStr = elements.join(', ');\n if (param.name.kind === SyntaxKind.ArrayBindingPattern) {\n return `[ ${elementsStr} ]`;\n }\n // it's an object binding\n return `{ ${elementsStr} }`;\n }\n\n async getType(param: ParameterDeclaration, context: SchemaExtractorContext): Promise<SchemaNode> {\n if (param.type) {\n return context.computeSchema(param.type);\n }\n\n if (isIdentifier(param.name)) {\n const info = await context.getQuickInfo(param.name);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed);\n }\n // it's binding pattern, either an array or an object\n if (param.name.kind === SyntaxKind.ArrayBindingPattern) {\n const elements = await pMapSeries(param.name.elements, async (elem: ArrayBindingElement) => {\n const info = await context.getQuickInfo(elem);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed);\n });\n return new TupleTypeSchema(context.getLocation(param), elements);\n }\n if (param.name.kind === SyntaxKind.ObjectBindingPattern) {\n const elements = await pMapSeries(param.name.elements, async (elem: BindingElement) => {\n const info = await context.getQuickInfo(elem.name);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed, elem.name.getText());\n });\n return new TypeLiteralSchema(context.getLocation(param), elements);\n }\n throw new Error(`unknown param type`);\n }\n\n static async getObjectBindingNodes(\n param: ParameterDeclaration,\n paramType: SchemaNode,\n context: SchemaExtractorContext\n ): Promise<SchemaNode[] | undefined> {\n if (param.name.kind !== SyntaxKind.ObjectBindingPattern) return undefined;\n return pMapSeries(param.name.elements, async (elem: BindingElement) => {\n const existing = paramType.findNode?.((node) => {\n return node.name === elem.name.getText().trim();\n });\n if (existing && existing.__schema !== 'InferenceTypeSchema') {\n return existing;\n }\n const info = await context.getQuickInfo(elem.name);\n const parsed = info ? parseTypeFromQuickInfo(info) : elem.getText();\n const defaultValue = elem.initializer ? elem.initializer.getText() : undefined;\n return new InferenceTypeSchema(\n context.getLocation(elem.name),\n parsed,\n elem.name.getText(),\n defaultValue,\n Boolean(elem.dotDotDotToken)\n );\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_typescript","data","_interopRequireWildcard","require","_semanticsEntities","_pMapSeries","_interopRequireDefault","_parseTypeFromQuickInfo","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ParameterTransformer","predicate","node","kind","ts","SyntaxKind","Parameter","getIdentifiers","transform","context","type","getType","ParameterSchema","getLocation","getName","Boolean","questionToken","initializer","getText","undefined","getObjectBindingNodes","dotDotDotToken","param","isIdentifier","name","elements","map","elem","elementsStr","join","ArrayBindingPattern","computeSchema","info","getQuickInfo","parsed","parseTypeFromQuickInfo","InferenceTypeSchema","pMapSeries","TupleTypeSchema","ObjectBindingPattern","TypeLiteralSchema","Error","paramType","existing","findNode","trim","__schema","defaultValue","exports"],"sources":["parameter.ts"],"sourcesContent":["import ts, {\n BindingElement,\n isIdentifier,\n Node,\n ParameterDeclaration,\n SyntaxKind,\n ArrayBindingElement,\n} from 'typescript';\nimport {\n InferenceTypeSchema,\n ParameterSchema,\n SchemaNode,\n TupleTypeSchema,\n TypeLiteralSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class ParameterTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.Parameter;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n async transform(node: ParameterDeclaration, context: SchemaExtractorContext) {\n const type = await this.getType(node, context);\n return new ParameterSchema(\n context.getLocation(node),\n ParameterTransformer.getName(node),\n type,\n Boolean(node.questionToken) || Boolean(node.initializer),\n node.initializer ? node.initializer.getText() : undefined,\n undefined,\n await ParameterTransformer.getObjectBindingNodes(node, type, context),\n Boolean(node.dotDotDotToken)\n );\n }\n\n static getName(param: ParameterDeclaration): string {\n if (isIdentifier(param.name)) {\n return param.name.getText();\n }\n // it's binding pattern, either an array or an object\n const elements = param.name.elements.map((elem) => elem.getText());\n const elementsStr = elements.join(', ');\n if (param.name.kind === SyntaxKind.ArrayBindingPattern) {\n return `[ ${elementsStr} ]`;\n }\n // it's an object binding\n return `{ ${elementsStr} }`;\n }\n\n async getType(param: ParameterDeclaration, context: SchemaExtractorContext): Promise<SchemaNode> {\n if (param.type) {\n return context.computeSchema(param.type);\n }\n\n if (isIdentifier(param.name)) {\n const info = await context.getQuickInfo(param.name);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed);\n }\n // it's binding pattern, either an array or an object\n if (param.name.kind === SyntaxKind.ArrayBindingPattern) {\n const elements = await pMapSeries(param.name.elements, async (elem: ArrayBindingElement) => {\n const info = await context.getQuickInfo(elem);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed);\n });\n return new TupleTypeSchema(context.getLocation(param), elements);\n }\n if (param.name.kind === SyntaxKind.ObjectBindingPattern) {\n const elements = await pMapSeries(param.name.elements, async (elem: BindingElement) => {\n const info = await context.getQuickInfo(elem.name);\n const parsed = parseTypeFromQuickInfo(info);\n return new InferenceTypeSchema(context.getLocation(param), parsed, elem.name.getText());\n });\n return new TypeLiteralSchema(context.getLocation(param), elements);\n }\n throw new Error(`unknown param type`);\n }\n\n static async getObjectBindingNodes(\n param: ParameterDeclaration,\n paramType: SchemaNode,\n context: SchemaExtractorContext\n ): Promise<SchemaNode[] | undefined> {\n if (param.name.kind !== SyntaxKind.ObjectBindingPattern) return undefined;\n return pMapSeries(param.name.elements, async (elem: BindingElement) => {\n const existing = paramType.findNode?.((node) => {\n return node.name === elem.name.getText().trim();\n });\n if (existing && existing.__schema !== 'InferenceTypeSchema') {\n return existing;\n }\n const info = await context.getQuickInfo(elem.name);\n const parsed = info ? parseTypeFromQuickInfo(info) : elem.getText();\n const defaultValue = elem.initializer ? elem.initializer.getText() : undefined;\n return new InferenceTypeSchema(\n context.getLocation(elem.name),\n parsed,\n elem.name.getText(),\n defaultValue,\n Boolean(elem.dotDotDotToken)\n );\n });\n }\n}\n"],"mappings":"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"}
@@ -40,10 +40,9 @@ class PropertyDeclarationTransformer {
40
40
 
41
41
  // @todo - handle arrow function objects
42
42
  async transform(node, context) {
43
- var _info$body;
44
43
  const name = node.name.getText();
45
44
  const info = this.isComputedProperty(node) ? undefined : await context.getQuickInfo(node.name);
46
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || node.getText();
45
+ const displaySig = info?.body?.displayString || node.getText();
47
46
  const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
48
47
  const type = await context.resolveType(node, typeStr);
49
48
  const isOptional = Boolean(node.questionToken) || Boolean(node.initializer);
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","require","_semanticsEntities","_parseTypeFromQuickInfo","PropertyDeclarationTransformer","predicate","node","kind","SyntaxKind","PropertyDeclaration","PropertySignature","getIdentifiers","isComputedProperty","name","ComputedPropertyName","transform","context","_info$body","getText","info","undefined","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","isOptional","Boolean","questionToken","initializer","doc","jsDocToDocSchema","defaultValue","VariableLikeSchema","getLocation","exports"],"sources":["property-declaration.ts"],"sourcesContent":["import { Node, PropertyDeclaration, PropertySignature, SyntaxKind } from 'typescript';\nimport { VariableLikeSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class PropertyDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.PropertyDeclaration || node.kind === SyntaxKind.PropertySignature;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n // [computedName]: string\n private isComputedProperty(node: PropertyDeclaration | PropertySignature) {\n return node.name.kind === SyntaxKind.ComputedPropertyName;\n }\n\n // @todo - handle arrow function objects\n async transform(node: PropertyDeclaration | PropertySignature, context: SchemaExtractorContext) {\n const name = node.name.getText();\n const info = this.isComputedProperty(node) ? undefined : await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || node.getText();\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n const isOptional = Boolean(node.questionToken) || Boolean(node.initializer);\n const doc = await context.jsDocToDocSchema(node);\n const defaultValue = node.initializer ? node.initializer.getText() : undefined;\n return new VariableLikeSchema(context.getLocation(node), name, displaySig, type, isOptional, doc, defaultValue);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,wBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,uBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,MAAMI,8BAA8B,CAA8B;EACvEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACC,mBAAmB,IAAIH,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACE,iBAAiB;EACnG;EAEA,MAAMC,cAAcA,CAAA,EAA0B;IAC5C,OAAO,EAAE;EACX;;EAEA;EACQC,kBAAkBA,CAACN,IAA6C,EAAE;IACxE,OAAOA,IAAI,CAACO,IAAI,CAACN,IAAI,KAAKC,wBAAU,CAACM,oBAAoB;EAC3D;;EAEA;EACA,MAAMC,SAASA,CAACT,IAA6C,EAAEU,OAA+B,EAAE;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,IAAID,OAAO,CAACxB,IAAI,CAAC0B,WAAW,CAAC;IAC3E,MAAMC,GAAG,GAAG,MAAMjB,OAAO,CAACkB,gBAAgB,CAAC5B,IAAI,CAAC;IAChD,MAAM6B,YAAY,GAAG7B,IAAI,CAAC0B,WAAW,GAAG1B,IAAI,CAAC0B,WAAW,CAACd,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,EAAEI,GAAG,EAAEE,YAAY,CAAC;EACjH;AACF;AAACG,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","getText","info","undefined","getQuickInfo","displaySig","body","displayString","typeStr","parseTypeFromQuickInfo","type","resolveType","isOptional","Boolean","questionToken","initializer","doc","jsDocToDocSchema","defaultValue","VariableLikeSchema","getLocation","exports"],"sources":["property-declaration.ts"],"sourcesContent":["import { Node, PropertyDeclaration, PropertySignature, SyntaxKind } from 'typescript';\nimport { VariableLikeSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\n\nexport class PropertyDeclarationTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === SyntaxKind.PropertyDeclaration || node.kind === SyntaxKind.PropertySignature;\n }\n\n async getIdentifiers(): Promise<Identifier[]> {\n return [];\n }\n\n // [computedName]: string\n private isComputedProperty(node: PropertyDeclaration | PropertySignature) {\n return node.name.kind === SyntaxKind.ComputedPropertyName;\n }\n\n // @todo - handle arrow function objects\n async transform(node: PropertyDeclaration | PropertySignature, context: SchemaExtractorContext) {\n const name = node.name.getText();\n const info = this.isComputedProperty(node) ? undefined : await context.getQuickInfo(node.name);\n const displaySig = info?.body?.displayString || node.getText();\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(node, typeStr);\n const isOptional = Boolean(node.questionToken) || Boolean(node.initializer);\n const doc = await context.jsDocToDocSchema(node);\n const defaultValue = node.initializer ? node.initializer.getText() : undefined;\n return new VariableLikeSchema(context.getLocation(node), name, displaySig, type, isOptional, doc, defaultValue);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,wBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,uBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,MAAMI,8BAA8B,CAA8B;EACvEC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACC,mBAAmB,IAAIH,IAAI,CAACC,IAAI,KAAKC,wBAAU,CAACE,iBAAiB;EACnG;EAEA,MAAMC,cAAcA,CAAA,EAA0B;IAC5C,OAAO,EAAE;EACX;;EAEA;EACQC,kBAAkBA,CAACN,IAA6C,EAAE;IACxE,OAAOA,IAAI,CAACO,IAAI,CAACN,IAAI,KAAKC,wBAAU,CAACM,oBAAoB;EAC3D;;EAEA;EACA,MAAMC,SAASA,CAACT,IAA6C,EAAEU,OAA+B,EAAE;IAC9F,MAAMH,IAAI,GAAGP,IAAI,CAACO,IAAI,CAACI,OAAO,CAAC,CAAC;IAChC,MAAMC,IAAI,GAAG,IAAI,CAACN,kBAAkB,CAACN,IAAI,CAAC,GAAGa,SAAS,GAAG,MAAMH,OAAO,CAACI,YAAY,CAACd,IAAI,CAACO,IAAI,CAAC;IAC9F,MAAMQ,UAAU,GAAGH,IAAI,EAAEI,IAAI,EAAEC,aAAa,IAAIjB,IAAI,CAACW,OAAO,CAAC,CAAC;IAC9D,MAAMO,OAAO,GAAG,IAAAC,gDAAsB,EAACP,IAAI,CAAC;IAC5C,MAAMQ,IAAI,GAAG,MAAMV,OAAO,CAACW,WAAW,CAACrB,IAAI,EAAEkB,OAAO,CAAC;IACrD,MAAMI,UAAU,GAAGC,OAAO,CAACvB,IAAI,CAACwB,aAAa,CAAC,IAAID,OAAO,CAACvB,IAAI,CAACyB,WAAW,CAAC;IAC3E,MAAMC,GAAG,GAAG,MAAMhB,OAAO,CAACiB,gBAAgB,CAAC3B,IAAI,CAAC;IAChD,MAAM4B,YAAY,GAAG5B,IAAI,CAACyB,WAAW,GAAGzB,IAAI,CAACyB,WAAW,CAACd,OAAO,CAAC,CAAC,GAAGE,SAAS;IAC9E,OAAO,KAAIgB,uCAAkB,EAACnB,OAAO,CAACoB,WAAW,CAAC9B,IAAI,CAAC,EAAEO,IAAI,EAAEQ,UAAU,EAAEK,IAAI,EAAEE,UAAU,EAAEI,GAAG,EAAEE,YAAY,CAAC;EACjH;AACF;AAACG,OAAA,CAAAjC,8BAAA,GAAAA,8BAAA"}
@@ -83,9 +83,8 @@ class SourceFileTransformer {
83
83
  */
84
84
  listExports(ast) {
85
85
  return ast.statements.filter(statement => {
86
- var _statement$modifiers;
87
86
  if (statement.kind === _typescript().default.SyntaxKind.ExportDeclaration || statement.kind === _typescript().default.SyntaxKind.ExportAssignment) return true;
88
- const isExport = Boolean((_statement$modifiers = statement.modifiers) === null || _statement$modifiers === void 0 ? void 0 : _statement$modifiers.find(modifier => {
87
+ const isExport = Boolean(statement.modifiers?.find(modifier => {
89
88
  return modifier.kind === _typescript().default.SyntaxKind.ExportKeyword;
90
89
  }));
91
90
  return isExport;
@@ -93,10 +92,9 @@ class SourceFileTransformer {
93
92
  }
94
93
  listInternalNodes(ast) {
95
94
  return ast.statements.filter(statement => {
96
- var _statement$modifiers2;
97
- if (!(statement.kind === _typescript().default.SyntaxKind.ExportDeclaration || statement.kind === _typescript().default.SyntaxKind.ExportAssignment) && !((_statement$modifiers2 = statement.modifiers) !== null && _statement$modifiers2 !== void 0 && _statement$modifiers2.find(modifier => {
95
+ if (!(statement.kind === _typescript().default.SyntaxKind.ExportDeclaration || statement.kind === _typescript().default.SyntaxKind.ExportAssignment) && !statement.modifiers?.find(modifier => {
98
96
  return modifier.kind === _typescript().default.SyntaxKind.ExportKeyword;
99
- }))) {
97
+ })) {
100
98
  return true;
101
99
  }
102
100
  return false;
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_lodash","_pMapSeries","_semanticsEntities","_exportIdentifier","obj","__esModule","default","SourceFileTransformer","predicate","node","kind","ts","SyntaxKind","SourceFile","getIdentifiers","sourceFile","context","exports","listExports","internals","listInternalNodes","exportIdentifiers","flatten","pMapSeries","reduce","acc","current","item","find","exportIdentifier","isEqual","push","ExportIdentifier","id","filePath","aliasId","sourceFilePath","internalIdentifiers","internalIdentifier","identifiers","transform","filter","internal","ImportDeclaration","exportDeclarations","exportNode","computeSchema","internalDeclarations","internalNode","ModuleSchema","getLocation","ast","statements","statement","_statement$modifiers","ExportDeclaration","ExportAssignment","isExport","Boolean","modifiers","modifier","ExportKeyword","_statement$modifiers2"],"sources":["source-file-transformer.ts"],"sourcesContent":["import ts, { Node, SourceFile } from 'typescript';\nimport { flatten } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport { ModuleSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class SourceFileTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.SourceFile;\n }\n\n async getIdentifiers(sourceFile: SourceFile, context: SchemaExtractorContext) {\n const exports = this.listExports(sourceFile);\n const internals = this.listInternalNodes(sourceFile);\n\n // change to pMap series\n const exportIdentifiers = flatten(\n await pMapSeries(exports, (node) => {\n return context.getIdentifiers(node);\n })\n ).reduce<ExportIdentifier[]>((acc, current) => {\n const item = acc.find((exportIdentifier) => exportIdentifier.isEqual(current));\n if (!item) acc.push(new ExportIdentifier(current.id, current.filePath, current.aliasId, current.sourceFilePath));\n return acc;\n }, []);\n\n const internalIdentifiers = flatten(\n await pMapSeries(internals, (node) => {\n return context.getIdentifiers(node);\n })\n ).reduce<Identifier[]>((acc, current) => {\n const item = acc.find((internalIdentifier) => internalIdentifier.isEqual(current));\n if (!item) acc.push(current);\n return acc;\n }, []);\n\n const identifiers = [...exportIdentifiers, ...internalIdentifiers];\n\n return identifiers;\n }\n\n async transform(node: SourceFile, context: SchemaExtractorContext) {\n const exports = this.listExports(node);\n const internals = this.listInternalNodes(node).filter(\n (internal) => internal.kind !== ts.SyntaxKind.ImportDeclaration\n );\n\n const exportDeclarations = await pMapSeries(exports, (exportNode) => {\n return context.computeSchema(exportNode);\n });\n\n const internalDeclarations = await pMapSeries(internals, (internalNode) => {\n return context.computeSchema(internalNode);\n });\n\n return new ModuleSchema(context.getLocation(node), exportDeclarations, internalDeclarations);\n }\n\n /**\n * list all exports of a source file.\n */\n private listExports(ast: SourceFile): Node[] {\n return ast.statements.filter((statement) => {\n if (statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment)\n return true;\n const isExport = Boolean(\n statement.modifiers?.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n })\n );\n return isExport;\n });\n }\n\n private listInternalNodes(ast: SourceFile): Node[] {\n return ast.statements.filter((statement) => {\n if (\n !(statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment) &&\n !statement.modifiers?.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n })\n ) {\n return true;\n }\n\n return false;\n });\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,mBAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,kBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAM,kBAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,iBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAwD,SAAAC,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAIjD,MAAMG,qBAAqB,CAA8B;EAC9DC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,UAAU;EAC/C;EAEA,MAAMC,cAAcA,CAACC,UAAsB,EAAEC,OAA+B,EAAE;IAC5E,MAAMC,OAAO,GAAG,IAAI,CAACC,WAAW,CAACH,UAAU,CAAC;IAC5C,MAAMI,SAAS,GAAG,IAAI,CAACC,iBAAiB,CAACL,UAAU,CAAC;;IAEpD;IACA,MAAMM,iBAAiB,GAAG,IAAAC,iBAAO,EAC/B,MAAM,IAAAC,qBAAU,EAACN,OAAO,EAAGR,IAAI,IAAK;MAClC,OAAOO,OAAO,CAACF,cAAc,CAACL,IAAI,CAAC;IACrC,CAAC,CACH,CAAC,CAACe,MAAM,CAAqB,CAACC,GAAG,EAAEC,OAAO,KAAK;MAC7C,MAAMC,IAAI,GAAGF,GAAG,CAACG,IAAI,CAAEC,gBAAgB,IAAKA,gBAAgB,CAACC,OAAO,CAACJ,OAAO,CAAC,CAAC;MAC9E,IAAI,CAACC,IAAI,EAAEF,GAAG,CAACM,IAAI,CAAC,KAAIC,oCAAgB,EAACN,OAAO,CAACO,EAAE,EAAEP,OAAO,CAACQ,QAAQ,EAAER,OAAO,CAACS,OAAO,EAAET,OAAO,CAACU,cAAc,CAAC,CAAC;MAChH,OAAOX,GAAG;IACZ,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMY,mBAAmB,GAAG,IAAAf,iBAAO,EACjC,MAAM,IAAAC,qBAAU,EAACJ,SAAS,EAAGV,IAAI,IAAK;MACpC,OAAOO,OAAO,CAACF,cAAc,CAACL,IAAI,CAAC;IACrC,CAAC,CACH,CAAC,CAACe,MAAM,CAAe,CAACC,GAAG,EAAEC,OAAO,KAAK;MACvC,MAAMC,IAAI,GAAGF,GAAG,CAACG,IAAI,CAAEU,kBAAkB,IAAKA,kBAAkB,CAACR,OAAO,CAACJ,OAAO,CAAC,CAAC;MAClF,IAAI,CAACC,IAAI,EAAEF,GAAG,CAACM,IAAI,CAACL,OAAO,CAAC;MAC5B,OAAOD,GAAG;IACZ,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMc,WAAW,GAAG,CAAC,GAAGlB,iBAAiB,EAAE,GAAGgB,mBAAmB,CAAC;IAElE,OAAOE,WAAW;EACpB;EAEA,MAAMC,SAASA,CAAC/B,IAAgB,EAAEO,OAA+B,EAAE;IACjE,MAAMC,OAAO,GAAG,IAAI,CAACC,WAAW,CAACT,IAAI,CAAC;IACtC,MAAMU,SAAS,GAAG,IAAI,CAACC,iBAAiB,CAACX,IAAI,CAAC,CAACgC,MAAM,CAClDC,QAAQ,IAAKA,QAAQ,CAAChC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAAC+B,iBAChD,CAAC;IAED,MAAMC,kBAAkB,GAAG,MAAM,IAAArB,qBAAU,EAACN,OAAO,EAAG4B,UAAU,IAAK;MACnE,OAAO7B,OAAO,CAAC8B,aAAa,CAACD,UAAU,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAME,oBAAoB,GAAG,MAAM,IAAAxB,qBAAU,EAACJ,SAAS,EAAG6B,YAAY,IAAK;MACzE,OAAOhC,OAAO,CAAC8B,aAAa,CAACE,YAAY,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAO,KAAIC,iCAAY,EAACjC,OAAO,CAACkC,WAAW,CAACzC,IAAI,CAAC,EAAEmC,kBAAkB,EAAEG,oBAAoB,CAAC;EAC9F;;EAEA;AACF;AACA;EACU7B,WAAWA,CAACiC,GAAe,EAAU;IAC3C,OAAOA,GAAG,CAACC,UAAU,CAACX,MAAM,CAAEY,SAAS,IAAK;MAAA,IAAAC,oBAAA;MAC1C,IAAID,SAAS,CAAC3C,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAAC2C,iBAAiB,IAAIF,SAAS,CAAC3C,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAAC4C,gBAAgB,EACzG,OAAO,IAAI;MACb,MAAMC,QAAQ,GAAGC,OAAO,EAAAJ,oBAAA,GACtBD,SAAS,CAACM,SAAS,cAAAL,oBAAA,uBAAnBA,oBAAA,CAAqB1B,IAAI,CAAEgC,QAAQ,IAAK;QACtC,OAAOA,QAAQ,CAAClD,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACiD,aAAa;MACtD,CAAC,CACH,CAAC;MACD,OAAOJ,QAAQ;IACjB,CAAC,CAAC;EACJ;EAEQrC,iBAAiBA,CAAC+B,GAAe,EAAU;IACjD,OAAOA,GAAG,CAACC,UAAU,CAACX,MAAM,CAAEY,SAAS,IAAK;MAAA,IAAAS,qBAAA;MAC1C,IACE,EAAET,SAAS,CAAC3C,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAAC2C,iBAAiB,IAAIF,SAAS,CAAC3C,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAAC4C,gBAAgB,CAAC,IAC1G,GAAAM,qBAAA,GAACT,SAAS,CAACM,SAAS,cAAAG,qBAAA,eAAnBA,qBAAA,CAAqBlC,IAAI,CAAEgC,QAAQ,IAAK;QACvC,OAAOA,QAAQ,CAAClD,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACiD,aAAa;MACtD,CAAC,CAAC,GACF;QACA,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC,CAAC;EACJ;AACF;AAAC5C,OAAA,CAAAV,qBAAA,GAAAA,qBAAA"}
1
+ {"version":3,"names":["_typescript","data","_interopRequireDefault","require","_lodash","_pMapSeries","_semanticsEntities","_exportIdentifier","obj","__esModule","default","SourceFileTransformer","predicate","node","kind","ts","SyntaxKind","SourceFile","getIdentifiers","sourceFile","context","exports","listExports","internals","listInternalNodes","exportIdentifiers","flatten","pMapSeries","reduce","acc","current","item","find","exportIdentifier","isEqual","push","ExportIdentifier","id","filePath","aliasId","sourceFilePath","internalIdentifiers","internalIdentifier","identifiers","transform","filter","internal","ImportDeclaration","exportDeclarations","exportNode","computeSchema","internalDeclarations","internalNode","ModuleSchema","getLocation","ast","statements","statement","ExportDeclaration","ExportAssignment","isExport","Boolean","modifiers","modifier","ExportKeyword"],"sources":["source-file-transformer.ts"],"sourcesContent":["import ts, { Node, SourceFile } from 'typescript';\nimport { flatten } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport { ModuleSchema } from '@teambit/semantics.entities.semantic-schema';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { Identifier } from '../identifier';\n\nexport class SourceFileTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.SourceFile;\n }\n\n async getIdentifiers(sourceFile: SourceFile, context: SchemaExtractorContext) {\n const exports = this.listExports(sourceFile);\n const internals = this.listInternalNodes(sourceFile);\n\n // change to pMap series\n const exportIdentifiers = flatten(\n await pMapSeries(exports, (node) => {\n return context.getIdentifiers(node);\n })\n ).reduce<ExportIdentifier[]>((acc, current) => {\n const item = acc.find((exportIdentifier) => exportIdentifier.isEqual(current));\n if (!item) acc.push(new ExportIdentifier(current.id, current.filePath, current.aliasId, current.sourceFilePath));\n return acc;\n }, []);\n\n const internalIdentifiers = flatten(\n await pMapSeries(internals, (node) => {\n return context.getIdentifiers(node);\n })\n ).reduce<Identifier[]>((acc, current) => {\n const item = acc.find((internalIdentifier) => internalIdentifier.isEqual(current));\n if (!item) acc.push(current);\n return acc;\n }, []);\n\n const identifiers = [...exportIdentifiers, ...internalIdentifiers];\n\n return identifiers;\n }\n\n async transform(node: SourceFile, context: SchemaExtractorContext) {\n const exports = this.listExports(node);\n const internals = this.listInternalNodes(node).filter(\n (internal) => internal.kind !== ts.SyntaxKind.ImportDeclaration\n );\n\n const exportDeclarations = await pMapSeries(exports, (exportNode) => {\n return context.computeSchema(exportNode);\n });\n\n const internalDeclarations = await pMapSeries(internals, (internalNode) => {\n return context.computeSchema(internalNode);\n });\n\n return new ModuleSchema(context.getLocation(node), exportDeclarations, internalDeclarations);\n }\n\n /**\n * list all exports of a source file.\n */\n private listExports(ast: SourceFile): Node[] {\n return ast.statements.filter((statement) => {\n if (statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment)\n return true;\n const isExport = Boolean(\n statement.modifiers?.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n })\n );\n return isExport;\n });\n }\n\n private listInternalNodes(ast: SourceFile): Node[] {\n return ast.statements.filter((statement) => {\n if (\n !(statement.kind === ts.SyntaxKind.ExportDeclaration || statement.kind === ts.SyntaxKind.ExportAssignment) &&\n !statement.modifiers?.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n })\n ) {\n return true;\n }\n\n return false;\n });\n }\n}\n"],"mappings":"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"}
@@ -84,13 +84,11 @@ function simpleTag(tag, tagName, context) {
84
84
  return new (_semanticsEntities().TagSchema)(context.getLocation(tag), tagName, (0, _typescript().getTextOfJSDocComment)(tag.comment));
85
85
  }
86
86
  async function returnTag(tag, context) {
87
- var _tag$typeExpression, _tag$typeExpression2;
88
- const type = (_tag$typeExpression = tag.typeExpression) !== null && _tag$typeExpression !== void 0 && _tag$typeExpression.type ? await context.computeSchema((_tag$typeExpression2 = tag.typeExpression) === null || _tag$typeExpression2 === void 0 ? void 0 : _tag$typeExpression2.type) : undefined;
87
+ const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;
89
88
  return new (_semanticsEntities().ReturnTagSchema)(context.getLocation(tag), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
90
89
  }
91
90
  async function propertyLikeTag(tag, context) {
92
- var _tag$typeExpression3, _tag$typeExpression4;
93
- const type = (_tag$typeExpression3 = tag.typeExpression) !== null && _tag$typeExpression3 !== void 0 && _tag$typeExpression3.type ? await context.computeSchema((_tag$typeExpression4 = tag.typeExpression) === null || _tag$typeExpression4 === void 0 ? void 0 : _tag$typeExpression4.type) : undefined;
91
+ const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;
94
92
  return new (_semanticsEntities().PropertyLikeTagSchema)(context.getLocation(tag), tag.name.getText(), (0, _typescript().getTextOfJSDocComment)(tag.comment), type);
95
93
  }
96
94
 
@@ -1 +1 @@
1
- {"version":3,"names":["_typescript","data","require","_semanticsEntities","tagParser","tag","context","formatter","kind","SyntaxKind","JSDocReturnTag","returnTag","JSDocPropertyTag","propertyLikeTag","JSDocParameterTag","JSDocAugmentsTag","simpleTag","TagName","augments","JSDocAuthorTag","author","JSDocClassTag","class","JSDocCallbackTag","callback","JSDocPublicTag","public","JSDocPrivateTag","private","JSDocProtectedTag","protected","JSDocReadonlyTag","readonly","JSDocOverrideTag","override","JSDocDeprecatedTag","deprecated","JSDocSeeTag","see","JSDocEnumTag","enum","JSDocThisTag","this","JSDocTypeTag","type","JSDocTemplateTag","template","JSDocTypedefTag","typedef","JSDocImplementsTag","implements","tagName","getText","getSourceFile","comment","getTextOfJSDocComment","formattedComment","formatSnippet","TagSchema","getLocation","e","_tag$typeExpression","_tag$typeExpression2","typeExpression","computeSchema","undefined","ReturnTagSchema","_tag$typeExpression3","_tag$typeExpression4","PropertyLikeTagSchema","name"],"sources":["jsdoc-to-doc-schema.ts"],"sourcesContent":["/* eslint-disable no-fallthrough */\nimport {\n getTextOfJSDocComment,\n JSDocParameterTag,\n JSDocPropertyLikeTag,\n JSDocPropertyTag,\n JSDocReturnTag,\n JSDocTag,\n SyntaxKind,\n} from 'typescript';\nimport {\n PropertyLikeTagSchema,\n ReturnTagSchema,\n TagName,\n TagSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { Formatter } from '@teambit/formatter';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\n\nexport async function tagParser(\n tag: JSDocTag,\n context: SchemaExtractorContext,\n formatter?: Formatter\n): Promise<TagSchema> {\n // for some reason, in some cases, if `tag.getSourceFile()` is not provided to the `getText()`, it throws \"Cannot read property 'text' of undefined\"\n switch (tag.kind) {\n case SyntaxKind.JSDocReturnTag:\n return returnTag(tag as JSDocReturnTag, context);\n case SyntaxKind.JSDocPropertyTag:\n return propertyLikeTag(tag as JSDocPropertyTag, context);\n case SyntaxKind.JSDocParameterTag:\n return propertyLikeTag(tag as JSDocParameterTag, context);\n case SyntaxKind.JSDocAugmentsTag:\n return simpleTag(tag, TagName.augments, context);\n case SyntaxKind.JSDocAuthorTag:\n return simpleTag(tag, TagName.author, context);\n case SyntaxKind.JSDocClassTag:\n return simpleTag(tag, TagName.class, context);\n case SyntaxKind.JSDocCallbackTag:\n return simpleTag(tag, TagName.callback, context);\n case SyntaxKind.JSDocPublicTag:\n return simpleTag(tag, TagName.public, context);\n case SyntaxKind.JSDocPrivateTag:\n return simpleTag(tag, TagName.private, context);\n case SyntaxKind.JSDocProtectedTag:\n return simpleTag(tag, TagName.protected, context);\n case SyntaxKind.JSDocReadonlyTag:\n return simpleTag(tag, TagName.readonly, context);\n case SyntaxKind.JSDocOverrideTag:\n return simpleTag(tag, TagName.override, context);\n case SyntaxKind.JSDocDeprecatedTag:\n return simpleTag(tag, TagName.deprecated, context);\n case SyntaxKind.JSDocSeeTag:\n return simpleTag(tag, TagName.see, context);\n case SyntaxKind.JSDocEnumTag:\n return simpleTag(tag, TagName.enum, context);\n case SyntaxKind.JSDocThisTag:\n return simpleTag(tag, TagName.this, context);\n case SyntaxKind.JSDocTypeTag:\n return simpleTag(tag, TagName.type, context);\n case SyntaxKind.JSDocTemplateTag:\n return simpleTag(tag, TagName.template, context);\n case SyntaxKind.JSDocTypedefTag:\n return simpleTag(tag, TagName.typedef, context);\n case SyntaxKind.JSDocImplementsTag:\n return simpleTag(tag, TagName.implements, context);\n default: {\n const tagName: TagName | string = tag.tagName.getText(tag.getSourceFile());\n if (tagName === 'example') {\n const comment = getTextOfJSDocComment(tag.comment);\n if (!formatter) return simpleTag(tag, tagName, context);\n try {\n const formattedComment = comment && (await formatter.formatSnippet(comment));\n return new TagSchema(context.getLocation(tag), tagName, formattedComment);\n } catch (e) {\n return simpleTag(tag, tagName, context);\n }\n }\n return simpleTag(tag, tagName, context);\n }\n }\n}\n\nfunction simpleTag(tag: JSDocTag, tagName: TagName | string, context: SchemaExtractorContext): TagSchema {\n return new TagSchema(context.getLocation(tag), tagName, getTextOfJSDocComment(tag.comment));\n}\n\nasync function returnTag(tag: JSDocReturnTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;\n return new ReturnTagSchema(context.getLocation(tag), getTextOfJSDocComment(tag.comment), type);\n}\n\nasync function propertyLikeTag(tag: JSDocPropertyLikeTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;\n return new PropertyLikeTagSchema(\n context.getLocation(tag),\n tag.name.getText(),\n getTextOfJSDocComment(tag.comment),\n type\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_typescript","data","require","_semanticsEntities","tagParser","tag","context","formatter","kind","SyntaxKind","JSDocReturnTag","returnTag","JSDocPropertyTag","propertyLikeTag","JSDocParameterTag","JSDocAugmentsTag","simpleTag","TagName","augments","JSDocAuthorTag","author","JSDocClassTag","class","JSDocCallbackTag","callback","JSDocPublicTag","public","JSDocPrivateTag","private","JSDocProtectedTag","protected","JSDocReadonlyTag","readonly","JSDocOverrideTag","override","JSDocDeprecatedTag","deprecated","JSDocSeeTag","see","JSDocEnumTag","enum","JSDocThisTag","this","JSDocTypeTag","type","JSDocTemplateTag","template","JSDocTypedefTag","typedef","JSDocImplementsTag","implements","tagName","getText","getSourceFile","comment","getTextOfJSDocComment","formattedComment","formatSnippet","TagSchema","getLocation","e","typeExpression","computeSchema","undefined","ReturnTagSchema","PropertyLikeTagSchema","name"],"sources":["jsdoc-to-doc-schema.ts"],"sourcesContent":["/* eslint-disable no-fallthrough */\nimport {\n getTextOfJSDocComment,\n JSDocParameterTag,\n JSDocPropertyLikeTag,\n JSDocPropertyTag,\n JSDocReturnTag,\n JSDocTag,\n SyntaxKind,\n} from 'typescript';\nimport {\n PropertyLikeTagSchema,\n ReturnTagSchema,\n TagName,\n TagSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport { Formatter } from '@teambit/formatter';\nimport { SchemaExtractorContext } from '../../schema-extractor-context';\n\nexport async function tagParser(\n tag: JSDocTag,\n context: SchemaExtractorContext,\n formatter?: Formatter\n): Promise<TagSchema> {\n // for some reason, in some cases, if `tag.getSourceFile()` is not provided to the `getText()`, it throws \"Cannot read property 'text' of undefined\"\n switch (tag.kind) {\n case SyntaxKind.JSDocReturnTag:\n return returnTag(tag as JSDocReturnTag, context);\n case SyntaxKind.JSDocPropertyTag:\n return propertyLikeTag(tag as JSDocPropertyTag, context);\n case SyntaxKind.JSDocParameterTag:\n return propertyLikeTag(tag as JSDocParameterTag, context);\n case SyntaxKind.JSDocAugmentsTag:\n return simpleTag(tag, TagName.augments, context);\n case SyntaxKind.JSDocAuthorTag:\n return simpleTag(tag, TagName.author, context);\n case SyntaxKind.JSDocClassTag:\n return simpleTag(tag, TagName.class, context);\n case SyntaxKind.JSDocCallbackTag:\n return simpleTag(tag, TagName.callback, context);\n case SyntaxKind.JSDocPublicTag:\n return simpleTag(tag, TagName.public, context);\n case SyntaxKind.JSDocPrivateTag:\n return simpleTag(tag, TagName.private, context);\n case SyntaxKind.JSDocProtectedTag:\n return simpleTag(tag, TagName.protected, context);\n case SyntaxKind.JSDocReadonlyTag:\n return simpleTag(tag, TagName.readonly, context);\n case SyntaxKind.JSDocOverrideTag:\n return simpleTag(tag, TagName.override, context);\n case SyntaxKind.JSDocDeprecatedTag:\n return simpleTag(tag, TagName.deprecated, context);\n case SyntaxKind.JSDocSeeTag:\n return simpleTag(tag, TagName.see, context);\n case SyntaxKind.JSDocEnumTag:\n return simpleTag(tag, TagName.enum, context);\n case SyntaxKind.JSDocThisTag:\n return simpleTag(tag, TagName.this, context);\n case SyntaxKind.JSDocTypeTag:\n return simpleTag(tag, TagName.type, context);\n case SyntaxKind.JSDocTemplateTag:\n return simpleTag(tag, TagName.template, context);\n case SyntaxKind.JSDocTypedefTag:\n return simpleTag(tag, TagName.typedef, context);\n case SyntaxKind.JSDocImplementsTag:\n return simpleTag(tag, TagName.implements, context);\n default: {\n const tagName: TagName | string = tag.tagName.getText(tag.getSourceFile());\n if (tagName === 'example') {\n const comment = getTextOfJSDocComment(tag.comment);\n if (!formatter) return simpleTag(tag, tagName, context);\n try {\n const formattedComment = comment && (await formatter.formatSnippet(comment));\n return new TagSchema(context.getLocation(tag), tagName, formattedComment);\n } catch (e) {\n return simpleTag(tag, tagName, context);\n }\n }\n return simpleTag(tag, tagName, context);\n }\n }\n}\n\nfunction simpleTag(tag: JSDocTag, tagName: TagName | string, context: SchemaExtractorContext): TagSchema {\n return new TagSchema(context.getLocation(tag), tagName, getTextOfJSDocComment(tag.comment));\n}\n\nasync function returnTag(tag: JSDocReturnTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;\n return new ReturnTagSchema(context.getLocation(tag), getTextOfJSDocComment(tag.comment), type);\n}\n\nasync function propertyLikeTag(tag: JSDocPropertyLikeTag, context: SchemaExtractorContext) {\n const type = tag.typeExpression?.type ? await context.computeSchema(tag.typeExpression?.type) : undefined;\n return new PropertyLikeTagSchema(\n context.getLocation(tag),\n tag.name.getText(),\n getTextOfJSDocComment(tag.comment),\n type\n );\n}\n"],"mappings":"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"}
@@ -43,8 +43,7 @@ const UNRESOLVED = exports.UNRESOLVED = '<<unresolved>>';
43
43
  * }
44
44
  */
45
45
  function parseTypeFromQuickInfo(quickInfo) {
46
- var _quickInfo$body;
47
- if (!(quickInfo !== null && quickInfo !== void 0 && (_quickInfo$body = quickInfo.body) !== null && _quickInfo$body !== void 0 && _quickInfo$body.displayString)) return '';
46
+ if (!quickInfo?.body?.displayString) return '';
48
47
  const displayString = quickInfo.body.displayString;
49
48
  const splitByColon = displayString.split(':');
50
49
  switch (quickInfo.body.kind) {
@@ -1 +1 @@
1
- {"version":3,"names":["UNRESOLVED","exports","parseTypeFromQuickInfo","quickInfo","_quickInfo$body","body","displayString","splitByColon","split","kind","replace","tail","join","trim","length","firstLine","splitBySpace","typeName","splitByEqual","typeColonIndex","indexOf","slice","parseReturnTypeFromQuickInfo","typeStr","array"],"sources":["parse-type-from-quick-info.ts"],"sourcesContent":["// eslint-disable-next-line import/no-unresolved\nimport protocol from 'typescript/lib/protocol';\n\nexport const UNRESOLVED = '<<unresolved>>';\n\n/**\n * try to parse the type from the quickinfo.\n * this is an error-prone process, we do our best here.\n *\n * an example of a function with many \":\"\n * `export function getObj(a: string, func: (b: number) => {}) { return { a: 1, b: 2 } };`\n * which produce the following quickinfo:\n * ```ts\n * function getObj(a: string, func: (b: number) => {}): {\n * a: number;\n * b: number;\n * }\n * ```\n *\n * some examples of quickinfo:\n *\n * function ts.signatureToDisplayParts(typechecker: TypeChecker, signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags): SymbolDisplayPart[]\n *\n * const enum ts.TypeFormatFlags\n *\n * (method) ts.TypeChecker.writeSignature(signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags | undefined, kind?: SignatureKind | undefined, writer?: EmitTextWriter | undefined): string\n *\n * const obj: {\n * a: number;\n * b: number;\n * }\n *\n * function getObj(a: string): {\n * a: number;\n * b: number;\n * }\n */\nexport function parseTypeFromQuickInfo(quickInfo: protocol.QuickInfoResponse | undefined): string {\n if (!quickInfo?.body?.displayString) return '';\n const displayString = quickInfo.body.displayString;\n const splitByColon = displayString.split(':');\n switch (quickInfo.body.kind) {\n case 'type parameter':\n // (type parameter) T in concat<T, K, V>(array1: T[], array2: T[]): T[]\n return displayString.replace(`(${quickInfo.body.kind}) `, '').split(' ')[0];\n case 'const':\n case 'property':\n case 'let':\n case 'getter':\n case 'var': {\n const [, ...tail] = splitByColon;\n return tail.join(':').trim();\n }\n case 'method':\n case 'function': {\n const split = displayString.split('): ');\n if (split.length !== 2) {\n // it's hard to determine where the return-type is. so it's better to show unresolved.\n // maybe, in the UI, in this case, it's best to show the signature.\n // e.g.\n // (method) IssuesList.getIssue<T extends ComponentIssue>(IssueClass: {\n // new (): T;\n // }): T | undefined\n return UNRESOLVED;\n }\n return split[1].trim();\n }\n case 'alias': {\n // e.g. (alias) class BuilderService\\nimport BuilderService\n // e.g. '(alias) type Serializable = {\\n' +\n // ' toString(): string;\\n' +\n // '}\\n' +\n // 'import Serializable'\n const firstLine = displayString.split('\\n')[0];\n const splitBySpace = firstLine.trim().split(' ');\n // first two are alias keyword and alias type\n const [, , typeName] = splitBySpace;\n return typeName;\n }\n case 'type': {\n // e.g. `type TaskSlot = SlotRegistry<BuildTask[]>`\n const splitByEqual = displayString.split('=');\n const [, ...tail] = splitByEqual;\n return tail.join('=').trim();\n }\n case 'parameter': {\n const typeColonIndex = displayString.indexOf(':');\n return displayString.slice(typeColonIndex + 1).trim();\n }\n default:\n return splitByColon[splitByColon.length - 1].trim();\n }\n}\n\nexport function parseReturnTypeFromQuickInfo(quickInfo: protocol.QuickInfoResponse | undefined): string {\n if (!quickInfo) return '';\n const typeStr = parseTypeFromQuickInfo(quickInfo);\n const array = typeStr.split('=>');\n return array[array.length - 1].trim();\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["UNRESOLVED","exports","parseTypeFromQuickInfo","quickInfo","body","displayString","splitByColon","split","kind","replace","tail","join","trim","length","firstLine","splitBySpace","typeName","splitByEqual","typeColonIndex","indexOf","slice","parseReturnTypeFromQuickInfo","typeStr","array"],"sources":["parse-type-from-quick-info.ts"],"sourcesContent":["// eslint-disable-next-line import/no-unresolved\nimport protocol from 'typescript/lib/protocol';\n\nexport const UNRESOLVED = '<<unresolved>>';\n\n/**\n * try to parse the type from the quickinfo.\n * this is an error-prone process, we do our best here.\n *\n * an example of a function with many \":\"\n * `export function getObj(a: string, func: (b: number) => {}) { return { a: 1, b: 2 } };`\n * which produce the following quickinfo:\n * ```ts\n * function getObj(a: string, func: (b: number) => {}): {\n * a: number;\n * b: number;\n * }\n * ```\n *\n * some examples of quickinfo:\n *\n * function ts.signatureToDisplayParts(typechecker: TypeChecker, signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags): SymbolDisplayPart[]\n *\n * const enum ts.TypeFormatFlags\n *\n * (method) ts.TypeChecker.writeSignature(signature: Signature, enclosingDeclaration?: Node | undefined, flags?: TypeFormatFlags | undefined, kind?: SignatureKind | undefined, writer?: EmitTextWriter | undefined): string\n *\n * const obj: {\n * a: number;\n * b: number;\n * }\n *\n * function getObj(a: string): {\n * a: number;\n * b: number;\n * }\n */\nexport function parseTypeFromQuickInfo(quickInfo: protocol.QuickInfoResponse | undefined): string {\n if (!quickInfo?.body?.displayString) return '';\n const displayString = quickInfo.body.displayString;\n const splitByColon = displayString.split(':');\n switch (quickInfo.body.kind) {\n case 'type parameter':\n // (type parameter) T in concat<T, K, V>(array1: T[], array2: T[]): T[]\n return displayString.replace(`(${quickInfo.body.kind}) `, '').split(' ')[0];\n case 'const':\n case 'property':\n case 'let':\n case 'getter':\n case 'var': {\n const [, ...tail] = splitByColon;\n return tail.join(':').trim();\n }\n case 'method':\n case 'function': {\n const split = displayString.split('): ');\n if (split.length !== 2) {\n // it's hard to determine where the return-type is. so it's better to show unresolved.\n // maybe, in the UI, in this case, it's best to show the signature.\n // e.g.\n // (method) IssuesList.getIssue<T extends ComponentIssue>(IssueClass: {\n // new (): T;\n // }): T | undefined\n return UNRESOLVED;\n }\n return split[1].trim();\n }\n case 'alias': {\n // e.g. (alias) class BuilderService\\nimport BuilderService\n // e.g. '(alias) type Serializable = {\\n' +\n // ' toString(): string;\\n' +\n // '}\\n' +\n // 'import Serializable'\n const firstLine = displayString.split('\\n')[0];\n const splitBySpace = firstLine.trim().split(' ');\n // first two are alias keyword and alias type\n const [, , typeName] = splitBySpace;\n return typeName;\n }\n case 'type': {\n // e.g. `type TaskSlot = SlotRegistry<BuildTask[]>`\n const splitByEqual = displayString.split('=');\n const [, ...tail] = splitByEqual;\n return tail.join('=').trim();\n }\n case 'parameter': {\n const typeColonIndex = displayString.indexOf(':');\n return displayString.slice(typeColonIndex + 1).trim();\n }\n default:\n return splitByColon[splitByColon.length - 1].trim();\n }\n}\n\nexport function parseReturnTypeFromQuickInfo(quickInfo: protocol.QuickInfoResponse | undefined): string {\n if (!quickInfo) return '';\n const typeStr = parseTypeFromQuickInfo(quickInfo);\n const array = typeStr.split('=>');\n return array[array.length - 1].trim();\n}\n"],"mappings":";;;;;;;;AAAA;;AAGO,MAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,gBAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAACC,SAAiD,EAAU;EAChG,IAAI,CAACA,SAAS,EAAEC,IAAI,EAAEC,aAAa,EAAE,OAAO,EAAE;EAC9C,MAAMA,aAAa,GAAGF,SAAS,CAACC,IAAI,CAACC,aAAa;EAClD,MAAMC,YAAY,GAAGD,aAAa,CAACE,KAAK,CAAC,GAAG,CAAC;EAC7C,QAAQJ,SAAS,CAACC,IAAI,CAACI,IAAI;IACzB,KAAK,gBAAgB;MACnB;MACA,OAAOH,aAAa,CAACI,OAAO,CAAE,IAAGN,SAAS,CAACC,IAAI,CAACI,IAAK,IAAG,EAAE,EAAE,CAAC,CAACD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,OAAO;IACZ,KAAK,UAAU;IACf,KAAK,KAAK;IACV,KAAK,QAAQ;IACb,KAAK,KAAK;MAAE;QACV,MAAM,GAAG,GAAGG,IAAI,CAAC,GAAGJ,YAAY;QAChC,OAAOI,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC;MAC9B;IACA,KAAK,QAAQ;IACb,KAAK,UAAU;MAAE;QACf,MAAML,KAAK,GAAGF,aAAa,CAACE,KAAK,CAAC,KAAK,CAAC;QACxC,IAAIA,KAAK,CAACM,MAAM,KAAK,CAAC,EAAE;UACtB;UACA;UACA;UACA;UACA;UACA;UACA,OAAOb,UAAU;QACnB;QACA,OAAOO,KAAK,CAAC,CAAC,CAAC,CAACK,IAAI,CAAC,CAAC;MACxB;IACA,KAAK,OAAO;MAAE;QACZ;QACA;QACA;QACA;QACA;QACA,MAAME,SAAS,GAAGT,aAAa,CAACE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAMQ,YAAY,GAAGD,SAAS,CAACF,IAAI,CAAC,CAAC,CAACL,KAAK,CAAC,GAAG,CAAC;QAChD;QACA,MAAM,IAAKS,QAAQ,CAAC,GAAGD,YAAY;QACnC,OAAOC,QAAQ;MACjB;IACA,KAAK,MAAM;MAAE;QACX;QACA,MAAMC,YAAY,GAAGZ,aAAa,CAACE,KAAK,CAAC,GAAG,CAAC;QAC7C,MAAM,GAAG,GAAGG,IAAI,CAAC,GAAGO,YAAY;QAChC,OAAOP,IAAI,CAACC,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC;MAC9B;IACA,KAAK,WAAW;MAAE;QAChB,MAAMM,cAAc,GAAGb,aAAa,CAACc,OAAO,CAAC,GAAG,CAAC;QACjD,OAAOd,aAAa,CAACe,KAAK,CAACF,cAAc,GAAG,CAAC,CAAC,CAACN,IAAI,CAAC,CAAC;MACvD;IACA;MACE,OAAON,YAAY,CAACA,YAAY,CAACO,MAAM,GAAG,CAAC,CAAC,CAACD,IAAI,CAAC,CAAC;EACvD;AACF;AAEO,SAASS,4BAA4BA,CAAClB,SAAiD,EAAU;EACtG,IAAI,CAACA,SAAS,EAAE,OAAO,EAAE;EACzB,MAAMmB,OAAO,GAAGpB,sBAAsB,CAACC,SAAS,CAAC;EACjD,MAAMoB,KAAK,GAAGD,OAAO,CAACf,KAAK,CAAC,IAAI,CAAC;EACjC,OAAOgB,KAAK,CAACA,KAAK,CAACV,MAAM,GAAG,CAAC,CAAC,CAACD,IAAI,CAAC,CAAC;AACvC"}
@@ -58,38 +58,34 @@ class VariableDeclaration {
58
58
  return [new (_identifier().Identifier)(node.name.getText(), node.getSourceFile().fileName)];
59
59
  }
60
60
  async transform(varDec, context) {
61
- var _info$body, _varDec$modifiers, _varDec$initializer;
62
61
  const name = this.getName(varDec);
63
62
  const info = await context.getQuickInfo(varDec.name);
64
- const displaySig = (info === null || info === void 0 || (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
63
+ const displaySig = info?.body?.displayString || '';
65
64
  const location = context.getLocation(varDec);
66
65
  const doc = await context.jsDocToDocSchema(varDec);
67
- const modifiers = ((_varDec$modifiers = varDec.modifiers) === null || _varDec$modifiers === void 0 ? void 0 : _varDec$modifiers.map(modifier => modifier.getText())) || [];
68
- if (((_varDec$initializer = varDec.initializer) === null || _varDec$initializer === void 0 ? void 0 : _varDec$initializer.kind) === _typescript().default.SyntaxKind.ArrowFunction) {
69
- var _functionLikeInfo$bod3;
66
+ const modifiers = varDec.modifiers?.map(modifier => modifier.getText()) || [];
67
+ if (varDec.initializer?.kind === _typescript().default.SyntaxKind.ArrowFunction) {
70
68
  const functionLikeInfo = await context.getQuickInfo(varDec.initializer.equalsGreaterThanToken);
71
69
  const returnTypeStr = functionLikeInfo ? (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(functionLikeInfo) : 'any';
72
70
  // example => export const useLanesContext: () => LanesContextModel | undefined = () => {
73
71
  if (varDec.type) {
74
72
  const funcType = await context.resolveType(varDec, '');
75
73
  if (isFunctionLike(funcType)) {
76
- var _functionLikeInfo$bod;
77
- return new (_semanticsEntities().FunctionLikeSchema)(location, name, funcType.params, funcType.returnType, (functionLikeInfo === null || functionLikeInfo === void 0 || (_functionLikeInfo$bod = functionLikeInfo.body) === null || _functionLikeInfo$bod === void 0 ? void 0 : _functionLikeInfo$bod.displayString) || '', modifiers, doc);
74
+ return new (_semanticsEntities().FunctionLikeSchema)(location, name, funcType.params, funcType.returnType, functionLikeInfo?.body?.displayString || '', modifiers, doc);
78
75
  }
79
76
  // e.g. export const MyComponent: React.FC<T> = ({}) => {}
80
77
  if (funcType instanceof _semanticsEntities().TypeRefSchema) {
81
- var _functionLikeInfo$bod2;
82
78
  const paramTypes = funcType.typeArgs;
83
79
  const params = varDec.initializer.parameters;
84
80
  const paramsSchema = await (0, _pMapSeries().default)(params, async (param, index) => {
85
- const objectBindingNodes = await _parameter().ParameterTransformer.getObjectBindingNodes(param, (paramTypes === null || paramTypes === void 0 ? void 0 : paramTypes[index]) ?? funcType, context);
86
- return new (_semanticsEntities().ParameterSchema)(location, _parameter().ParameterTransformer.getName(param), (paramTypes === null || paramTypes === void 0 ? void 0 : paramTypes[index]) ?? funcType, Boolean(param.questionToken), param.initializer ? param.initializer.getText() : undefined, undefined, objectBindingNodes, Boolean(param.dotDotDotToken));
81
+ const objectBindingNodes = await _parameter().ParameterTransformer.getObjectBindingNodes(param, paramTypes?.[index] ?? funcType, context);
82
+ return new (_semanticsEntities().ParameterSchema)(location, _parameter().ParameterTransformer.getName(param), paramTypes?.[index] ?? funcType, Boolean(param.questionToken), param.initializer ? param.initializer.getText() : undefined, undefined, objectBindingNodes, Boolean(param.dotDotDotToken));
87
83
  });
88
- return new (_semanticsEntities().FunctionLikeSchema)(location, name, paramsSchema, await context.resolveType(varDec.initializer, returnTypeStr), (functionLikeInfo === null || functionLikeInfo === void 0 || (_functionLikeInfo$bod2 = functionLikeInfo.body) === null || _functionLikeInfo$bod2 === void 0 ? void 0 : _functionLikeInfo$bod2.displayString) || '', modifiers, doc);
84
+ return new (_semanticsEntities().FunctionLikeSchema)(location, name, paramsSchema, await context.resolveType(varDec.initializer, returnTypeStr), functionLikeInfo?.body?.displayString || '', modifiers, doc);
89
85
  }
90
86
  }
91
87
  const args = await (0, _pMapSeries().default)(varDec.initializer.parameters, async param => context.computeSchema(param));
92
- return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, await context.resolveType(varDec.initializer, returnTypeStr), (functionLikeInfo === null || functionLikeInfo === void 0 || (_functionLikeInfo$bod3 = functionLikeInfo.body) === null || _functionLikeInfo$bod3 === void 0 ? void 0 : _functionLikeInfo$bod3.displayString) || '', modifiers, doc);
88
+ return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, await context.resolveType(varDec.initializer, returnTypeStr), functionLikeInfo?.body?.displayString || '', modifiers, doc);
93
89
  }
94
90
  const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
95
91
  const type = await context.resolveType(varDec, typeStr);
@@ -1 +1 @@
1
- {"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","_parameter","obj","__esModule","default","VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","Identifier","getSourceFile","fileName","transform","varDec","context","_info$body","_varDec$modifiers","_varDec$initializer","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","modifiers","map","modifier","initializer","ArrowFunction","_functionLikeInfo$bod3","functionLikeInfo","equalsGreaterThanToken","returnTypeStr","parseTypeFromQuickInfo","type","funcType","resolveType","isFunctionLike","_functionLikeInfo$bod","FunctionLikeSchema","params","returnType","TypeRefSchema","_functionLikeInfo$bod2","paramTypes","typeArgs","parameters","paramsSchema","pMapSeries","param","index","objectBindingNodes","ParameterTransformer","getObjectBindingNodes","ParameterSchema","Boolean","questionToken","undefined","dotDotDotToken","args","computeSchema","typeStr","defaultValue","VariableLikeSchema","exports"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n ParameterSchema,\n TypeRefSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\nimport { ParameterTransformer } from './parameter';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await context.jsDocToDocSchema(varDec);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const functionLikeInfo = await context.getQuickInfo((varDec.initializer as ArrowFunction).equalsGreaterThanToken);\n const returnTypeStr = functionLikeInfo ? parseTypeFromQuickInfo(functionLikeInfo) : 'any';\n // example => export const useLanesContext: () => LanesContextModel | undefined = () => {\n if (varDec.type) {\n const funcType = await context.resolveType(varDec, '');\n if (isFunctionLike(funcType)) {\n return new FunctionLikeSchema(\n location,\n name,\n funcType.params,\n funcType.returnType,\n functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n // e.g. export const MyComponent: React.FC<T> = ({}) => {}\n if (funcType instanceof TypeRefSchema) {\n const paramTypes = funcType.typeArgs;\n const params = (varDec.initializer as ArrowFunction).parameters;\n const paramsSchema = await pMapSeries(params, async (param, index) => {\n const objectBindingNodes = await ParameterTransformer.getObjectBindingNodes(\n param,\n paramTypes?.[index] ?? funcType,\n context\n );\n return new ParameterSchema(\n location,\n ParameterTransformer.getName(param),\n paramTypes?.[index] ?? funcType,\n Boolean(param.questionToken),\n param.initializer ? param.initializer.getText() : undefined,\n undefined,\n objectBindingNodes,\n Boolean(param.dotDotDotToken)\n );\n });\n\n return new FunctionLikeSchema(\n location,\n name,\n paramsSchema,\n await context.resolveType(varDec.initializer, returnTypeStr),\n functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n }\n const args = (await pMapSeries((varDec.initializer as ArrowFunction).parameters, async (param) =>\n context.computeSchema(param)\n )) as ParameterSchema[];\n return new FunctionLikeSchema(\n location,\n name,\n args,\n await context.resolveType(varDec.initializer, returnTypeStr),\n functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n const defaultValue = varDec.initializer ? varDec.initializer.getText() : undefined;\n\n return new VariableLikeSchema(location, name, displaySig, type, false, doc, defaultValue);\n }\n}\n\nfunction isFunctionLike(node: SchemaNode): node is FunctionLikeSchema {\n return node instanceof FunctionLikeSchema;\n}\n"],"mappings":";;;;;;AAAA,SAAAA,mBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,kBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAQA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAG,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAK,wBAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,uBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,YAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,WAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,WAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,UAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAmD,SAAAG,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE5C,MAAMG,mBAAmB,CAA8B;EAC5DC,SAASA,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACL,mBAAmB;EACxD;EAEAM,OAAOA,CAACJ,IAA6B,EAAE;IACrC,OAAOA,IAAI,CAACK,IAAI,CAACC,OAAO,CAAC,CAAC;EAC5B;EAEA,MAAMC,cAAcA,CAACP,IAA6B,EAAE;IAClD,OAAO,CAAC,KAAIQ,wBAAU,EAACR,IAAI,CAACK,IAAI,CAACC,OAAO,CAAC,CAAC,EAAEN,IAAI,CAACS,aAAa,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;EAC7E;EAEA,MAAMC,SAASA,CAACC,MAA+B,EAAEC,OAA+B,EAAuB;IAAA,IAAAC,UAAA,EAAAC,iBAAA,EAAAC,mBAAA;IACrG,MAAMX,IAAI,GAAG,IAAI,CAACD,OAAO,CAACQ,MAAM,CAAC;IACjC,MAAMK,IAAI,GAAG,MAAMJ,OAAO,CAACK,YAAY,CAACN,MAAM,CAACP,IAAI,CAAC;IACpD,MAAMc,UAAU,GAAG,CAAAF,IAAI,aAAJA,IAAI,gBAAAH,UAAA,GAAJG,IAAI,CAAEG,IAAI,cAAAN,UAAA,uBAAVA,UAAA,CAAYO,aAAa,KAAI,EAAE;IAClD,MAAMC,QAAQ,GAAGT,OAAO,CAACU,WAAW,CAACX,MAAM,CAAC;IAC5C,MAAMY,GAAG,GAAG,MAAMX,OAAO,CAACY,gBAAgB,CAACb,MAAM,CAAC;IAClD,MAAMc,SAAS,GAAG,EAAAX,iBAAA,GAAAH,MAAM,CAACc,SAAS,cAAAX,iBAAA,uBAAhBA,iBAAA,CAAkBY,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACtB,OAAO,CAAC,CAAC,CAAC,KAAI,EAAE;IAC/E,IAAI,EAAAU,mBAAA,GAAAJ,MAAM,CAACiB,WAAW,cAAAb,mBAAA,uBAAlBA,mBAAA,CAAoBf,IAAI,MAAKC,qBAAE,CAACC,UAAU,CAAC2B,aAAa,EAAE;MAAA,IAAAC,sBAAA;MAC5D,MAAMC,gBAAgB,GAAG,MAAMnB,OAAO,CAACK,YAAY,CAAEN,MAAM,CAACiB,WAAW,CAAmBI,sBAAsB,CAAC;MACjH,MAAMC,aAAa,GAAGF,gBAAgB,GAAG,IAAAG,gDAAsB,EAACH,gBAAgB,CAAC,GAAG,KAAK;MACzF;MACA,IAAIpB,MAAM,CAACwB,IAAI,EAAE;QACf,MAAMC,QAAQ,GAAG,MAAMxB,OAAO,CAACyB,WAAW,CAAC1B,MAAM,EAAE,EAAE,CAAC;QACtD,IAAI2B,cAAc,CAACF,QAAQ,CAAC,EAAE;UAAA,IAAAG,qBAAA;UAC5B,OAAO,KAAIC,uCAAkB,EAC3BnB,QAAQ,EACRjB,IAAI,EACJgC,QAAQ,CAACK,MAAM,EACfL,QAAQ,CAACM,UAAU,EACnB,CAAAX,gBAAgB,aAAhBA,gBAAgB,gBAAAQ,qBAAA,GAAhBR,gBAAgB,CAAEZ,IAAI,cAAAoB,qBAAA,uBAAtBA,qBAAA,CAAwBnB,aAAa,KAAI,EAAE,EAC3CK,SAAS,EACTF,GACF,CAAC;QACH;QACA;QACA,IAAIa,QAAQ,YAAYO,kCAAa,EAAE;UAAA,IAAAC,sBAAA;UACrC,MAAMC,UAAU,GAAGT,QAAQ,CAACU,QAAQ;UACpC,MAAML,MAAM,GAAI9B,MAAM,CAACiB,WAAW,CAAmBmB,UAAU;UAC/D,MAAMC,YAAY,GAAG,MAAM,IAAAC,qBAAU,EAACR,MAAM,EAAE,OAAOS,KAAK,EAAEC,KAAK,KAAK;YACpE,MAAMC,kBAAkB,GAAG,MAAMC,iCAAoB,CAACC,qBAAqB,CACzEJ,KAAK,EACL,CAAAL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGM,KAAK,CAAC,KAAIf,QAAQ,EAC/BxB,OACF,CAAC;YACD,OAAO,KAAI2C,oCAAe,EACxBlC,QAAQ,EACRgC,iCAAoB,CAAClD,OAAO,CAAC+C,KAAK,CAAC,EACnC,CAAAL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAGM,KAAK,CAAC,KAAIf,QAAQ,EAC/BoB,OAAO,CAACN,KAAK,CAACO,aAAa,CAAC,EAC5BP,KAAK,CAACtB,WAAW,GAAGsB,KAAK,CAACtB,WAAW,CAACvB,OAAO,CAAC,CAAC,GAAGqD,SAAS,EAC3DA,SAAS,EACTN,kBAAkB,EAClBI,OAAO,CAACN,KAAK,CAACS,cAAc,CAC9B,CAAC;UACH,CAAC,CAAC;UAEF,OAAO,KAAInB,uCAAkB,EAC3BnB,QAAQ,EACRjB,IAAI,EACJ4C,YAAY,EACZ,MAAMpC,OAAO,CAACyB,WAAW,CAAC1B,MAAM,CAACiB,WAAW,EAAEK,aAAa,CAAC,EAC5D,CAAAF,gBAAgB,aAAhBA,gBAAgB,gBAAAa,sBAAA,GAAhBb,gBAAgB,CAAEZ,IAAI,cAAAyB,sBAAA,uBAAtBA,sBAAA,CAAwBxB,aAAa,KAAI,EAAE,EAC3CK,SAAS,EACTF,GACF,CAAC;QACH;MACF;MACA,MAAMqC,IAAI,GAAI,MAAM,IAAAX,qBAAU,EAAEtC,MAAM,CAACiB,WAAW,CAAmBmB,UAAU,EAAE,MAAOG,KAAK,IAC3FtC,OAAO,CAACiD,aAAa,CAACX,KAAK,CAC7B,CAAuB;MACvB,OAAO,KAAIV,uCAAkB,EAC3BnB,QAAQ,EACRjB,IAAI,EACJwD,IAAI,EACJ,MAAMhD,OAAO,CAACyB,WAAW,CAAC1B,MAAM,CAACiB,WAAW,EAAEK,aAAa,CAAC,EAC5D,CAAAF,gBAAgB,aAAhBA,gBAAgB,gBAAAD,sBAAA,GAAhBC,gBAAgB,CAAEZ,IAAI,cAAAW,sBAAA,uBAAtBA,sBAAA,CAAwBV,aAAa,KAAI,EAAE,EAC3CK,SAAS,EACTF,GACF,CAAC;IACH;IACA,MAAMuC,OAAO,GAAG,IAAA5B,gDAAsB,EAAClB,IAAI,CAAC;IAC5C,MAAMmB,IAAI,GAAG,MAAMvB,OAAO,CAACyB,WAAW,CAAC1B,MAAM,EAAEmD,OAAO,CAAC;IACvD,MAAMC,YAAY,GAAGpD,MAAM,CAACiB,WAAW,GAAGjB,MAAM,CAACiB,WAAW,CAACvB,OAAO,CAAC,CAAC,GAAGqD,SAAS;IAElF,OAAO,KAAIM,uCAAkB,EAAC3C,QAAQ,EAAEjB,IAAI,EAAEc,UAAU,EAAEiB,IAAI,EAAE,KAAK,EAAEZ,GAAG,EAAEwC,YAAY,CAAC;EAC3F;AACF;AAACE,OAAA,CAAApE,mBAAA,GAAAA,mBAAA;AAED,SAASyC,cAAcA,CAACvC,IAAgB,EAA8B;EACpE,OAAOA,IAAI,YAAYyC,uCAAkB;AAC3C"}
1
+ {"version":3,"names":["_semanticsEntities","data","require","_typescript","_interopRequireDefault","_pMapSeries","_parseTypeFromQuickInfo","_identifier","_parameter","obj","__esModule","default","VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","Identifier","getSourceFile","fileName","transform","varDec","context","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","modifiers","map","modifier","initializer","ArrowFunction","functionLikeInfo","equalsGreaterThanToken","returnTypeStr","parseTypeFromQuickInfo","type","funcType","resolveType","isFunctionLike","FunctionLikeSchema","params","returnType","TypeRefSchema","paramTypes","typeArgs","parameters","paramsSchema","pMapSeries","param","index","objectBindingNodes","ParameterTransformer","getObjectBindingNodes","ParameterSchema","Boolean","questionToken","undefined","dotDotDotToken","args","computeSchema","typeStr","defaultValue","VariableLikeSchema","exports"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n ParameterSchema,\n TypeRefSchema,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport pMapSeries from 'p-map-series';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { Identifier } from '../identifier';\nimport { ParameterTransformer } from './parameter';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new Identifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await context.jsDocToDocSchema(varDec);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const functionLikeInfo = await context.getQuickInfo((varDec.initializer as ArrowFunction).equalsGreaterThanToken);\n const returnTypeStr = functionLikeInfo ? parseTypeFromQuickInfo(functionLikeInfo) : 'any';\n // example => export const useLanesContext: () => LanesContextModel | undefined = () => {\n if (varDec.type) {\n const funcType = await context.resolveType(varDec, '');\n if (isFunctionLike(funcType)) {\n return new FunctionLikeSchema(\n location,\n name,\n funcType.params,\n funcType.returnType,\n functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n // e.g. export const MyComponent: React.FC<T> = ({}) => {}\n if (funcType instanceof TypeRefSchema) {\n const paramTypes = funcType.typeArgs;\n const params = (varDec.initializer as ArrowFunction).parameters;\n const paramsSchema = await pMapSeries(params, async (param, index) => {\n const objectBindingNodes = await ParameterTransformer.getObjectBindingNodes(\n param,\n paramTypes?.[index] ?? funcType,\n context\n );\n return new ParameterSchema(\n location,\n ParameterTransformer.getName(param),\n paramTypes?.[index] ?? funcType,\n Boolean(param.questionToken),\n param.initializer ? param.initializer.getText() : undefined,\n undefined,\n objectBindingNodes,\n Boolean(param.dotDotDotToken)\n );\n });\n\n return new FunctionLikeSchema(\n location,\n name,\n paramsSchema,\n await context.resolveType(varDec.initializer, returnTypeStr),\n functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n }\n const args = (await pMapSeries((varDec.initializer as ArrowFunction).parameters, async (param) =>\n context.computeSchema(param)\n )) as ParameterSchema[];\n return new FunctionLikeSchema(\n location,\n name,\n args,\n await context.resolveType(varDec.initializer, returnTypeStr),\n functionLikeInfo?.body?.displayString || '',\n modifiers as Modifier[],\n doc\n );\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n const defaultValue = varDec.initializer ? varDec.initializer.getText() : undefined;\n\n return new VariableLikeSchema(location, name, displaySig, type, false, doc, defaultValue);\n }\n}\n\nfunction isFunctionLike(node: SchemaNode): node is FunctionLikeSchema {\n return node instanceof FunctionLikeSchema;\n}\n"],"mappings":"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"}