@teambit/typescript 0.0.736 → 0.0.739

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 (100) hide show
  1. package/dist/cmds/check-types.cmd.js.map +1 -1
  2. package/dist/cmds/init.cmd.js.map +1 -1
  3. package/dist/compiler-options.js.map +1 -1
  4. package/dist/exceptions/index.js.map +1 -1
  5. package/dist/exceptions/transformer-not-found.d.ts +2 -1
  6. package/dist/exceptions/transformer-not-found.js +3 -2
  7. package/dist/exceptions/transformer-not-found.js.map +1 -1
  8. package/dist/export-identifier.js.map +1 -1
  9. package/dist/export-list.js.map +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/schema-extractor-context.d.ts +6 -2
  12. package/dist/schema-extractor-context.js +35 -8
  13. package/dist/schema-extractor-context.js.map +1 -1
  14. package/dist/schema-transformer.js.map +1 -1
  15. package/dist/schema-transformer.plugin.js.map +1 -1
  16. package/dist/transformers/class-deceleration.js +11 -3
  17. package/dist/transformers/class-deceleration.js.map +1 -1
  18. package/dist/transformers/constructor.js +1 -1
  19. package/dist/transformers/constructor.js.map +1 -1
  20. package/dist/transformers/enum-declaration.d.ts +10 -0
  21. package/dist/transformers/enum-declaration.js +60 -0
  22. package/dist/transformers/enum-declaration.js.map +1 -0
  23. package/dist/transformers/export-declaration.js +1 -1
  24. package/dist/transformers/export-declaration.js.map +1 -1
  25. package/dist/transformers/function-declaration.js.map +1 -1
  26. package/dist/transformers/index-signature.js +1 -1
  27. package/dist/transformers/index-signature.js.map +1 -1
  28. package/dist/transformers/index.d.ts +1 -0
  29. package/dist/transformers/index.js +16 -0
  30. package/dist/transformers/index.js.map +1 -1
  31. package/dist/transformers/interface-declaration.js +1 -1
  32. package/dist/transformers/interface-declaration.js.map +1 -1
  33. package/dist/transformers/literal-type.d.ts +2 -1
  34. package/dist/transformers/literal-type.js +2 -2
  35. package/dist/transformers/literal-type.js.map +1 -1
  36. package/dist/transformers/method-declaration.js.map +1 -1
  37. package/dist/transformers/method-signature.js.map +1 -1
  38. package/dist/transformers/property-declaration.js +1 -1
  39. package/dist/transformers/property-declaration.js.map +1 -1
  40. package/dist/transformers/property-signature.js +1 -1
  41. package/dist/transformers/property-signature.js.map +1 -1
  42. package/dist/transformers/source-file-transformer.js +1 -1
  43. package/dist/transformers/source-file-transformer.js.map +1 -1
  44. package/dist/transformers/type-alias.js +1 -1
  45. package/dist/transformers/type-alias.js.map +1 -1
  46. package/dist/transformers/utils/get-params.js +54 -4
  47. package/dist/transformers/utils/get-params.js.map +1 -1
  48. package/dist/transformers/utils/parse-type-from-quick-info.d.ts +1 -0
  49. package/dist/transformers/utils/parse-type-from-quick-info.js +12 -3
  50. package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -1
  51. package/dist/transformers/utils/to-function-schema.js +2 -2
  52. package/dist/transformers/utils/to-function-schema.js.map +1 -1
  53. package/dist/transformers/utils/type-node-to-schema.js +51 -14
  54. package/dist/transformers/utils/type-node-to-schema.js.map +1 -1
  55. package/dist/transformers/variable-declaration.js +3 -3
  56. package/dist/transformers/variable-declaration.js.map +1 -1
  57. package/dist/transformers/variable-statement.js +2 -3
  58. package/dist/transformers/variable-statement.js.map +1 -1
  59. package/dist/typescript.aspect.js.map +1 -1
  60. package/dist/typescript.compiler.js.map +1 -1
  61. package/dist/typescript.compiler.spec.js.map +1 -1
  62. package/dist/typescript.composition.js.map +1 -1
  63. package/dist/typescript.extractor.d.ts +7 -1
  64. package/dist/typescript.extractor.js +33 -12
  65. package/dist/typescript.extractor.js.map +1 -1
  66. package/dist/typescript.main.runtime.d.ts +11 -2
  67. package/dist/typescript.main.runtime.js +17 -6
  68. package/dist/typescript.main.runtime.js.map +1 -1
  69. package/dist/typescript.parser.d.ts +2 -2
  70. package/dist/typescript.parser.js +4 -4
  71. package/dist/typescript.parser.js.map +1 -1
  72. package/dist/typescript.parser.spec.js.map +1 -1
  73. package/exceptions/transformer-not-found.ts +4 -2
  74. package/package-tar/teambit-typescript-0.0.739.tgz +0 -0
  75. package/package.json +12 -11
  76. package/{preview-1652844422371.js → preview-1653362849981.js} +2 -2
  77. package/transformers/class-deceleration.ts +6 -3
  78. package/transformers/constructor.ts +1 -1
  79. package/transformers/enum-declaration.ts +20 -0
  80. package/transformers/export-declaration.ts +1 -1
  81. package/transformers/index-signature.ts +1 -1
  82. package/transformers/index.ts +1 -0
  83. package/transformers/interface-declaration.ts +1 -1
  84. package/transformers/literal-type.ts +3 -2
  85. package/transformers/property-declaration.ts +1 -1
  86. package/transformers/property-signature.ts +1 -1
  87. package/transformers/source-file-transformer.ts +1 -1
  88. package/transformers/type-alias.ts +1 -1
  89. package/transformers/utils/get-params.ts +54 -6
  90. package/transformers/utils/parse-type-from-quick-info.ts +9 -1
  91. package/transformers/utils/to-function-schema.ts +2 -2
  92. package/transformers/utils/type-node-to-schema.ts +53 -14
  93. package/transformers/variable-declaration.ts +3 -3
  94. package/transformers/variable-statement.ts +1 -2
  95. package/tsconfig.json +1 -1
  96. package/dist/transformers/export-declaration-type.d.ts +0 -0
  97. package/dist/transformers/export-declaration-type.js +0 -3
  98. package/dist/transformers/export-declaration-type.js.map +0 -1
  99. package/package-tar/teambit-typescript-0.0.736.tgz +0 -0
  100. package/transformers/export-declaration-type.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["typescript.extractor.ts"],"names":["TypeScriptExtractor","constructor","tsconfig","schemaTransformerSlot","tsMain","rootPath","undefined","parseSourceFile","file","ts","createSourceFile","path","contents","toString","ScriptTarget","Latest","compilerOptions","extract","component","tsserver","getTsServer","mainFile","mainAst","context","createContext","exportNames","computeExportedIdentifiers","setExports","ExportList","moduleSchema","computeSchema","flatExportsRecursively","apiScheme","APISchema","node","transformer","getTransformer","getIdentifiers","TransformerNotFound","SchemaExtractorContext","getTsserverClient","initTsserverClient","transform","transformers","values","find","singleTransformer","predicate"],"mappings":"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","sourcesContent":["import ts, { Node } from 'typescript';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { TsserverClient } from '@teambit/ts-server';\nimport { SchemaNode, APISchema, Module } from '@teambit/semantics.entities.semantic-schema';\nimport { Component } from '@teambit/component';\n// @ts-ignore david what to do?\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { flatten } from 'lodash';\nimport { TypescriptMain, SchemaTransformerSlot } from './typescript.main.runtime';\nimport { TransformerNotFound } from './exceptions';\nimport { SchemaExtractorContext } from './schema-extractor-context';\nimport { ExportList } from './export-list';\n\nexport class TypeScriptExtractor implements SchemaExtractor {\n constructor(\n private tsconfig: any,\n private schemaTransformerSlot: SchemaTransformerSlot,\n private tsMain: TypescriptMain,\n private rootPath: string\n ) {}\n\n parseSourceFile(file: AbstractVinyl) {\n return ts.createSourceFile(\n file.path,\n file.contents.toString('utf8'),\n ts.ScriptTarget.Latest,\n true,\n this.tsconfig.compilerOptions\n );\n }\n\n /**\n * extract a component schema.\n */\n async extract(component: Component): Promise<APISchema> {\n const tsserver = await this.getTsServer();\n const mainFile = component.mainFile;\n const mainAst = this.parseSourceFile(mainFile);\n const context = this.createContext(tsserver, component);\n const exportNames = await this.computeExportedIdentifiers(mainAst, context);\n context.setExports(new ExportList(exportNames));\n const moduleSchema = (await this.computeSchema(mainAst, context)) as Module;\n moduleSchema.flatExportsRecursively();\n const apiScheme = moduleSchema;\n\n // return APISchema.from({ });\n return new APISchema(apiScheme);\n }\n\n async computeExportedIdentifiers(node: Node, context: SchemaExtractorContext) {\n const transformer = this.getTransformer(node, context.component);\n if (!transformer || !transformer.getIdentifiers) throw new TransformerNotFound(node, context.component);\n return transformer.getIdentifiers(node, context);\n }\n\n private createContext(tsserver: TsserverClient, component: Component): SchemaExtractorContext {\n return new SchemaExtractorContext(tsserver, component, this);\n }\n\n private tsserver: TsserverClient | undefined = undefined;\n\n private async getTsServer() {\n if (!this.tsserver) {\n const tsserver = this.tsMain.getTsserverClient();\n if (tsserver) {\n this.tsserver = tsserver;\n return tsserver;\n }\n\n this.tsserver = await this.tsMain.initTsserverClient(this.rootPath);\n return this.tsserver;\n }\n\n return this.tsserver;\n }\n\n async computeSchema(node: Node, context: SchemaExtractorContext): Promise<SchemaNode> {\n const transformer = this.getTransformer(node, context.component);\n // leave the next line commented out, it is used for debugging\n // console.log('transformer', transformer.constructor.name, node.getText());\n return transformer.transform(node, context);\n }\n\n /**\n * select the correct transformer for a node.\n */\n private getTransformer(node: Node, component: Component) {\n const transformers = flatten(this.schemaTransformerSlot.values());\n const transformer = transformers.find((singleTransformer) => singleTransformer.predicate(node));\n\n if (!transformer) throw new TransformerNotFound(node, component);\n\n return transformer;\n }\n}\n"]}
