@teambit/typescript 0.0.587 → 0.0.591

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 (65) hide show
  1. package/dist/exceptions/index.d.ts +1 -0
  2. package/dist/exceptions/index.js +23 -0
  3. package/dist/exceptions/index.js.map +1 -0
  4. package/dist/exceptions/transformer-not-found.d.ts +7 -0
  5. package/dist/exceptions/transformer-not-found.js +19 -0
  6. package/dist/exceptions/transformer-not-found.js.map +1 -0
  7. package/dist/export-identifier.d.ts +5 -0
  8. package/dist/export-identifier.js +18 -0
  9. package/dist/export-identifier.js.map +1 -0
  10. package/dist/export-list.d.ts +6 -0
  11. package/dist/export-list.js +21 -0
  12. package/dist/export-list.js.map +1 -0
  13. package/dist/schema-extractor-context.d.ts +44 -0
  14. package/dist/schema-extractor-context.js +225 -0
  15. package/dist/schema-extractor-context.js.map +1 -0
  16. package/dist/schema-transformer.d.ts +15 -0
  17. package/dist/schema-transformer.js +3 -0
  18. package/dist/schema-transformer.js.map +1 -0
  19. package/dist/schema-transformer.plugin.d.ts +9 -0
  20. package/dist/schema-transformer.plugin.js +35 -0
  21. package/dist/schema-transformer.plugin.js.map +1 -0
  22. package/dist/transformers/export-declaration-type.d.ts +0 -0
  23. package/dist/transformers/export-declaration-type.js +3 -0
  24. package/dist/transformers/export-declaration-type.js.map +1 -0
  25. package/dist/transformers/export-declaration.d.ts +9 -0
  26. package/dist/transformers/export-declaration.js +87 -0
  27. package/dist/transformers/export-declaration.js.map +1 -0
  28. package/dist/transformers/function-declaration.d.ts +13 -0
  29. package/dist/transformers/function-declaration.js +101 -0
  30. package/dist/transformers/function-declaration.js.map +1 -0
  31. package/dist/transformers/index.d.ts +5 -0
  32. package/dist/transformers/index.js +87 -0
  33. package/dist/transformers/index.js.map +1 -0
  34. package/dist/transformers/source-file-transformer.d.ts +13 -0
  35. package/dist/transformers/source-file-transformer.js +82 -0
  36. package/dist/transformers/source-file-transformer.js.map +1 -0
  37. package/dist/transformers/type-alias.d.ts +8 -0
  38. package/dist/transformers/type-alias.js +49 -0
  39. package/dist/transformers/type-alias.js.map +1 -0
  40. package/dist/transformers/variable-statement.d.ts +8 -0
  41. package/dist/transformers/variable-statement.js +51 -0
  42. package/dist/transformers/variable-statement.js.map +1 -0
  43. package/dist/typescript.compiler.js +2 -2
  44. package/dist/typescript.compiler.spec.js +2 -2
  45. package/dist/typescript.extractor.d.ts +24 -4
  46. package/dist/typescript.extractor.js +132 -26
  47. package/dist/typescript.extractor.js.map +1 -1
  48. package/dist/typescript.main.runtime.d.ts +11 -5
  49. package/dist/typescript.main.runtime.js +61 -18
  50. package/dist/typescript.main.runtime.js.map +1 -1
  51. package/dist/typescript.parser.d.ts +2 -1
  52. package/dist/typescript.parser.js +7 -7
  53. package/dist/typescript.parser.js.map +1 -1
  54. package/exceptions/index.ts +1 -0
  55. package/exceptions/transformer-not-found.ts +12 -0
  56. package/package-tar/teambit-typescript-0.0.591.tgz +0 -0
  57. package/package.json +23 -19
  58. package/transformers/export-declaration-type.ts +0 -0
  59. package/transformers/export-declaration.ts +53 -0
  60. package/transformers/function-declaration.ts +54 -0
  61. package/transformers/index.ts +5 -0
  62. package/transformers/source-file-transformer.ts +60 -0
  63. package/transformers/type-alias.ts +17 -0
  64. package/transformers/variable-statement.ts +19 -0
  65. package/package-tar/teambit-typescript-0.0.587.tgz +0 -0
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ require("core-js/modules/es.promise.js");
8
+
9
+ require("core-js/modules/es.regexp.exec.js");
10
+
11
+ require("core-js/modules/es.string.trim.js");
12
+
13
+ Object.defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+ exports.FunctionDeclaration = void 0;
17
+
18
+ function _semanticsEntities() {
19
+ const data = require("@teambit/semantics.entities.semantic-schema");
20
+
21
+ _semanticsEntities = function () {
22
+ return data;
23
+ };
24
+
25
+ return data;
26
+ }
27
+
28
+ function _typescript() {
29
+ const data = _interopRequireDefault(require("typescript"));
30
+
31
+ _typescript = function () {
32
+ return data;
33
+ };
34
+
35
+ return data;
36
+ }
37
+
38
+ function _exportIdentifier() {
39
+ const data = require("../export-identifier");
40
+
41
+ _exportIdentifier = function () {
42
+ return data;
43
+ };
44
+
45
+ return data;
46
+ }
47
+
48
+ class FunctionDeclaration {
49
+ predicate(node) {
50
+ return node.kind === _typescript().default.SyntaxKind.FunctionDeclaration;
51
+ } // need to check for anonymous functions assigned for vars, const and let.
52
+
53
+
54
+ async getIdentifiers(funcDec) {
55
+ return [new (_exportIdentifier().ExportIdentifier)(this.getName(funcDec), funcDec.getSourceFile().fileName)];
56
+ }
57
+
58
+ getName(funcDec) {
59
+ var _funcDec$name;
60
+
61
+ return ((_funcDec$name = funcDec.name) === null || _funcDec$name === void 0 ? void 0 : _funcDec$name.getText()) || '';
62
+ }
63
+
64
+ async getArgs(funcDec, context) {
65
+ return Promise.all(funcDec.parameters.map(async param => {
66
+ const type = param.type;
67
+ return {
68
+ name: param.name.getText(),
69
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
70
+ type: await context.resolveType(type, (type === null || type === void 0 ? void 0 : type.getText()) || 'any')
71
+ };
72
+ }));
73
+ }
74
+
75
+ parseReturnValue(displayString) {
76
+ if (!displayString) return '';
77
+ const array = displayString.split(':');
78
+ return array[array.length - 1].trim();
79
+ }
80
+
81
+ async transform(node, context) {
82
+ var _info$body;
83
+
84
+ const funcDec = node;
85
+ const name = this.getName(funcDec); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
86
+
87
+ const info = await context.getQuickInfo(funcDec.name);
88
+ const displaySig = info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString;
89
+ const returnTypeStr = this.parseReturnValue(displaySig); // eslint-disable-next-line @typescript-eslint/no-unused-vars
90
+
91
+ const args = await this.getArgs(funcDec, context); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
92
+
93
+ const returnType = await context.resolveType(funcDec.name, returnTypeStr);
94
+ return new (_semanticsEntities().FunctionSchema)(name || '', [], returnType);
95
+ }
96
+
97
+ }
98
+
99
+ exports.FunctionDeclaration = FunctionDeclaration;
100
+
101
+ //# sourceMappingURL=function-declaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["function-declaration.ts"],"names":["FunctionDeclaration","predicate","node","kind","ts","SyntaxKind","getIdentifiers","funcDec","ExportIdentifier","getName","getSourceFile","fileName","name","getText","getArgs","context","Promise","all","parameters","map","param","type","resolveType","parseReturnValue","displayString","array","split","length","trim","transform","info","getQuickInfo","displaySig","body","returnTypeStr","args","returnType","FunctionSchema"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,mBAAN,CAAuD;AAC5DC,EAAAA,SAAS,CAACC,IAAD,EAAa;AACpB,WAAOA,IAAI,CAACC,IAAL,KAAcC,sBAAGC,UAAH,CAAcL,mBAAnC;AACD,GAH2D,CAK5D;;;AACoB,QAAdM,cAAc,CAACC,OAAD,EAAmC;AACrD,WAAO,CAAC,KAAIC,oCAAJ,EAAqB,KAAKC,OAAL,CAAaF,OAAb,CAArB,EAA4CA,OAAO,CAACG,aAAR,GAAwBC,QAApE,CAAD,CAAP;AACD;;AAEOF,EAAAA,OAAO,CAACF,OAAD,EAAmC;AAAA;;AAChD,WAAO,kBAAAA,OAAO,CAACK,IAAR,gEAAcC,OAAd,OAA2B,EAAlC;AACD;;AAEoB,QAAPC,OAAO,CAACP,OAAD,EAAmCQ,OAAnC,EAAoE;AACvF,WAAOC,OAAO,CAACC,GAAR,CACLV,OAAO,CAACW,UAAR,CAAmBC,GAAnB,CAAuB,MAAOC,KAAP,IAAiB;AACtC,YAAMC,IAAI,GAAGD,KAAK,CAACC,IAAnB;AACA,aAAO;AACLT,QAAAA,IAAI,EAAEQ,KAAK,CAACR,IAAN,CAAWC,OAAX,EADD;AAEL;AACAQ,QAAAA,IAAI,EAAE,MAAMN,OAAO,CAACO,WAAR,CAAoBD,IAApB,EAA2B,CAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAER,OAAN,OAAmB,KAA9C;AAHP,OAAP;AAKD,KAPD,CADK,CAAP;AAUD;;AAEOU,EAAAA,gBAAgB,CAACC,aAAD,EAAyB;AAC/C,QAAI,CAACA,aAAL,EAAoB,OAAO,EAAP;AACpB,UAAMC,KAAK,GAAGD,aAAa,CAACE,KAAd,CAAoB,GAApB,CAAd;AACA,WAAOD,KAAK,CAACA,KAAK,CAACE,MAAN,GAAe,CAAhB,CAAL,CAAwBC,IAAxB,EAAP;AACD;;AAEc,QAATC,SAAS,CAAC3B,IAAD,EAAaa,OAAb,EAAmE;AAAA;;AAChF,UAAMR,OAAO,GAAGL,IAAhB;AACA,UAAMU,IAAI,GAAG,KAAKH,OAAL,CAAaF,OAAb,CAAb,CAFgF,CAGhF;;AACA,UAAMuB,IAAI,GAAG,MAAMf,OAAO,CAACgB,YAAR,CAAqBxB,OAAO,CAACK,IAA7B,CAAnB;AACA,UAAMoB,UAAU,GAAGF,IAAH,aAAGA,IAAH,qCAAGA,IAAI,CAAEG,IAAT,+CAAG,WAAYT,aAA/B;AACA,UAAMU,aAAa,GAAG,KAAKX,gBAAL,CAAsBS,UAAtB,CAAtB,CANgF,CAOhF;;AACA,UAAMG,IAAI,GAAG,MAAM,KAAKrB,OAAL,CAAaP,OAAb,EAAsBQ,OAAtB,CAAnB,CARgF,CAShF;;AACA,UAAMqB,UAAU,GAAG,MAAMrB,OAAO,CAACO,WAAR,CAAoBf,OAAO,CAACK,IAA5B,EAAmCsB,aAAnC,CAAzB;AAEA,WAAO,KAAIG,mCAAJ,EAAmBzB,IAAI,IAAI,EAA3B,EAA+B,EAA/B,EAAmCwB,UAAnC,CAAP;AACD;;AA9C2D","sourcesContent":["import { SchemaNode, FunctionSchema } from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, FunctionDeclaration as FunctionDeclarationNode } from 'typescript';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\n\nexport class FunctionDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.FunctionDeclaration;\n }\n\n // need to check for anonymous functions assigned for vars, const and let.\n async getIdentifiers(funcDec: FunctionDeclarationNode) {\n return [new ExportIdentifier(this.getName(funcDec), funcDec.getSourceFile().fileName)];\n }\n\n private getName(funcDec: FunctionDeclarationNode) {\n return funcDec.name?.getText() || '';\n }\n\n private async getArgs(funcDec: FunctionDeclarationNode, context: SchemaExtractorContext) {\n return Promise.all(\n funcDec.parameters.map(async (param) => {\n const type = param.type;\n return {\n name: param.name.getText(),\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n type: await context.resolveType(type!, type?.getText() || 'any'),\n };\n })\n );\n }\n\n private parseReturnValue(displayString?: string) {\n if (!displayString) return '';\n const array = displayString.split(':');\n return array[array.length - 1].trim();\n }\n\n async transform(node: Node, context: SchemaExtractorContext): Promise<SchemaNode> {\n const funcDec = node as FunctionDeclarationNode;\n const name = this.getName(funcDec);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const info = await context.getQuickInfo(funcDec.name!);\n const displaySig = info?.body?.displayString;\n const returnTypeStr = this.parseReturnValue(displaySig);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const args = await this.getArgs(funcDec, context);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const returnType = await context.resolveType(funcDec.name!, returnTypeStr);\n\n return new FunctionSchema(name || '', [], returnType);\n }\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export { ExportDeclaration } from './export-declaration';
2
+ export { FunctionDeclaration } from './function-declaration';
3
+ export { VariableStatementTransformer } from './variable-statement';
4
+ export { SourceFileTransformer } from './source-file-transformer';
5
+ export { TypeAliasTransformer } from './type-alias';
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ExportDeclaration", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _exportDeclaration().ExportDeclaration;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FunctionDeclaration", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _functionDeclaration().FunctionDeclaration;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "SourceFileTransformer", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _sourceFileTransformer().SourceFileTransformer;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "TypeAliasTransformer", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _typeAlias().TypeAliasTransformer;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "VariableStatementTransformer", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _variableStatement().VariableStatementTransformer;
34
+ }
35
+ });
36
+
37
+ function _exportDeclaration() {
38
+ const data = require("./export-declaration");
39
+
40
+ _exportDeclaration = function () {
41
+ return data;
42
+ };
43
+
44
+ return data;
45
+ }
46
+
47
+ function _functionDeclaration() {
48
+ const data = require("./function-declaration");
49
+
50
+ _functionDeclaration = function () {
51
+ return data;
52
+ };
53
+
54
+ return data;
55
+ }
56
+
57
+ function _variableStatement() {
58
+ const data = require("./variable-statement");
59
+
60
+ _variableStatement = function () {
61
+ return data;
62
+ };
63
+
64
+ return data;
65
+ }
66
+
67
+ function _sourceFileTransformer() {
68
+ const data = require("./source-file-transformer");
69
+
70
+ _sourceFileTransformer = function () {
71
+ return data;
72
+ };
73
+
74
+ return data;
75
+ }
76
+
77
+ function _typeAlias() {
78
+ const data = require("./type-alias");
79
+
80
+ _typeAlias = function () {
81
+ return data;
82
+ };
83
+
84
+ return data;
85
+ }
86
+
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { ExportDeclaration } from './export-declaration';\nexport { FunctionDeclaration } from './function-declaration';\nexport { VariableStatementTransformer } from './variable-statement';\nexport { SourceFileTransformer } from './source-file-transformer';\nexport { TypeAliasTransformer } from './type-alias';\n"]}
@@ -0,0 +1,13 @@
1
+ import { Node, SourceFile } from 'typescript';
2
+ import { SchemaTransformer } from '../schema-transformer';
3
+ import { ExportIdentifier } from '../export-identifier';
4
+ import { SchemaExtractorContext } from '../schema-extractor-context';
5
+ export declare class SourceFileTransformer implements SchemaTransformer {
6
+ predicate(node: Node): boolean;
7
+ getIdentifiers(sourceFile: SourceFile, context: SchemaExtractorContext): Promise<ExportIdentifier[]>;
8
+ transform(node: SourceFile, context: SchemaExtractorContext): Promise<(import("@teambit/semantics.entities.semantic-schema").SchemaNode | undefined)[]>;
9
+ /**
10
+ * list all exports of a source file.
11
+ */
12
+ private listExports;
13
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.array.iterator.js");
6
+
7
+ require("core-js/modules/es.promise.js");
8
+
9
+ Object.defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+ exports.SourceFileTransformer = void 0;
13
+
14
+ function _typescript() {
15
+ const data = _interopRequireDefault(require("typescript"));
16
+
17
+ _typescript = function () {
18
+ return data;
19
+ };
20
+
21
+ return data;
22
+ }
23
+
24
+ function _lodash() {
25
+ const data = require("lodash");
26
+
27
+ _lodash = function () {
28
+ return data;
29
+ };
30
+
31
+ return data;
32
+ }
33
+
34
+ class SourceFileTransformer {
35
+ predicate(node) {
36
+ return node.kind === _typescript().default.SyntaxKind.SourceFile;
37
+ }
38
+
39
+ async getIdentifiers(sourceFile, context) {
40
+ const exports = this.listExports(sourceFile);
41
+ const exportNames = await Promise.all(exports.map(node => {
42
+ return context.getExportedIdentifiers(node);
43
+ }));
44
+ const exportIds = (0, _lodash().flatten)(exportNames).reduce((acc, current) => {
45
+ const item = acc.find(exportName => exportName.id === current.id);
46
+ if (!item) acc.push(current);
47
+ return acc;
48
+ }, []);
49
+ return exportIds;
50
+ }
51
+
52
+ async transform(node, context) {
53
+ const exports = this.listExports(node);
54
+ const schemas = await Promise.all(exports.map(exportNode => {
55
+ return context.computeSchema(exportNode);
56
+ }));
57
+ return schemas;
58
+ }
59
+ /**
60
+ * list all exports of a source file.
61
+ */
62
+
63
+
64
+ listExports(ast) {
65
+ return (0, _lodash().compact)(ast.statements.map(statement => {
66
+ var _statement$modifiers;
67
+
68
+ if (statement.kind === _typescript().default.SyntaxKind.ExportDeclaration) return statement;
69
+ const isExport = Boolean((_statement$modifiers = statement.modifiers) === null || _statement$modifiers === void 0 ? void 0 : _statement$modifiers.find(modifier => {
70
+ return modifier.kind === _typescript().default.SyntaxKind.ExportKeyword;
71
+ })); // eslint-disable-next-line consistent-return
72
+
73
+ if (!isExport) return;
74
+ return statement;
75
+ }));
76
+ }
77
+
78
+ }
79
+
80
+ exports.SourceFileTransformer = SourceFileTransformer;
81
+
82
+ //# sourceMappingURL=source-file-transformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["source-file-transformer.ts"],"names":["SourceFileTransformer","predicate","node","kind","ts","SyntaxKind","SourceFile","getIdentifiers","sourceFile","context","exports","listExports","exportNames","Promise","all","map","getExportedIdentifiers","exportIds","reduce","acc","current","item","find","exportName","id","push","transform","schemas","exportNode","computeSchema","ast","statements","statement","ExportDeclaration","isExport","Boolean","modifiers","modifier","ExportKeyword"],"mappings":";;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKO,MAAMA,qBAAN,CAAyD;AAC9DC,EAAAA,SAAS,CAACC,IAAD,EAAa;AACpB,WAAOA,IAAI,CAACC,IAAL,KAAcC,sBAAGC,UAAH,CAAcC,UAAnC;AACD;;AAEmB,QAAdC,cAAc,CAACC,UAAD,EAAyBC,OAAzB,EAA0D;AAC5E,UAAMC,OAAO,GAAG,KAAKC,WAAL,CAAiBH,UAAjB,CAAhB;AAEA,UAAMI,WAAW,GAAG,MAAMC,OAAO,CAACC,GAAR,CACxBJ,OAAO,CAACK,GAAR,CAAab,IAAD,IAAgB;AAC1B,aAAOO,OAAO,CAACO,sBAAR,CAA+Bd,IAA/B,CAAP;AACD,KAFD,CADwB,CAA1B;AAMA,UAAMe,SAAS,GAAG,uBAAQL,WAAR,EAAqBM,MAArB,CAAgD,CAACC,GAAD,EAAMC,OAAN,KAAkB;AAClF,YAAMC,IAAI,GAAGF,GAAG,CAACG,IAAJ,CAAUC,UAAD,IAAgBA,UAAU,CAACC,EAAX,KAAkBJ,OAAO,CAACI,EAAnD,CAAb;AACA,UAAI,CAACH,IAAL,EAAWF,GAAG,CAACM,IAAJ,CAASL,OAAT;AACX,aAAOD,GAAP;AACD,KAJiB,EAIf,EAJe,CAAlB;AAMA,WAAOF,SAAP;AACD;;AAEc,QAATS,SAAS,CAACxB,IAAD,EAAmBO,OAAnB,EAAoD;AACjE,UAAMC,OAAO,GAAG,KAAKC,WAAL,CAAiBT,IAAjB,CAAhB;AACA,UAAMyB,OAAO,GAAG,MAAMd,OAAO,CAACC,GAAR,CACpBJ,OAAO,CAACK,GAAR,CAAaa,UAAD,IAAgB;AAC1B,aAAOnB,OAAO,CAACoB,aAAR,CAAsBD,UAAtB,CAAP;AACD,KAFD,CADoB,CAAtB;AAMA,WAAOD,OAAP;AACD;AAED;AACF;AACA;;;AACUhB,EAAAA,WAAW,CAACmB,GAAD,EAA0B;AAC3C,WAAO,uBACLA,GAAG,CAACC,UAAJ,CAAehB,GAAf,CAAoBiB,SAAD,IAAe;AAAA;;AAChC,UAAIA,SAAS,CAAC7B,IAAV,KAAmBC,sBAAGC,UAAH,CAAc4B,iBAArC,EAAwD,OAAOD,SAAP;AACxD,YAAME,QAAQ,GAAGC,OAAO,yBACtBH,SAAS,CAACI,SADY,yDACtB,qBAAqBd,IAArB,CAA2Be,QAAD,IAAc;AACtC,eAAOA,QAAQ,CAAClC,IAAT,KAAkBC,sBAAGC,UAAH,CAAciC,aAAvC;AACD,OAFD,CADsB,CAAxB,CAFgC,CAQhC;;AACA,UAAI,CAACJ,QAAL,EAAe;AACf,aAAOF,SAAP;AACD,KAXD,CADK,CAAP;AAcD;;AApD6D","sourcesContent":["import ts, { Node, SourceFile } from 'typescript';\nimport { compact, flatten } from 'lodash';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\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\n const exportNames = await Promise.all(\n exports.map((node: Node) => {\n return context.getExportedIdentifiers(node);\n })\n );\n\n const exportIds = flatten(exportNames).reduce<ExportIdentifier[]>((acc, current) => {\n const item = acc.find((exportName) => exportName.id === current.id);\n if (!item) acc.push(current);\n return acc;\n }, []);\n\n return exportIds;\n }\n\n async transform(node: SourceFile, context: SchemaExtractorContext) {\n const exports = this.listExports(node);\n const schemas = await Promise.all(\n exports.map((exportNode) => {\n return context.computeSchema(exportNode);\n })\n );\n\n return schemas;\n }\n\n /**\n * list all exports of a source file.\n */\n private listExports(ast: SourceFile): Node[] {\n return compact(\n ast.statements.map((statement) => {\n if (statement.kind === ts.SyntaxKind.ExportDeclaration) return statement;\n const isExport = Boolean(\n statement.modifiers?.find((modifier) => {\n return modifier.kind === ts.SyntaxKind.ExportKeyword;\n })\n );\n\n // eslint-disable-next-line consistent-return\n if (!isExport) return;\n return statement;\n })\n );\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { Node, TypeAliasDeclaration } from 'typescript';
2
+ import { SchemaTransformer } from '../schema-transformer';
3
+ import { ExportIdentifier } from '../export-identifier';
4
+ export declare class TypeAliasTransformer implements SchemaTransformer {
5
+ predicate(node: Node): boolean;
6
+ getIdentifiers(node: TypeAliasDeclaration): Promise<ExportIdentifier[]>;
7
+ transform(): Promise<{}>;
8
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.promise.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.TypeAliasTransformer = void 0;
11
+
12
+ function _typescript() {
13
+ const data = _interopRequireDefault(require("typescript"));
14
+
15
+ _typescript = function () {
16
+ return data;
17
+ };
18
+
19
+ return data;
20
+ }
21
+
22
+ function _exportIdentifier() {
23
+ const data = require("../export-identifier");
24
+
25
+ _exportIdentifier = function () {
26
+ return data;
27
+ };
28
+
29
+ return data;
30
+ }
31
+
32
+ class TypeAliasTransformer {
33
+ predicate(node) {
34
+ return node.kind === _typescript().default.SyntaxKind.TypeAliasDeclaration;
35
+ }
36
+
37
+ async getIdentifiers(node) {
38
+ return [new (_exportIdentifier().ExportIdentifier)(node.name.getText(), node.getSourceFile().fileName)];
39
+ }
40
+
41
+ async transform() {
42
+ return {};
43
+ }
44
+
45
+ }
46
+
47
+ exports.TypeAliasTransformer = TypeAliasTransformer;
48
+
49
+ //# sourceMappingURL=type-alias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["type-alias.ts"],"names":["TypeAliasTransformer","predicate","node","kind","ts","SyntaxKind","TypeAliasDeclaration","getIdentifiers","ExportIdentifier","name","getText","getSourceFile","fileName","transform"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,oBAAN,CAAwD;AAC7DC,EAAAA,SAAS,CAACC,IAAD,EAAa;AACpB,WAAOA,IAAI,CAACC,IAAL,KAAcC,sBAAGC,UAAH,CAAcC,oBAAnC;AACD;;AAEmB,QAAdC,cAAc,CAACL,IAAD,EAA6B;AAC/C,WAAO,CAAC,KAAIM,oCAAJ,EAAqBN,IAAI,CAACO,IAAL,CAAUC,OAAV,EAArB,EAA0CR,IAAI,CAACS,aAAL,GAAqBC,QAA/D,CAAD,CAAP;AACD;;AAEc,QAATC,SAAS,GAAG;AAChB,WAAO,EAAP;AACD;;AAX4D","sourcesContent":["import ts, { Node, TypeAliasDeclaration } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\n\nexport class TypeAliasTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.TypeAliasDeclaration;\n }\n\n async getIdentifiers(node: TypeAliasDeclaration) {\n return [new ExportIdentifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform() {\n return {};\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { Node, VariableStatement } from 'typescript';
2
+ import { SchemaTransformer } from '../schema-transformer';
3
+ import { ExportIdentifier } from '../export-identifier';
4
+ export declare class VariableStatementTransformer implements SchemaTransformer {
5
+ predicate(node: Node): boolean;
6
+ getIdentifiers(node: VariableStatement): Promise<ExportIdentifier[]>;
7
+ transform(): Promise<{}>;
8
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.promise.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.VariableStatementTransformer = void 0;
11
+
12
+ function _typescript() {
13
+ const data = _interopRequireDefault(require("typescript"));
14
+
15
+ _typescript = function () {
16
+ return data;
17
+ };
18
+
19
+ return data;
20
+ }
21
+
22
+ function _exportIdentifier() {
23
+ const data = require("../export-identifier");
24
+
25
+ _exportIdentifier = function () {
26
+ return data;
27
+ };
28
+
29
+ return data;
30
+ }
31
+
32
+ class VariableStatementTransformer {
33
+ predicate(node) {
34
+ return node.kind === _typescript().default.SyntaxKind.VariableStatement;
35
+ }
36
+
37
+ async getIdentifiers(node) {
38
+ return node.declarationList.declarations.map(dec => {
39
+ return new (_exportIdentifier().ExportIdentifier)(dec.name.getText(), dec.getSourceFile().fileName);
40
+ });
41
+ }
42
+
43
+ async transform() {
44
+ return {};
45
+ }
46
+
47
+ }
48
+
49
+ exports.VariableStatementTransformer = VariableStatementTransformer;
50
+
51
+ //# sourceMappingURL=variable-statement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["variable-statement.ts"],"names":["VariableStatementTransformer","predicate","node","kind","ts","SyntaxKind","VariableStatement","getIdentifiers","declarationList","declarations","map","dec","ExportIdentifier","name","getText","getSourceFile","fileName","transform"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,4BAAN,CAAgE;AACrEC,EAAAA,SAAS,CAACC,IAAD,EAAa;AACpB,WAAOA,IAAI,CAACC,IAAL,KAAcC,sBAAGC,UAAH,CAAcC,iBAAnC;AACD;;AAEmB,QAAdC,cAAc,CAACL,IAAD,EAA0B;AAC5C,WAAOA,IAAI,CAACM,eAAL,CAAqBC,YAArB,CAAkCC,GAAlC,CAAuCC,GAAD,IAAS;AACpD,aAAO,KAAIC,oCAAJ,EAAqBD,GAAG,CAACE,IAAJ,CAASC,OAAT,EAArB,EAAyCH,GAAG,CAACI,aAAJ,GAAoBC,QAA7D,CAAP;AACD,KAFM,CAAP;AAGD;;AAEc,QAATC,SAAS,GAAG;AAChB,WAAO,EAAP;AACD;;AAboE","sourcesContent":["import ts, { Node, VariableStatement } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { ExportIdentifier } from '../export-identifier';\n\nexport class VariableStatementTransformer implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableStatement;\n }\n\n async getIdentifiers(node: VariableStatement) {\n return node.declarationList.declarations.map((dec) => {\n return new ExportIdentifier(dec.name.getText(), dec.getSourceFile().fileName);\n });\n }\n\n async transform() {\n return {};\n }\n}\n"]}
@@ -67,9 +67,9 @@ function _packageJsonFile() {
67
67
  return data;
68
68
  }
69
69
 
70
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
70
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
71
71
 
72
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
72
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
73
73
 
74
74
  class TypescriptCompiler {
75
75
  constructor(id, logger, options, tsModule) {
@@ -72,9 +72,9 @@ function _typescript3() {
72
72
  return data;
73
73
  }
74
74
 
75
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
75
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
76
76
 
77
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
77
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
78
78
 
79
79
  const defaultOpts = {
80
80
  tsconfig: {},
@@ -1,8 +1,28 @@
1
- import { TsConfigSourceFile } from 'typescript';
2
- import { Module, SchemaExtractor } from '@teambit/schema';
1
+ import ts, { Node } from 'typescript';
2
+ import { SchemaExtractor } from '@teambit/schema';
3
+ import { SchemaNode, SemanticSchema } from '@teambit/semantics.entities.semantic-schema';
3
4
  import { Component } from '@teambit/component';
5
+ import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';
6
+ import { TypescriptMain, SchemaTransformerSlot } from './typescript.main.runtime';
7
+ import { SchemaExtractorContext } from './schema-extractor-context';
4
8
  export declare class TypeScriptExtractor implements SchemaExtractor {
5
9
  private tsconfig;
6
- constructor(tsconfig: TsConfigSourceFile);
7
- extract(component: Component): Promise<Module>;
10
+ private schemaTransformerSlot;
11
+ private tsMain;
12
+ private rootPath;
13
+ constructor(tsconfig: any, schemaTransformerSlot: SchemaTransformerSlot, tsMain: TypescriptMain, rootPath: string);
14
+ parseSourceFile(file: AbstractVinyl): ts.SourceFile;
15
+ /**
16
+ * extract a component schema.
17
+ */
18
+ extract(component: Component): Promise<SemanticSchema>;
19
+ computeExportedIdentifiers(node: Node, context: SchemaExtractorContext): Promise<import("./export-identifier").ExportIdentifier[]>;
20
+ private createContext;
21
+ private tsserver;
22
+ private getTsServer;
23
+ computeSchema(node: Node, context: SchemaExtractorContext): Promise<SchemaNode | undefined>;
24
+ /**
25
+ * select the correct transformer for a node.
26
+ */
27
+ private getTransformer;
8
28
  }