1
+ {"version":3,"names":["TypeScriptExtractor","constructor","tsconfig","schemaTransformerSlot","tsMain","rootPath","depResolver","workspace","undefined","parseSourceFile","file","ts","createSourceFile","path","contents","toString","ScriptTarget","Latest","compilerOptions","extract","component","tsserver","getTsServer","mainFile","mainAst","context","createContext","exportNames","computeExportedIdentifiers","setExports","ExportList","moduleSchema","computeSchema","flatExportsRecursively","apiScheme","location","getLocation","APISchema","node","transformer","getTransformer","getIdentifiers","TransformerNotFound","componentDeps","getComponentDeps","SchemaExtractorContext","deps","getDependencies","getComponentDependencies","getTsserverClient","initTsserverClient","transform","getComponentIDByPath","getComponentIdByPath","transformers","flatten","values","find","singleTransformer","predicate"],"sources":["typescript.extractor.ts"],"sourcesContent":["import ts, { Node } from 'typescript';\nimport { SchemaExtractor } from '@teambit/schema';\nimport { TsserverClient } from '@teambit/ts-server';\nimport type { Workspace } from '@teambit/workspace';\nimport { ComponentDependency, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { SchemaNode, APISchema, Module } from '@teambit/semantics.entities.semantic-schema';\nimport { Component } from '@teambit/component';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { flatten } from 'lodash';\nimport { TypescriptMain, SchemaTransformerSlot } from './typescript.main.runtime';\nimport { TransformerNotFound } from './exceptions';\nimport { SchemaExtractorContext } from './schema-extractor-context';\nimport { ExportList } from './export-list';\n\nexport class TypeScriptExtractor implements SchemaExtractor {\n constructor(\n private tsconfig: any,\n private schemaTransformerSlot: SchemaTransformerSlot,\n private tsMain: TypescriptMain,\n private rootPath: string,\n private depResolver: DependencyResolverMain,\n private workspace: Workspace | undefined\n ) {}\n\n parseSourceFile(file: AbstractVinyl) {\n return ts.createSourceFile(\n file.path,\n file.contents.toString('utf8'),\n ts.ScriptTarget.Latest,\n true,\n this.tsconfig.compilerOptions\n );\n }\n\n /**\n * extract a component schema.\n */\n async extract(component: Component): Promise<APISchema> {\n const tsserver = await this.getTsServer();\n const mainFile = component.mainFile;\n const mainAst = this.parseSourceFile(mainFile);\n const context = await this.createContext(tsserver, component);\n const exportNames = await this.computeExportedIdentifiers(mainAst, context);\n context.setExports(new ExportList(exportNames));\n const moduleSchema = (await this.computeSchema(mainAst, context)) as Module;\n moduleSchema.flatExportsRecursively();\n const apiScheme = moduleSchema;\n const location = context.getLocation(mainAst);\n\n return new APISchema(location, apiScheme);\n }\n\n async computeExportedIdentifiers(node: Node, context: SchemaExtractorContext) {\n const transformer = this.getTransformer(node, context);\n if (!transformer || !transformer.getIdentifiers) {\n throw new TransformerNotFound(node, context.component, context.getLocation(node));\n }\n return transformer.getIdentifiers(node, context);\n }\n\n private async createContext(tsserver: TsserverClient, component: Component): Promise<SchemaExtractorContext> {\n const componentDeps = await this.getComponentDeps(component);\n return new SchemaExtractorContext(tsserver, component, this, componentDeps);\n }\n\n private async getComponentDeps(component: Component): Promise<ComponentDependency[]> {\n const deps = await this.depResolver.getDependencies(component);\n const componentDeps = deps.getComponentDependencies();\n return componentDeps;\n }\n\n private tsserver: TsserverClient | undefined = undefined;\n\n private async getTsServer() {\n if (!this.tsserver) {\n const tsserver = this.tsMain.getTsserverClient();\n if (tsserver) {\n this.tsserver = tsserver;\n return tsserver;\n }\n\n this.tsserver = await this.tsMain.initTsserverClient(this.rootPath);\n return this.tsserver;\n }\n\n return this.tsserver;\n }\n\n async computeSchema(node: Node, context: SchemaExtractorContext): Promise<SchemaNode> {\n const transformer = this.getTransformer(node, context);\n // leave the next line commented out, it is used for debugging\n // console.log('transformer', transformer.constructor.name, node.getText());\n return transformer.transform(node, context);\n }\n\n async getComponentIDByPath(file: string) {\n if (!this.workspace) {\n return null;\n }\n return this.workspace.getComponentIdByPath(file);\n }\n\n /**\n * select the correct transformer for a node.\n */\n private getTransformer(node: Node, context: SchemaExtractorContext) {\n const transformers = flatten(this.schemaTransformerSlot.values());\n const transformer = transformers.find((singleTransformer) => singleTransformer.predicate(node));\n\n if (!transformer) throw new TransformerNotFound(node, context.component, context.getLocation(node));\n\n return transformer;\n }\n}\n"],"mappings":"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"}
@@ -7,6 +7,7 @@ import { SchemaExtractor, SchemaMain } from '@teambit/schema';
7
7
  import { PackageJsonProps } from '@teambit/pkg';
8
8
  import { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';
9
9
  import type { Workspace } from '@teambit/workspace';
10
+ import { DependencyResolverMain } from '@teambit/dependency-resolver';
10
11
  import { TsserverClient, TsserverClientOpts } from '@teambit/ts-server';
11
12
  import { AspectLoaderMain } from '@teambit/aspect-loader';
12
13
  import type { Component } from '@teambit/component';
@@ -20,7 +21,8 @@ export declare class TypescriptMain {
20
21
  private logger;
21
22
  private schemaTransformerSlot;
22
23
  private workspace;
23
- constructor(logger: Logger, schemaTransformerSlot: SchemaTransformerSlot, workspace: Workspace);
24
+ private depResolver;
25
+ constructor(logger: Logger, schemaTransformerSlot: SchemaTransformerSlot, workspace: Workspace, depResolver: DependencyResolverMain);
24
26
  private tsServer;
25
27
  /**
26
28
  * create a new compiler.
@@ -91,6 +93,13 @@ export declare class TypescriptMain {
91
93
  static runtime: import("@teambit/harmony").RuntimeDefinition;
92
94
  static dependencies: import("@teambit/harmony").Aspect[];
93
95
  static slots: ((registerFn: () => string) => SlotRegistry<SchemaTransformer[]>)[];
94
- static provider([schema, loggerExt, aspectLoader, workspace, cli]: [SchemaMain, LoggerMain, AspectLoaderMain, Workspace, CLIMain], config: any, [schemaTransformerSlot]: [SchemaTransformerSlot]): Promise<TypescriptMain>;
96
+ static provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver]: [
97
+ SchemaMain,
98
+ LoggerMain,
99
+ AspectLoaderMain,
100
+ Workspace,
101
+ CLIMain,
102
+ DependencyResolverMain
103
+ ], config: any, [schemaTransformerSlot]: [SchemaTransformerSlot]): Promise<TypescriptMain>;
95
104
  }
96
105
  export declare function runTransformersWithContext(config: TypescriptConfigMutator, transformers: TsConfigTransformer[] | undefined, context: TsConfigTransformContext): TypescriptConfigMutator;
@@ -96,6 +96,16 @@ function _workspace() {
96
96
  return data;
97
97
  }
98
98
 
99
+ function _dependencyResolver() {
100
+ const data = require("@teambit/dependency-resolver");
101
+
102
+ _dependencyResolver = function () {
103
+ return data;
104
+ };
105
+
106
+ return data;
107
+ }
108
+
99
109
  function _pMapSeries() {
100
110
  const data = _interopRequireDefault(require("p-map-series"));
101
111
 
@@ -197,10 +207,11 @@ function _checkTypes() {
197
207
  }
198
208
 
199
209
  class TypescriptMain {
200
- constructor(logger, schemaTransformerSlot, workspace) {
210
+ constructor(logger, schemaTransformerSlot, workspace, depResolver) {
201
211
  this.logger = logger;
202
212
  this.schemaTransformerSlot = schemaTransformerSlot;
203
213
  this.workspace = workspace;
214
+ this.depResolver = depResolver;
204
215
  (0, _defineProperty2().default)(this, "tsServer", void 0);
205
216
  }
206
217
 
@@ -308,7 +319,7 @@ class TypescriptMain {
308
319
 
309
320
 
310
321
  createSchemaExtractor(tsconfig, path) {
311
- return new (_typescript2().TypeScriptExtractor)(tsconfig, this.schemaTransformerSlot, this, path || this.workspace.path);
322
+ return new (_typescript2().TypeScriptExtractor)(tsconfig, this.schemaTransformerSlot, this, path || this.workspace.path, this.depResolver, this.workspace);
312
323
  }
313
324
  /**
314
325
  * add the default package json properties to the component
@@ -375,12 +386,12 @@ class TypescriptMain {
375
386
  };
376
387
  }
377
388
 
378
- static async provider([schema, loggerExt, aspectLoader, workspace, cli], config, [schemaTransformerSlot]) {
389
+ static async provider([schema, loggerExt, aspectLoader, workspace, cli, depResolver], config, [schemaTransformerSlot]) {
379
390
  schema.registerParser(new (_typescript5().TypeScriptParser)());
380
391
  const logger = loggerExt.createLogger(_typescript3().TypescriptAspect.id);
381
392
  aspectLoader.registerPlugins([new (_schemaTransformer().SchemaTransformerPlugin)(schemaTransformerSlot)]);
382
- const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace);
383
- schemaTransformerSlot.register([new (_transformers().ExportDeclaration)(), new (_transformers().FunctionDeclaration)(), new (_transformers().MethodDeclaration)(), new (_transformers().PropertyDeclaration)(), new (_transformers().VariableStatementTransformer)(), new (_transformers().VariableDeclaration)(), new (_transformers().Constructor)(), new (_transformers().SourceFileTransformer)(), new (_transformers().TypeAliasTransformer)(), new (_transformers().ClassDecelerationTransformer)(), new (_transformers().PropertySignature)(), new (_transformers().LiteralTypeTransformer)(), new (_transformers().IndexSignature)(), new (_transformers().InterfaceDeclarationTransformer)(), new (_transformers().MethodSignatureTransformer)()]);
393
+ const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace, depResolver);
394
+ schemaTransformerSlot.register([new (_transformers().ExportDeclaration)(), new (_transformers().FunctionDeclaration)(), new (_transformers().MethodDeclaration)(), new (_transformers().PropertyDeclaration)(), new (_transformers().VariableStatementTransformer)(), new (_transformers().VariableDeclaration)(), new (_transformers().Constructor)(), new (_transformers().SourceFileTransformer)(), new (_transformers().TypeAliasTransformer)(), new (_transformers().ClassDecelerationTransformer)(), new (_transformers().PropertySignature)(), new (_transformers().LiteralTypeTransformer)(), new (_transformers().IndexSignature)(), new (_transformers().InterfaceDeclarationTransformer)(), new (_transformers().MethodSignatureTransformer)(), new (_transformers().EnumDeclarationTransformer)()]);
384
395
 
385
396
  if (workspace) {
386
397
  workspace.registerOnPreWatch(tsMain.onPreWatch.bind(this));
@@ -397,7 +408,7 @@ class TypescriptMain {
397
408
 
398
409
  exports.TypescriptMain = TypescriptMain;
399
410
  (0, _defineProperty2().default)(TypescriptMain, "runtime", _cli().MainRuntime);
400
- (0, _defineProperty2().default)(TypescriptMain, "dependencies", [_schema().SchemaAspect, _logger().LoggerAspect, _aspectLoader().default, _workspace().WorkspaceAspect, _cli().CLIAspect]);
411
+ (0, _defineProperty2().default)(TypescriptMain, "dependencies", [_schema().SchemaAspect, _logger().LoggerAspect, _aspectLoader().default, _workspace().WorkspaceAspect, _cli().CLIAspect, _dependencyResolver().DependencyResolverAspect]);
401
412
  (0, _defineProperty2().default)(TypescriptMain, "slots", [_harmony().Slot.withType()]);
402
413
 
403
414
  _typescript3().TypescriptAspect.addRuntime(TypescriptMain);
@@ -1 +1 @@
1
- {"version":3,"sources":["typescript.main.runtime.ts"],"names":["TypescriptMain","constructor","logger","schemaTransformerSlot","workspace","createCompiler","options","transformers","tsModule","ts","configMutator","TypescriptConfigMutator","transformerContext","afterMutation","runTransformersWithContext","clone","TypescriptCompiler","TypescriptAspect","id","raw","getTsserverClient","tsServer","initTsserverClient","projectPath","files","TsserverClient","init","initTsserverClientFromWorkspace","Error","path","createCjsCompiler","getCjsTransformer","createEsmCompiler","getEsmTransformer","cjsTransformer","config","setModule","esmTransformer","createSchemaExtractor","tsconfig","TypeScriptExtractor","getCjsPackageJsonProps","main","types","getEsmPackageJsonProps","type","getSupportedFilesForTsserver","components","map","c","filesystem","flat","f","filter","endsWith","onPreWatch","watchOpts","spawnTSServer","verbose","checkTypes","printTypeErrors","Boolean","onComponentChange","component","results","file","onFileChange","provider","schema","loggerExt","aspectLoader","cli","registerParser","TypeScriptParser","createLogger","registerPlugins","SchemaTransformerPlugin","tsMain","register","ExportDeclaration","FunctionDeclaration","MethodDeclaration","PropertyDeclaration","VariableStatementTransformer","VariableDeclaration","Constructor","SourceFileTransformer","TypeAliasTransformer","ClassDecelerationTransformer","PropertySignature","LiteralTypeTransformer","IndexSignature","InterfaceDeclarationTransformer","MethodSignatureTransformer","registerOnPreWatch","bind","registerOnComponentChange","registerOnComponentAdd","checkTypesCmd","CheckTypesCmd","MainRuntime","SchemaAspect","LoggerAspect","AspectLoaderAspect","WorkspaceAspect","CLIAspect","Slot","withType","addRuntime","context","Array","isArray","newConfig","reduce","acc","transformer"],"mappings":"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","sourcesContent":["import ts from 'typescript';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Compiler } from '@teambit/compiler';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { SchemaAspect, SchemaExtractor, SchemaMain } from '@teambit/schema';\nimport { PackageJsonProps } from '@teambit/pkg';\nimport { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { WatchOptions, Workspace } from '@teambit/workspace';\nimport pMapSeries from 'p-map-series';\nimport { TsserverClient, TsserverClientOpts } from '@teambit/ts-server';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport type { Component } from '@teambit/component';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { TypeScriptCompilerOptions } from './compiler-options';\nimport { TypescriptAspect } from './typescript.aspect';\nimport { TypescriptCompiler } from './typescript.compiler';\nimport { TypeScriptParser } from './typescript.parser';\nimport { SchemaTransformer } from './schema-transformer';\nimport { SchemaTransformerPlugin } from './schema-transformer.plugin';\nimport {\n ExportDeclaration,\n TypeAliasTransformer,\n FunctionDeclaration,\n MethodDeclaration,\n PropertyDeclaration,\n VariableStatementTransformer,\n VariableDeclaration,\n SourceFileTransformer,\n ClassDecelerationTransformer,\n Constructor,\n PropertySignature,\n LiteralTypeTransformer,\n IndexSignature,\n InterfaceDeclarationTransformer,\n MethodSignatureTransformer,\n} from './transformers';\nimport { CheckTypesCmd } from './cmds/check-types.cmd';\n\nexport type TsMode = 'build' | 'dev';\n\nexport type SchemaTransformerSlot = SlotRegistry<SchemaTransformer[]>;\n\nexport type TsConfigTransformContext = {\n // mode: TsMode;\n};\n\nexport type TsConfigTransformer = (\n config: TypescriptConfigMutator,\n context: TsConfigTransformContext\n) => TypescriptConfigMutator;\n\nexport class TypescriptMain {\n constructor(\n private logger: Logger,\n private schemaTransformerSlot: SchemaTransformerSlot,\n private workspace: Workspace\n ) {}\n\n private tsServer: TsserverClient;\n /**\n * create a new compiler.\n */\n createCompiler(\n options: TypeScriptCompilerOptions,\n transformers: TsConfigTransformer[] = [],\n tsModule = ts\n ): Compiler {\n const configMutator = new TypescriptConfigMutator(options);\n const transformerContext: TsConfigTransformContext = {};\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n return new TypescriptCompiler(TypescriptAspect.id, this.logger, afterMutation.raw, tsModule);\n }\n\n /**\n * get TsserverClient instance if initiated already, otherwise, return undefined.\n */\n getTsserverClient(): TsserverClient | undefined {\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API.\n * @param projectPath absolute path of the project root directory\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClient(\n projectPath: string,\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n this.tsServer = new TsserverClient(projectPath, this.logger, options, files);\n this.tsServer.init();\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API. use only when running on the workspace.\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClientFromWorkspace(\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n if (!this.workspace) {\n throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);\n }\n return this.initTsserverClient(this.workspace.path, options, files);\n }\n\n /**\n * Create a compiler instance and run the cjs transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createCjsCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a compiler instance and run the esm transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createEsmCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a transformer that change the ts module to CommonJS\n * @returns\n */\n getCjsTransformer(): TsConfigTransformer {\n const cjsTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('CommonJS');\n return config;\n };\n return cjsTransformer;\n }\n\n /**\n * Create a transformer that change the ts module to ES2020\n * @returns\n */\n getEsmTransformer(): TsConfigTransformer {\n const esmTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('ES2020');\n return config;\n };\n return esmTransformer;\n }\n\n /**\n * create an instance of a typescript semantic schema extractor.\n */\n createSchemaExtractor(tsconfig: any, path?: string): SchemaExtractor {\n return new TypeScriptExtractor(tsconfig, this.schemaTransformerSlot, this, path || this.workspace.path);\n }\n\n /**\n * add the default package json properties to the component\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return {\n main: 'dist/{main}.js',\n types: '{main}.ts',\n };\n }\n\n /**\n * add type: module to the package.json props and the default props\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return {\n // main: 'dist-esm/{main}.js',\n main: 'dist/{main}.js',\n type: 'module',\n types: '{main}.ts',\n };\n }\n\n public getSupportedFilesForTsserver(components: Component[]): string[] {\n const files = components\n .map((c) => c.filesystem.files)\n .flat()\n .map((f) => f.path);\n return files.filter((f) => f.endsWith('.ts') || f.endsWith('.tsx'));\n }\n\n private async onPreWatch(components: Component[], watchOpts: WatchOptions) {\n const workspace = this.workspace;\n if (!workspace || !watchOpts.spawnTSServer) {\n return;\n }\n const { verbose, checkTypes } = watchOpts;\n const files = checkTypes ? this.getSupportedFilesForTsserver(components) : [];\n const printTypeErrors = Boolean(checkTypes);\n await this.initTsserverClientFromWorkspace({ verbose, checkTypes, printTypeErrors }, files);\n }\n\n private async onComponentChange(component: Component, files: string[]) {\n if (!this.tsServer) {\n return {\n results: 'N/A',\n };\n }\n await pMapSeries(files, (file) => this.tsServer.onFileChange(file));\n return {\n results: 'succeed',\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [SchemaAspect, LoggerAspect, AspectLoaderAspect, WorkspaceAspect, CLIAspect];\n static slots = [Slot.withType<SchemaTransformer[]>()];\n\n static async provider(\n [schema, loggerExt, aspectLoader, workspace, cli]: [SchemaMain, LoggerMain, AspectLoaderMain, Workspace, CLIMain],\n config,\n [schemaTransformerSlot]: [SchemaTransformerSlot]\n ) {\n schema.registerParser(new TypeScriptParser());\n const logger = loggerExt.createLogger(TypescriptAspect.id);\n aspectLoader.registerPlugins([new SchemaTransformerPlugin(schemaTransformerSlot)]);\n const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace);\n schemaTransformerSlot.register([\n new ExportDeclaration(),\n new FunctionDeclaration(),\n new MethodDeclaration(),\n new PropertyDeclaration(),\n new VariableStatementTransformer(),\n new VariableDeclaration(),\n new Constructor(),\n new SourceFileTransformer(),\n new TypeAliasTransformer(),\n new ClassDecelerationTransformer(),\n new PropertySignature(),\n new LiteralTypeTransformer(),\n new IndexSignature(),\n new InterfaceDeclarationTransformer(),\n new MethodSignatureTransformer(),\n ]);\n\n if (workspace) {\n workspace.registerOnPreWatch(tsMain.onPreWatch.bind(this));\n workspace.registerOnComponentChange(tsMain.onComponentChange.bind(this));\n workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(this));\n }\n\n const checkTypesCmd = new CheckTypesCmd(tsMain, workspace, logger);\n cli.register(checkTypesCmd);\n\n return tsMain;\n }\n}\n\nTypescriptAspect.addRuntime(TypescriptMain);\n\nexport function runTransformersWithContext(\n config: TypescriptConfigMutator,\n transformers: TsConfigTransformer[] = [],\n context: TsConfigTransformContext\n): TypescriptConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n"]}
1
+ {"version":3,"names":["TypescriptMain","constructor","logger","schemaTransformerSlot","workspace","depResolver","createCompiler","options","transformers","tsModule","ts","configMutator","TypescriptConfigMutator","transformerContext","afterMutation","runTransformersWithContext","clone","TypescriptCompiler","TypescriptAspect","id","raw","getTsserverClient","tsServer","initTsserverClient","projectPath","files","TsserverClient","init","initTsserverClientFromWorkspace","Error","path","createCjsCompiler","getCjsTransformer","createEsmCompiler","getEsmTransformer","cjsTransformer","config","setModule","esmTransformer","createSchemaExtractor","tsconfig","TypeScriptExtractor","getCjsPackageJsonProps","main","types","getEsmPackageJsonProps","type","getSupportedFilesForTsserver","components","map","c","filesystem","flat","f","filter","endsWith","onPreWatch","watchOpts","spawnTSServer","verbose","checkTypes","printTypeErrors","Boolean","onComponentChange","component","results","pMapSeries","file","onFileChange","provider","schema","loggerExt","aspectLoader","cli","registerParser","TypeScriptParser","createLogger","registerPlugins","SchemaTransformerPlugin","tsMain","register","ExportDeclaration","FunctionDeclaration","MethodDeclaration","PropertyDeclaration","VariableStatementTransformer","VariableDeclaration","Constructor","SourceFileTransformer","TypeAliasTransformer","ClassDecelerationTransformer","PropertySignature","LiteralTypeTransformer","IndexSignature","InterfaceDeclarationTransformer","MethodSignatureTransformer","EnumDeclarationTransformer","registerOnPreWatch","bind","registerOnComponentChange","registerOnComponentAdd","checkTypesCmd","CheckTypesCmd","MainRuntime","SchemaAspect","LoggerAspect","AspectLoaderAspect","WorkspaceAspect","CLIAspect","DependencyResolverAspect","Slot","withType","addRuntime","context","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["typescript.main.runtime.ts"],"sourcesContent":["import ts from 'typescript';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Compiler } from '@teambit/compiler';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { SchemaAspect, SchemaExtractor, SchemaMain } from '@teambit/schema';\nimport { PackageJsonProps } from '@teambit/pkg';\nimport { TypescriptConfigMutator } from '@teambit/typescript.modules.ts-config-mutator';\nimport { WorkspaceAspect } from '@teambit/workspace';\nimport type { WatchOptions, Workspace } from '@teambit/workspace';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport pMapSeries from 'p-map-series';\nimport { TsserverClient, TsserverClientOpts } from '@teambit/ts-server';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport type { Component } from '@teambit/component';\nimport { TypeScriptExtractor } from './typescript.extractor';\nimport { TypeScriptCompilerOptions } from './compiler-options';\nimport { TypescriptAspect } from './typescript.aspect';\nimport { TypescriptCompiler } from './typescript.compiler';\nimport { TypeScriptParser } from './typescript.parser';\nimport { SchemaTransformer } from './schema-transformer';\nimport { SchemaTransformerPlugin } from './schema-transformer.plugin';\nimport {\n ExportDeclaration,\n TypeAliasTransformer,\n FunctionDeclaration,\n MethodDeclaration,\n PropertyDeclaration,\n VariableStatementTransformer,\n VariableDeclaration,\n SourceFileTransformer,\n ClassDecelerationTransformer,\n Constructor,\n PropertySignature,\n LiteralTypeTransformer,\n IndexSignature,\n InterfaceDeclarationTransformer,\n MethodSignatureTransformer,\n EnumDeclarationTransformer,\n} from './transformers';\nimport { CheckTypesCmd } from './cmds/check-types.cmd';\n\nexport type TsMode = 'build' | 'dev';\n\nexport type SchemaTransformerSlot = SlotRegistry<SchemaTransformer[]>;\n\nexport type TsConfigTransformContext = {\n // mode: TsMode;\n};\n\nexport type TsConfigTransformer = (\n config: TypescriptConfigMutator,\n context: TsConfigTransformContext\n) => TypescriptConfigMutator;\n\nexport class TypescriptMain {\n constructor(\n private logger: Logger,\n private schemaTransformerSlot: SchemaTransformerSlot,\n private workspace: Workspace,\n private depResolver: DependencyResolverMain\n ) {}\n\n private tsServer: TsserverClient;\n /**\n * create a new compiler.\n */\n createCompiler(\n options: TypeScriptCompilerOptions,\n transformers: TsConfigTransformer[] = [],\n tsModule = ts\n ): Compiler {\n const configMutator = new TypescriptConfigMutator(options);\n const transformerContext: TsConfigTransformContext = {};\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n return new TypescriptCompiler(TypescriptAspect.id, this.logger, afterMutation.raw, tsModule);\n }\n\n /**\n * get TsserverClient instance if initiated already, otherwise, return undefined.\n */\n getTsserverClient(): TsserverClient | undefined {\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API.\n * @param projectPath absolute path of the project root directory\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClient(\n projectPath: string,\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n this.tsServer = new TsserverClient(projectPath, this.logger, options, files);\n this.tsServer.init();\n return this.tsServer;\n }\n\n /**\n * starts a tsserver process to communicate with its API. use only when running on the workspace.\n * @param options TsserverClientOpts\n * @param files optionally, if check-types is enabled, provide files to open and type check.\n * @returns TsserverClient\n */\n async initTsserverClientFromWorkspace(\n options: TsserverClientOpts = {},\n files: string[] = []\n ): Promise<TsserverClient> {\n if (!this.workspace) {\n throw new Error(`initTsserverClientFromWorkspace: workspace was not found`);\n }\n return this.initTsserverClient(this.workspace.path, options, files);\n }\n\n /**\n * Create a compiler instance and run the cjs transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createCjsCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getCjsTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a compiler instance and run the esm transformer for it\n * @param options\n * @param transformers\n * @param tsModule\n * @returns\n */\n createEsmCompiler(options: TypeScriptCompilerOptions, transformers: TsConfigTransformer[] = [], tsModule = ts) {\n return this.createCompiler(options, [this.getEsmTransformer(), ...transformers], tsModule);\n }\n\n /**\n * Create a transformer that change the ts module to CommonJS\n * @returns\n */\n getCjsTransformer(): TsConfigTransformer {\n const cjsTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('CommonJS');\n return config;\n };\n return cjsTransformer;\n }\n\n /**\n * Create a transformer that change the ts module to ES2020\n * @returns\n */\n getEsmTransformer(): TsConfigTransformer {\n const esmTransformer = (config: TypescriptConfigMutator) => {\n config.setModule('ES2020');\n return config;\n };\n return esmTransformer;\n }\n\n /**\n * create an instance of a typescript semantic schema extractor.\n */\n createSchemaExtractor(tsconfig: any, path?: string): SchemaExtractor {\n return new TypeScriptExtractor(\n tsconfig,\n this.schemaTransformerSlot,\n this,\n path || this.workspace.path,\n this.depResolver,\n this.workspace\n );\n }\n\n /**\n * add the default package json properties to the component\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getCjsPackageJsonProps(): PackageJsonProps {\n return {\n main: 'dist/{main}.js',\n types: '{main}.ts',\n };\n }\n\n /**\n * add type: module to the package.json props and the default props\n * :TODO @gilad why do we need this DSL? can't I just get the args here.\n */\n getEsmPackageJsonProps(): PackageJsonProps {\n return {\n // main: 'dist-esm/{main}.js',\n main: 'dist/{main}.js',\n type: 'module',\n types: '{main}.ts',\n };\n }\n\n public getSupportedFilesForTsserver(components: Component[]): string[] {\n const files = components\n .map((c) => c.filesystem.files)\n .flat()\n .map((f) => f.path);\n return files.filter((f) => f.endsWith('.ts') || f.endsWith('.tsx'));\n }\n\n private async onPreWatch(components: Component[], watchOpts: WatchOptions) {\n const workspace = this.workspace;\n if (!workspace || !watchOpts.spawnTSServer) {\n return;\n }\n const { verbose, checkTypes } = watchOpts;\n const files = checkTypes ? this.getSupportedFilesForTsserver(components) : [];\n const printTypeErrors = Boolean(checkTypes);\n await this.initTsserverClientFromWorkspace({ verbose, checkTypes, printTypeErrors }, files);\n }\n\n private async onComponentChange(component: Component, files: string[]) {\n if (!this.tsServer) {\n return {\n results: 'N/A',\n };\n }\n await pMapSeries(files, (file) => this.tsServer.onFileChange(file));\n return {\n results: 'succeed',\n };\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n SchemaAspect,\n LoggerAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n CLIAspect,\n DependencyResolverAspect,\n ];\n static slots = [Slot.withType<SchemaTransformer[]>()];\n\n static async provider(\n [schema, loggerExt, aspectLoader, workspace, cli, depResolver]: [\n SchemaMain,\n LoggerMain,\n AspectLoaderMain,\n Workspace,\n CLIMain,\n DependencyResolverMain\n ],\n config,\n [schemaTransformerSlot]: [SchemaTransformerSlot]\n ) {\n schema.registerParser(new TypeScriptParser());\n const logger = loggerExt.createLogger(TypescriptAspect.id);\n aspectLoader.registerPlugins([new SchemaTransformerPlugin(schemaTransformerSlot)]);\n const tsMain = new TypescriptMain(logger, schemaTransformerSlot, workspace, depResolver);\n schemaTransformerSlot.register([\n new ExportDeclaration(),\n new FunctionDeclaration(),\n new MethodDeclaration(),\n new PropertyDeclaration(),\n new VariableStatementTransformer(),\n new VariableDeclaration(),\n new Constructor(),\n new SourceFileTransformer(),\n new TypeAliasTransformer(),\n new ClassDecelerationTransformer(),\n new PropertySignature(),\n new LiteralTypeTransformer(),\n new IndexSignature(),\n new InterfaceDeclarationTransformer(),\n new MethodSignatureTransformer(),\n new EnumDeclarationTransformer(),\n ]);\n\n if (workspace) {\n workspace.registerOnPreWatch(tsMain.onPreWatch.bind(this));\n workspace.registerOnComponentChange(tsMain.onComponentChange.bind(this));\n workspace.registerOnComponentAdd(tsMain.onComponentChange.bind(this));\n }\n\n const checkTypesCmd = new CheckTypesCmd(tsMain, workspace, logger);\n cli.register(checkTypesCmd);\n\n return tsMain;\n }\n}\n\nTypescriptAspect.addRuntime(TypescriptMain);\n\nexport function runTransformersWithContext(\n config: TypescriptConfigMutator,\n transformers: TsConfigTransformer[] = [],\n context: TsConfigTransformContext\n): TypescriptConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAkBA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAeO,MAAMA,cAAN,CAAqB;EAC1BC,WAAW,CACDC,MADC,EAEDC,qBAFC,EAGDC,SAHC,EAIDC,WAJC,EAKT;IAAA,KAJQH,MAIR,GAJQA,MAIR;IAAA,KAHQC,qBAGR,GAHQA,qBAGR;IAAA,KAFQC,SAER,GAFQA,SAER;IAAA,KADQC,WACR,GADQA,WACR;IAAA;EAAE;;EAGJ;AACF;AACA;EACEC,cAAc,CACZC,OADY,EAEZC,YAAmC,GAAG,EAF1B,EAGZC,QAAQ,GAAGC,qBAHC,EAIF;IACV,MAAMC,aAAa,GAAG,KAAIC,4CAAJ,EAA4BL,OAA5B,CAAtB;IACA,MAAMM,kBAA4C,GAAG,EAArD;IACA,MAAMC,aAAa,GAAGC,0BAA0B,CAACJ,aAAa,CAACK,KAAd,EAAD,EAAwBR,YAAxB,EAAsCK,kBAAtC,CAAhD;IACA,OAAO,KAAII,iCAAJ,EAAuBC,+BAAA,CAAiBC,EAAxC,EAA4C,KAAKjB,MAAjD,EAAyDY,aAAa,CAACM,GAAvE,EAA4EX,QAA5E,CAAP;EACD;EAED;AACF;AACA;;;EACEY,iBAAiB,GAA+B;IAC9C,OAAO,KAAKC,QAAZ;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;EAC0B,MAAlBC,kBAAkB,CACtBC,WADsB,EAEtBjB,OAA2B,GAAG,EAFR,EAGtBkB,KAAe,GAAG,EAHI,EAIG;IACzB,KAAKH,QAAL,GAAgB,KAAII,0BAAJ,EAAmBF,WAAnB,EAAgC,KAAKtB,MAArC,EAA6CK,OAA7C,EAAsDkB,KAAtD,CAAhB;IACA,KAAKH,QAAL,CAAcK,IAAd;IACA,OAAO,KAAKL,QAAZ;EACD;EAED;AACF;AACA;AACA;AACA;AACA;;;EACuC,MAA/BM,+BAA+B,CACnCrB,OAA2B,GAAG,EADK,EAEnCkB,KAAe,GAAG,EAFiB,EAGV;IACzB,IAAI,CAAC,KAAKrB,SAAV,EAAqB;MACnB,MAAM,IAAIyB,KAAJ,CAAW,0DAAX,CAAN;IACD;;IACD,OAAO,KAAKN,kBAAL,CAAwB,KAAKnB,SAAL,CAAe0B,IAAvC,EAA6CvB,OAA7C,EAAsDkB,KAAtD,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;EACEM,iBAAiB,CAACxB,OAAD,EAAqCC,YAAmC,GAAG,EAA3E,EAA+EC,QAAQ,GAAGC,qBAA1F,EAA8F;IAC7G,OAAO,KAAKJ,cAAL,CAAoBC,OAApB,EAA6B,CAAC,KAAKyB,iBAAL,EAAD,EAA2B,GAAGxB,YAA9B,CAA7B,EAA0EC,QAA1E,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;EACEwB,iBAAiB,CAAC1B,OAAD,EAAqCC,YAAmC,GAAG,EAA3E,EAA+EC,QAAQ,GAAGC,qBAA1F,EAA8F;IAC7G,OAAO,KAAKJ,cAAL,CAAoBC,OAApB,EAA6B,CAAC,KAAK2B,iBAAL,EAAD,EAA2B,GAAG1B,YAA9B,CAA7B,EAA0EC,QAA1E,CAAP;EACD;EAED;AACF;AACA;AACA;;;EACEuB,iBAAiB,GAAwB;IACvC,MAAMG,cAAc,GAAIC,MAAD,IAAqC;MAC1DA,MAAM,CAACC,SAAP,CAAiB,UAAjB;MACA,OAAOD,MAAP;IACD,CAHD;;IAIA,OAAOD,cAAP;EACD;EAED;AACF;AACA;AACA;;;EACED,iBAAiB,GAAwB;IACvC,MAAMI,cAAc,GAAIF,MAAD,IAAqC;MAC1DA,MAAM,CAACC,SAAP,CAAiB,QAAjB;MACA,OAAOD,MAAP;IACD,CAHD;;IAIA,OAAOE,cAAP;EACD;EAED;AACF;AACA;;;EACEC,qBAAqB,CAACC,QAAD,EAAgBV,IAAhB,EAAgD;IACnE,OAAO,KAAIW,kCAAJ,EACLD,QADK,EAEL,KAAKrC,qBAFA,EAGL,IAHK,EAIL2B,IAAI,IAAI,KAAK1B,SAAL,CAAe0B,IAJlB,EAKL,KAAKzB,WALA,EAML,KAAKD,SANA,CAAP;EAQD;EAED;AACF;AACA;AACA;;;EACEsC,sBAAsB,GAAqB;IACzC,OAAO;MACLC,IAAI,EAAE,gBADD;MAELC,KAAK,EAAE;IAFF,CAAP;EAID;EAED;AACF;AACA;AACA;;;EACEC,sBAAsB,GAAqB;IACzC,OAAO;MACL;MACAF,IAAI,EAAE,gBAFD;MAGLG,IAAI,EAAE,QAHD;MAILF,KAAK,EAAE;IAJF,CAAP;EAMD;;EAEMG,4BAA4B,CAACC,UAAD,EAAoC;IACrE,MAAMvB,KAAK,GAAGuB,UAAU,CACrBC,GADW,CACNC,CAAD,IAAOA,CAAC,CAACC,UAAF,CAAa1B,KADb,EAEX2B,IAFW,GAGXH,GAHW,CAGNI,CAAD,IAAOA,CAAC,CAACvB,IAHF,CAAd;IAIA,OAAOL,KAAK,CAAC6B,MAAN,CAAcD,CAAD,IAAOA,CAAC,CAACE,QAAF,CAAW,KAAX,KAAqBF,CAAC,CAACE,QAAF,CAAW,MAAX,CAAzC,CAAP;EACD;;EAEuB,MAAVC,UAAU,CAACR,UAAD,EAA0BS,SAA1B,EAAmD;IACzE,MAAMrD,SAAS,GAAG,KAAKA,SAAvB;;IACA,IAAI,CAACA,SAAD,IAAc,CAACqD,SAAS,CAACC,aAA7B,EAA4C;MAC1C;IACD;;IACD,MAAM;MAAEC,OAAF;MAAWC;IAAX,IAA0BH,SAAhC;IACA,MAAMhC,KAAK,GAAGmC,UAAU,GAAG,KAAKb,4BAAL,CAAkCC,UAAlC,CAAH,GAAmD,EAA3E;IACA,MAAMa,eAAe,GAAGC,OAAO,CAACF,UAAD,CAA/B;IACA,MAAM,KAAKhC,+BAAL,CAAqC;MAAE+B,OAAF;MAAWC,UAAX;MAAuBC;IAAvB,CAArC,EAA+EpC,KAA/E,CAAN;EACD;;EAE8B,MAAjBsC,iBAAiB,CAACC,SAAD,EAAuBvC,KAAvB,EAAwC;IACrE,IAAI,CAAC,KAAKH,QAAV,EAAoB;MAClB,OAAO;QACL2C,OAAO,EAAE;MADJ,CAAP;IAGD;;IACD,MAAM,IAAAC,qBAAA,EAAWzC,KAAX,EAAmB0C,IAAD,IAAU,KAAK7C,QAAL,CAAc8C,YAAd,CAA2BD,IAA3B,CAA5B,CAAN;IACA,OAAO;MACLF,OAAO,EAAE;IADJ,CAAP;EAGD;;EAaoB,aAARI,QAAQ,CACnB,CAACC,MAAD,EAASC,SAAT,EAAoBC,YAApB,EAAkCpE,SAAlC,EAA6CqE,GAA7C,EAAkDpE,WAAlD,CADmB,EASnB+B,MATmB,EAUnB,CAACjC,qBAAD,CAVmB,EAWnB;IACAmE,MAAM,CAACI,cAAP,CAAsB,KAAIC,+BAAJ,GAAtB;IACA,MAAMzE,MAAM,GAAGqE,SAAS,CAACK,YAAV,CAAuB1D,+BAAA,CAAiBC,EAAxC,CAAf;IACAqD,YAAY,CAACK,eAAb,CAA6B,CAAC,KAAIC,4CAAJ,EAA4B3E,qBAA5B,CAAD,CAA7B;IACA,MAAM4E,MAAM,GAAG,IAAI/E,cAAJ,CAAmBE,MAAnB,EAA2BC,qBAA3B,EAAkDC,SAAlD,EAA6DC,WAA7D,CAAf;IACAF,qBAAqB,CAAC6E,QAAtB,CAA+B,CAC7B,KAAIC,iCAAJ,GAD6B,EAE7B,KAAIC,mCAAJ,GAF6B,EAG7B,KAAIC,iCAAJ,GAH6B,EAI7B,KAAIC,mCAAJ,GAJ6B,EAK7B,KAAIC,4CAAJ,GAL6B,EAM7B,KAAIC,mCAAJ,GAN6B,EAO7B,KAAIC,2BAAJ,GAP6B,EAQ7B,KAAIC,qCAAJ,GAR6B,EAS7B,KAAIC,oCAAJ,GAT6B,EAU7B,KAAIC,4CAAJ,GAV6B,EAW7B,KAAIC,iCAAJ,GAX6B,EAY7B,KAAIC,sCAAJ,GAZ6B,EAa7B,KAAIC,8BAAJ,GAb6B,EAc7B,KAAIC,+CAAJ,GAd6B,EAe7B,KAAIC,0CAAJ,GAf6B,EAgB7B,KAAIC,0CAAJ,GAhB6B,CAA/B;;IAmBA,IAAI5F,SAAJ,EAAe;MACbA,SAAS,CAAC6F,kBAAV,CAA6BlB,MAAM,CAACvB,UAAP,CAAkB0C,IAAlB,CAAuB,IAAvB,CAA7B;MACA9F,SAAS,CAAC+F,yBAAV,CAAoCpB,MAAM,CAAChB,iBAAP,CAAyBmC,IAAzB,CAA8B,IAA9B,CAApC;MACA9F,SAAS,CAACgG,sBAAV,CAAiCrB,MAAM,CAAChB,iBAAP,CAAyBmC,IAAzB,CAA8B,IAA9B,CAAjC;IACD;;IAED,MAAMG,aAAa,GAAG,KAAIC,2BAAJ,EAAkBvB,MAAlB,EAA0B3E,SAA1B,EAAqCF,MAArC,CAAtB;IACAuE,GAAG,CAACO,QAAJ,CAAaqB,aAAb;IAEA,OAAOtB,MAAP;EACD;;AA1OyB;;;gCAAf/E,c,aAkLMuG,kB;gCAlLNvG,c,kBAmLW,CACpBwG,sBADoB,EAEpBC,sBAFoB,EAGpBC,uBAHoB,EAIpBC,4BAJoB,EAKpBC,gBALoB,EAMpBC,8CANoB,C;gCAnLX7G,c,WA2LI,CAAC8G,eAAA,CAAKC,QAAL,EAAD,C;;AAkDjB7F,+BAAA,CAAiB8F,UAAjB,CAA4BhH,cAA5B;;AAEO,SAASe,0BAAT,CACLqB,MADK,EAEL5B,YAAmC,GAAG,EAFjC,EAGLyG,OAHK,EAIoB;EACzB,IAAI,CAACC,KAAK,CAACC,OAAN,CAAc3G,YAAd,CAAL,EAAkC,OAAO4B,MAAP;EAClC,MAAMgF,SAAS,GAAG5G,YAAY,CAAC6G,MAAb,CAAoB,CAACC,GAAD,EAAMC,WAAN,KAAsB;IAC1D,OAAOA,WAAW,CAACD,GAAD,EAAML,OAAN,CAAlB;EACD,CAFiB,EAEf7E,MAFe,CAAlB;EAGA,OAAOgF,SAAP;AACD"}
@@ -1,12 +1,12 @@
1
1
  import { Parser } from '@teambit/schema';
2
- import { Export, Module, StaticProperties } from '@teambit/semantics.entities.semantic-schema';
2
+ import { Export, StaticProperties } from '@teambit/semantics.entities.semantic-schema';
3
3
  import { Logger } from '@teambit/logger';
4
4
  import { SourceFile } from 'typescript';
5
5
  export declare class TypeScriptParser implements Parser {
6
6
  private logger?;
7
7
  extension: RegExp;
8
8
  getExports(sourceFile: SourceFile): Export[];
9
- parseModule(modulePath: string): Module;
9
+ parseModule(modulePath: string): Export[];
10
10
  parseStaticProperties(sourceFile: SourceFile): Map<string, StaticProperties>;
11
11
  constructor(logger?: Logger | undefined);
12
12
  }
@@ -67,19 +67,19 @@ class TypeScriptParser {
67
67
  if ((0, _typescript().isVariableStatement)(statement)) {
68
68
  const child = statement.declarationList.declarations[0];
69
69
  const name = child.name.text;
70
- return new (_semanticsEntities().Export)(name, undefined, staticProperties.get(name));
70
+ return new (_semanticsEntities().Export)(name, staticProperties.get(name));
71
71
  }
72
72
 
73
73
  if ((0, _typescript().isFunctionDeclaration)(statement)) {
74
74
  if (!statement.name) return undefined;
75
75
  const name = statement.name.text;
76
- return new (_semanticsEntities().Export)(name, undefined, staticProperties.get(name));
76
+ return new (_semanticsEntities().Export)(name, staticProperties.get(name));
77
77
  }
78
78
 
79
79
  if ((0, _typescript().isClassDeclaration)(statement)) {
80
80
  if (!statement.name) return undefined;
81
81
  const name = statement.name.text;
82
- return new (_semanticsEntities().Export)(name, undefined, staticProperties.get(name));
82
+ return new (_semanticsEntities().Export)(name, staticProperties.get(name));
83
83
  }
84
84
 
85
85
  return undefined;
@@ -93,7 +93,7 @@ class TypeScriptParser {
93
93
  const ast = _typescript().default.createSourceFile(modulePath, (0, _fsExtra().readFileSync)(modulePath, 'utf8'), _typescript().default.ScriptTarget.Latest);
94
94
 
95
95
  const moduleExports = this.getExports(ast);
96
- return new (_semanticsEntities().Module)(moduleExports);
96
+ return moduleExports;
97
97
  }
98
98
 
99
99
  parseStaticProperties(sourceFile) {
@@ -1 +1 @@
1
- {"version":3,"sources":["typescript.parser.ts"],"names":["TypeScriptParser","getExports","sourceFile","staticProperties","parseStaticProperties","exports","statements","filter","statement","modifiers","find","modifier","kind","ts","SyntaxKind","ExportKeyword","exportModels","map","child","declarationList","declarations","name","text","Export","undefined","get","withoutEmpty","exportModel","parseModule","modulePath","ast","createSourceFile","ScriptTarget","Latest","moduleExports","Module","exportStaticProperties","Map","forEach","isExpressionStatement","isBinaryExpression","expression","operatorToken","EqualsToken","isPropertyAccessExpression","left","isIdentifier","targetName","propertyName","has","set","existingProperties","isStringLiteral","right","isNumericLiteral","UndefinedKeyword","NullKeyword","TrueKeyword","FalseKeyword","err","logger","error","constructor"],"mappings":"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","sourcesContent":["import { Parser } from '@teambit/schema';\nimport { Export, Module, StaticProperties } from '@teambit/semantics.entities.semantic-schema';\nimport { Logger } from '@teambit/logger';\nimport { readFileSync } from 'fs-extra';\nimport ts, {\n isClassDeclaration,\n isFunctionDeclaration,\n isVariableStatement,\n SourceFile,\n VariableStatement,\n} from 'typescript';\n\nexport class TypeScriptParser implements Parser {\n public extension = /^.*\\.(js|jsx|ts|tsx)$/;\n\n getExports(sourceFile: SourceFile): Export[] {\n const staticProperties = this.parseStaticProperties(sourceFile);\n\n const exports = sourceFile.statements.filter((statement) => {\n if (!statement.modifiers) return false;\n return statement.modifiers.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n });\n });\n\n const exportModels = exports.map((statement) => {\n // todo refactor to a registry of variable statements.\n if (isVariableStatement(statement)) {\n const child = (statement as VariableStatement).declarationList.declarations[0];\n const name = (child as any).name.text;\n return new Export(name, undefined, staticProperties.get(name));\n }\n\n if (isFunctionDeclaration(statement)) {\n if (!statement.name) return undefined;\n const name = statement.name.text;\n return new Export(name, undefined, staticProperties.get(name));\n }\n\n if (isClassDeclaration(statement)) {\n if (!statement.name) return undefined;\n const name = statement.name.text;\n return new Export(name, undefined, staticProperties.get(name));\n }\n\n return undefined;\n });\n const withoutEmpty = exportModels.filter((exportModel) => exportModel !== undefined);\n // @ts-ignore\n return withoutEmpty;\n }\n\n parseModule(modulePath: string) {\n const ast = ts.createSourceFile(modulePath, readFileSync(modulePath, 'utf8'), ts.ScriptTarget.Latest);\n\n const moduleExports = this.getExports(ast);\n\n return new Module(moduleExports);\n }\n\n parseStaticProperties(sourceFile: SourceFile) {\n // TODO - should we also parse staticProperties inside classes / objects?\n\n const exportStaticProperties = new Map<string, StaticProperties>();\n\n sourceFile.statements.forEach((statement) => {\n try {\n if (!ts.isExpressionStatement(statement)) return;\n if (!ts.isBinaryExpression(statement.expression)) return;\n if (statement.expression.operatorToken.kind !== ts.SyntaxKind.EqualsToken) return;\n if (!ts.isPropertyAccessExpression(statement.expression.left)) return;\n if (!ts.isIdentifier(statement.expression.left.expression)) return;\n\n const targetName = statement.expression.left.expression.text;\n const propertyName = statement.expression.left.name.text;\n\n if (!exportStaticProperties.has(targetName)) exportStaticProperties.set(targetName, new Map());\n\n const existingProperties = exportStaticProperties.get(targetName);\n\n if (ts.isStringLiteral(statement.expression.right)) {\n existingProperties?.set(propertyName, statement.expression.right.text);\n } else if (ts.isNumericLiteral(statement.expression.right)) {\n existingProperties?.set(propertyName, +statement.expression.right.text);\n } else if (statement.expression.right.kind === ts.SyntaxKind.UndefinedKeyword) {\n existingProperties?.set(propertyName, undefined);\n } else if (statement.expression.right.kind === ts.SyntaxKind.NullKeyword) {\n existingProperties?.set(propertyName, null);\n } else if (statement.expression.right.kind === ts.SyntaxKind.TrueKeyword) {\n existingProperties?.set(propertyName, true);\n } else if (statement.expression.right.kind === ts.SyntaxKind.FalseKeyword) {\n existingProperties?.set(propertyName, false);\n }\n } catch (err) {\n this.logger?.error('failed parsing static properties', err);\n }\n });\n\n return exportStaticProperties;\n }\n\n constructor(private logger?: Logger | undefined) {}\n}\n"]}
1
+ {"version":3,"names":["TypeScriptParser","getExports","sourceFile","staticProperties","parseStaticProperties","exports","statements","filter","statement","modifiers","find","modifier","kind","ts","SyntaxKind","ExportKeyword","exportModels","map","isVariableStatement","child","declarationList","declarations","name","text","Export","get","isFunctionDeclaration","undefined","isClassDeclaration","withoutEmpty","exportModel","parseModule","modulePath","ast","createSourceFile","readFileSync","ScriptTarget","Latest","moduleExports","exportStaticProperties","Map","forEach","isExpressionStatement","isBinaryExpression","expression","operatorToken","EqualsToken","isPropertyAccessExpression","left","isIdentifier","targetName","propertyName","has","set","existingProperties","isStringLiteral","right","isNumericLiteral","UndefinedKeyword","NullKeyword","TrueKeyword","FalseKeyword","err","logger","error","constructor"],"sources":["typescript.parser.ts"],"sourcesContent":["import { Parser } from '@teambit/schema';\nimport { Export, StaticProperties } from '@teambit/semantics.entities.semantic-schema';\nimport { Logger } from '@teambit/logger';\nimport { readFileSync } from 'fs-extra';\nimport ts, {\n isClassDeclaration,\n isFunctionDeclaration,\n isVariableStatement,\n SourceFile,\n VariableStatement,\n} from 'typescript';\n\nexport class TypeScriptParser implements Parser {\n public extension = /^.*\\.(js|jsx|ts|tsx)$/;\n\n getExports(sourceFile: SourceFile): Export[] {\n const staticProperties = this.parseStaticProperties(sourceFile);\n\n const exports = sourceFile.statements.filter((statement) => {\n if (!statement.modifiers) return false;\n return statement.modifiers.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n });\n });\n\n const exportModels = exports.map((statement) => {\n // todo refactor to a registry of variable statements.\n if (isVariableStatement(statement)) {\n const child = (statement as VariableStatement).declarationList.declarations[0];\n const name = (child as any).name.text;\n return new Export(name, staticProperties.get(name));\n }\n\n if (isFunctionDeclaration(statement)) {\n if (!statement.name) return undefined;\n const name = statement.name.text;\n return new Export(name, staticProperties.get(name));\n }\n\n if (isClassDeclaration(statement)) {\n if (!statement.name) return undefined;\n const name = statement.name.text;\n return new Export(name, staticProperties.get(name));\n }\n\n return undefined;\n });\n const withoutEmpty = exportModels.filter((exportModel) => exportModel !== undefined);\n // @ts-ignore\n return withoutEmpty;\n }\n\n parseModule(modulePath: string) {\n const ast = ts.createSourceFile(modulePath, readFileSync(modulePath, 'utf8'), ts.ScriptTarget.Latest);\n\n const moduleExports = this.getExports(ast);\n return moduleExports;\n }\n\n parseStaticProperties(sourceFile: SourceFile) {\n // TODO - should we also parse staticProperties inside classes / objects?\n\n const exportStaticProperties = new Map<string, StaticProperties>();\n\n sourceFile.statements.forEach((statement) => {\n try {\n if (!ts.isExpressionStatement(statement)) return;\n if (!ts.isBinaryExpression(statement.expression)) return;\n if (statement.expression.operatorToken.kind !== ts.SyntaxKind.EqualsToken) return;\n if (!ts.isPropertyAccessExpression(statement.expression.left)) return;\n if (!ts.isIdentifier(statement.expression.left.expression)) return;\n\n const targetName = statement.expression.left.expression.text;\n const propertyName = statement.expression.left.name.text;\n\n if (!exportStaticProperties.has(targetName)) exportStaticProperties.set(targetName, new Map());\n\n const existingProperties = exportStaticProperties.get(targetName);\n\n if (ts.isStringLiteral(statement.expression.right)) {\n existingProperties?.set(propertyName, statement.expression.right.text);\n } else if (ts.isNumericLiteral(statement.expression.right)) {\n existingProperties?.set(propertyName, +statement.expression.right.text);\n } else if (statement.expression.right.kind === ts.SyntaxKind.UndefinedKeyword) {\n existingProperties?.set(propertyName, undefined);\n } else if (statement.expression.right.kind === ts.SyntaxKind.NullKeyword) {\n existingProperties?.set(propertyName, null);\n } else if (statement.expression.right.kind === ts.SyntaxKind.TrueKeyword) {\n existingProperties?.set(propertyName, true);\n } else if (statement.expression.right.kind === ts.SyntaxKind.FalseKeyword) {\n existingProperties?.set(propertyName, false);\n }\n } catch (err) {\n this.logger?.error('failed parsing static properties', err);\n }\n });\n\n return exportStaticProperties;\n }\n\n constructor(private logger?: Logger | undefined) {}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["typescript.parser.spec.ts"],"names":["describe","exampleArrowFunction","exampleFunction","exampleClass","it","ast","ts","createSourceFile","ScriptTarget","Latest","exports","TypeScriptParser","getExports","exportArrow","find","x","identifier","to","exist","exportFunction","exportClass","staticProperties","get","equal","exampleFile","parseStaticProperties","exportHello","undefined","has","be","false"],"mappings":"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","sourcesContent":["import ts from 'typescript';\nimport { expect } from 'chai';\n\nimport { TypeScriptParser } from './typescript.parser';\n\ndescribe('TypescriptParser', () => {\n describe('getExports', () => {\n const exampleArrowFunction = `\n export const arrow = () => { return 3; }\n arrow.textProperty = \"propertyValue\";\n `;\n\n const exampleFunction = `\n export function func() { return 3; }\n func.textProperty = \"propertyValue\";\n `;\n\n const exampleClass = `\n export class classy{ render() { return 3; } }\n classy.textProperty = \"propertyValue\";\n `;\n\n it('should parse arrowFunctions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleArrowFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportArrow = exports.find((x) => x.identifier === 'arrow');\n\n expect(exportArrow).to.exist;\n });\n\n it('should parse function exports', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction = exports.find((x) => x.identifier === 'func');\n\n expect(exportFunction).to.exist;\n });\n\n it('should parse classes', () => {\n const ast = ts.createSourceFile('example.tsx', exampleClass, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'classy');\n\n expect(exportClass).to.exist;\n });\n\n describe('staticProperties', () => {\n it('should include staticProperties, when on arrowFunctions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleArrowFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportArrow = exports.find((x) => x.identifier === 'arrow');\n\n expect(exportArrow?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n\n it('should include staticProperties, when on regular functions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'func');\n\n expect(exportClass?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n\n it('should include staticProperties, when on classes', () => {\n const ast = ts.createSourceFile('example.tsx', exampleClass, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'classy');\n\n expect(exportClass?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n });\n });\n\n describe('collectStaticProperties', () => {\n const exampleFile = `\n export const hello = () => { return 3; }\n\n hello.text = \"is\";\n hello.count = 3;\n hello.nullish = null;\n hello.undef = undefined;\n hello.disable = false;\n hello.enable = true;\n hello.complextLiteral = \\`what \\${hello.text} it?\\`;\n hello.nonAssignedProperty += 'value';\n `;\n\n it('should parse all primitive values', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n\n expect(staticProperties).to.exist;\n\n const exportHello = staticProperties.get('hello');\n expect(exportHello).to.exist;\n\n expect(exportHello?.get('text')).to.equal('is');\n expect(exportHello?.get('count')).to.equal(3);\n expect(exportHello?.get('nullish')).to.equal(null);\n expect(exportHello?.get('undef')).to.equal(undefined);\n expect(exportHello?.get('disable')).to.equal(false);\n expect(exportHello?.get('enable')).to.equal(true);\n\n expect(exportHello?.has('complextLiteral')).to.be.false;\n });\n\n it('should skip non primitive values', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n const exportHello = staticProperties.get('hello');\n\n expect(exportHello?.has('complextLiteral')).to.be.false;\n });\n\n it('should skip non assignment statements', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n const exportHello = staticProperties.get('hello');\n\n expect(exportHello?.has('nonAssignedProperty')).to.be.false;\n });\n });\n});\n"]}
1
+ {"version":3,"names":["describe","exampleArrowFunction","exampleFunction","exampleClass","it","ast","ts","createSourceFile","ScriptTarget","Latest","exports","TypeScriptParser","getExports","exportArrow","find","x","identifier","expect","to","exist","exportFunction","exportClass","staticProperties","get","equal","exampleFile","parseStaticProperties","exportHello","undefined","has","be","false"],"sources":["typescript.parser.spec.ts"],"sourcesContent":["import ts from 'typescript';\nimport { expect } from 'chai';\n\nimport { TypeScriptParser } from './typescript.parser';\n\ndescribe('TypescriptParser', () => {\n describe('getExports', () => {\n const exampleArrowFunction = `\n export const arrow = () => { return 3; }\n arrow.textProperty = \"propertyValue\";\n `;\n\n const exampleFunction = `\n export function func() { return 3; }\n func.textProperty = \"propertyValue\";\n `;\n\n const exampleClass = `\n export class classy{ render() { return 3; } }\n classy.textProperty = \"propertyValue\";\n `;\n\n it('should parse arrowFunctions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleArrowFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportArrow = exports.find((x) => x.identifier === 'arrow');\n\n expect(exportArrow).to.exist;\n });\n\n it('should parse function exports', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportFunction = exports.find((x) => x.identifier === 'func');\n\n expect(exportFunction).to.exist;\n });\n\n it('should parse classes', () => {\n const ast = ts.createSourceFile('example.tsx', exampleClass, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'classy');\n\n expect(exportClass).to.exist;\n });\n\n describe('staticProperties', () => {\n it('should include staticProperties, when on arrowFunctions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleArrowFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportArrow = exports.find((x) => x.identifier === 'arrow');\n\n expect(exportArrow?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n\n it('should include staticProperties, when on regular functions', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFunction, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'func');\n\n expect(exportClass?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n\n it('should include staticProperties, when on classes', () => {\n const ast = ts.createSourceFile('example.tsx', exampleClass, ts.ScriptTarget.Latest);\n const exports = new TypeScriptParser().getExports(ast);\n\n const exportClass = exports.find((x) => x.identifier === 'classy');\n\n expect(exportClass?.staticProperties?.get('textProperty')).to.equal('propertyValue');\n });\n });\n });\n\n describe('collectStaticProperties', () => {\n const exampleFile = `\n export const hello = () => { return 3; }\n\n hello.text = \"is\";\n hello.count = 3;\n hello.nullish = null;\n hello.undef = undefined;\n hello.disable = false;\n hello.enable = true;\n hello.complextLiteral = \\`what \\${hello.text} it?\\`;\n hello.nonAssignedProperty += 'value';\n `;\n\n it('should parse all primitive values', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n\n expect(staticProperties).to.exist;\n\n const exportHello = staticProperties.get('hello');\n expect(exportHello).to.exist;\n\n expect(exportHello?.get('text')).to.equal('is');\n expect(exportHello?.get('count')).to.equal(3);\n expect(exportHello?.get('nullish')).to.equal(null);\n expect(exportHello?.get('undef')).to.equal(undefined);\n expect(exportHello?.get('disable')).to.equal(false);\n expect(exportHello?.get('enable')).to.equal(true);\n\n expect(exportHello?.has('complextLiteral')).to.be.false;\n });\n\n it('should skip non primitive values', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n const exportHello = staticProperties.get('hello');\n\n expect(exportHello?.has('complextLiteral')).to.be.false;\n });\n\n it('should skip non assignment statements', () => {\n const ast = ts.createSourceFile('example.tsx', exampleFile, ts.ScriptTarget.Latest);\n const staticProperties = new TypeScriptParser().parseStaticProperties(ast);\n const exportHello = staticProperties.get('hello');\n\n expect(exportHello?.has('nonAssignedProperty')).to.be.false;\n });\n });\n});\n"],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  import ts, { Node } from 'typescript';
2
2
  import { Component } from '@teambit/component';
3
+ import { Location } from '@teambit/semantics.entities.semantic-schema';
3
4
 
4
5
  export class TransformerNotFound extends Error {
5
- constructor(readonly node: Node, readonly component: Component) {
6
+ constructor(readonly node: Node, readonly component: Component, location: Location) {
6
7
  super(
7
8
  `typescript: could not find schema transformer for node of kind ${node.kind} (${
8
9
  ts.SyntaxKind[node.kind]
9
10
  }) in component ${component.id.toString()}.
10
- node text: ${node.getText()}`
11
+ location: ${location.file}, line: ${location.line}, character: ${location.character}.
12
+ node-text: ${node.getText()}`
11
13
  );
12
14
  }
13
15
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/typescript",
3
- "version": "0.0.736",
3
+ "version": "0.0.739",
4
4
  "homepage": "https://bit.dev/teambit/typescript/typescript",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.typescript",
8
8
  "name": "typescript",
9
- "version": "0.0.736"
9
+ "version": "0.0.739"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -18,20 +18,21 @@
18
18
  "@babel/runtime": "7.12.18",
19
19
  "core-js": "^3.0.0",
20
20
  "@teambit/harmony": "0.3.3",
21
- "@teambit/compiler": "0.0.736",
21
+ "@teambit/compiler": "0.0.739",
22
22
  "@teambit/typescript.modules.ts-config-mutator": "0.0.68",
23
- "@teambit/component": "0.0.736",
24
- "@teambit/semantics.entities.semantic-schema": "0.0.10",
23
+ "@teambit/component": "0.0.739",
24
+ "@teambit/dependency-resolver": "0.0.739",
25
+ "@teambit/semantics.entities.semantic-schema": "0.0.12",
25
26
  "@teambit/ts-server": "0.0.32",
26
- "@teambit/aspect-loader": "0.0.736",
27
+ "@teambit/aspect-loader": "0.0.739",
27
28
  "@teambit/bit-error": "0.0.394",
28
- "@teambit/builder": "0.0.736",
29
- "@teambit/isolator": "0.0.736",
29
+ "@teambit/builder": "0.0.739",
30
+ "@teambit/isolator": "0.0.739",
30
31
  "@teambit/logger": "0.0.583",
31
- "@teambit/schema": "0.0.736",
32
+ "@teambit/schema": "0.0.739",
33
+ "@teambit/workspace": "0.0.739",
32
34
  "@teambit/cli": "0.0.491",
33
- "@teambit/pkg": "0.0.736",
34
- "@teambit/workspace": "0.0.736"
35
+ "@teambit/pkg": "0.0.739"
35
36
  },
36
37
  "devDependencies": {
37
38
  "@types/lodash": "4.14.165",
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.736/dist/typescript.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.736/dist/typescript.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.739/dist/typescript.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.typescript_typescript@0.0.739/dist/typescript.docs.mdx')]
@@ -1,7 +1,7 @@
1
1
  import pMapSeries from 'p-map-series';
2
2
  import { compact } from 'lodash';
3
3
  import { ClassSchema, GetAccessorSchema, SetAccessorSchema } from '@teambit/semantics.entities.semantic-schema';
4
- import ts, { Node, ClassDeclaration } from 'typescript';
4
+ import ts, { Node, ClassDeclaration, isSemicolonClassElement } from 'typescript';
5
5
  import { SchemaTransformer } from '../schema-transformer';
6
6
  import { SchemaExtractorContext } from '../schema-extractor-context';
7
7
  import { ExportIdentifier } from '../export-identifier';
@@ -29,6 +29,9 @@ export class ClassDecelerationTransformer implements SchemaTransformer {
29
29
  if (isPrivate) {
30
30
  return null;
31
31
  }
32
+ if (isSemicolonClassElement(member)) {
33
+ return null;
34
+ }
32
35
  switch (member.kind) {
33
36
  case ts.SyntaxKind.GetAccessor: {
34
37
  const getter = member as ts.GetAccessorDeclaration;
@@ -36,13 +39,13 @@ export class ClassDecelerationTransformer implements SchemaTransformer {
36
39
  const displaySig = info?.body?.displayString || '';
37
40
  const typeStr = parseTypeFromQuickInfo(info);
38
41
  const type = await context.resolveType(getter, typeStr);
39
- return new GetAccessorSchema(getter.name.getText(), type, displaySig);
42
+ return new GetAccessorSchema(context.getLocation(getter), getter.name.getText(), type, displaySig);
40
43
  }
41
44
  case ts.SyntaxKind.SetAccessor: {
42
45
  const setter = member as ts.SetAccessorDeclaration;
43
46
  const params = await getParams(setter.parameters, context);
44
47
  const displaySig = await context.getQuickInfoDisplayString(setter.name);
45
- return new SetAccessorSchema(setter.name.getText(), params[0], displaySig);
48
+ return new SetAccessorSchema(context.getLocation(setter), setter.name.getText(), params[0], displaySig);
46
49
  }
47
50
  default:
48
51
  return context.computeSchema(member);
@@ -17,6 +17,6 @@ export class Constructor implements SchemaTransformer {
17
17
  async transform(constructorDec: ConstructorDeclaration, context: SchemaExtractorContext): Promise<SchemaNode> {
18
18
  const args = await getParams(constructorDec.parameters, context);
19
19
 
20
- return new ConstructorSchema(args);
20
+ return new ConstructorSchema(context.getLocation(constructorDec), args);
21
21
  }
22
22
  }
@@ -0,0 +1,20 @@
1
+ import ts, { Node, EnumDeclaration } from 'typescript';
2
+ import { EnumSchema } from '@teambit/semantics.entities.semantic-schema';
3
+ import { SchemaTransformer } from '../schema-transformer';
4
+ import { SchemaExtractorContext } from '../schema-extractor-context';
5
+ import { ExportIdentifier } from '../export-identifier';
6
+
7
+ export class EnumDeclarationTransformer implements SchemaTransformer {
8
+ predicate(node: Node) {
9
+ return node.kind === ts.SyntaxKind.EnumDeclaration;
10
+ }
11
+
12
+ async getIdentifiers(node: EnumDeclaration): Promise<ExportIdentifier[]> {
13
+ return [new ExportIdentifier(node.name.getText(), node.getSourceFile().fileName)];
14
+ }
15
+
16
+ async transform(enumDec: EnumDeclaration, context: SchemaExtractorContext) {
17
+ const members = enumDec.members.map((member) => member.name.getText());
18
+ return new EnumSchema(context.getLocation(enumDec), enumDec.name.getText(), members);
19
+ }
20
+ }
@@ -47,7 +47,7 @@ export class ExportDeclaration implements SchemaTransformer {
47
47
  })
48
48
  );
49
49
 
50
- return new Module(compact(schemas));
50
+ return new Module(context.getLocation(node), compact(schemas));
51
51
  }
52
52
  // e.g. `export * as Composition from './button';
53
53
  if (exportClause?.kind === SyntaxKind.NamespaceExport) {
@@ -17,6 +17,6 @@ export class IndexSignature implements SchemaTransformer {
17
17
  async transform(indexSig: IndexSignatureDeclaration, context: SchemaExtractorContext): Promise<SchemaNode> {
18
18
  const params = await getParams(indexSig.parameters, context);
19
19
  const type = await typeNodeToSchema(indexSig.type, context);
20
- return new IndexSignatureSchema(params, type);
20
+ return new IndexSignatureSchema(context.getLocation(indexSig), params, type);
21
21
  }
22
22
  }
@@ -13,3 +13,4 @@ export { LiteralTypeTransformer } from './literal-type';
13
13
  export { IndexSignature } from './index-signature';
14
14
  export { InterfaceDeclarationTransformer } from './interface-declaration';
15
15
  export { MethodSignatureTransformer } from './method-signature';
16
+ export { EnumDeclarationTransformer } from './enum-declaration';
@@ -19,6 +19,6 @@ export class InterfaceDeclarationTransformer implements SchemaTransformer {
19
19
  const typeSchema = await context.computeSchema(member);
20
20
  return typeSchema;
21
21
  });
22
- return new InterfaceSchema(interfaceDec.name.getText(), members);
22
+ return new InterfaceSchema(context.getLocation(interfaceDec), interfaceDec.name.getText(), members);
23
23
  }
24
24
  }
@@ -1,6 +1,7 @@
1
1
  import ts, { LiteralTypeNode, Node } from 'typescript';
2
2
  import { TypeRefSchema } from '@teambit/semantics.entities.semantic-schema';
3
3
  import { SchemaTransformer } from '../schema-transformer';
4
+ import { SchemaExtractorContext } from '../schema-extractor-context';
4
5
 
5
6
  export class LiteralTypeTransformer implements SchemaTransformer {
6
7
  predicate(node: Node) {
@@ -11,8 +12,8 @@ export class LiteralTypeTransformer implements SchemaTransformer {
11
12
  return [];
12
13
  }
13
14
 
14
- async transform(literalType: LiteralTypeNode) {
15
+ async transform(literalType: LiteralTypeNode, context: SchemaExtractorContext) {
15
16
  const type = literalType.literal.getText();
16
- return new TypeRefSchema(type);
17
+ return new TypeRefSchema(context.getLocation(literalType), type);
17
18
  }
18
19
  }
@@ -25,6 +25,6 @@ export class PropertyDeclaration implements SchemaTransformer {
25
25
  const typeStr = parseTypeFromQuickInfo(info);
26
26
  const type = await context.resolveType(propertyDec, typeStr);
27
27
 
28
- return new VariableSchema(name || '', displaySig || '', type);
28
+ return new VariableSchema(context.getLocation(propertyDec), name, displaySig || '', type);
29
29
  }
30
30
  }
@@ -29,6 +29,6 @@ export class PropertySignature implements SchemaTransformer {
29
29
  }
30
30
  const typeStr = parseTypeFromQuickInfo(info);
31
31
  const type = await context.resolveType(prop, typeStr);
32
- return new VariableSchema(name, displaySig, type);
32
+ return new VariableSchema(context.getLocation(prop), name, displaySig, type);
33
33
  }
34
34
  }
@@ -35,7 +35,7 @@ export class SourceFileTransformer implements SchemaTransformer {
35
35
  return context.computeSchema(exportNode);
36
36
  });
37
37
 
38
- return new Module(schemas);
38
+ return new Module(context.getLocation(node), schemas);
39
39
  }
40
40
 
41
41
  /**