@teambit/typescript 0.0.881 → 0.0.883

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 (78) hide show
  1. package/dist/cmds/check-types.cmd.js +0 -21
  2. package/dist/cmds/check-types.cmd.js.map +1 -1
  3. package/dist/cmds/write-tsconfig.cmd.js +2 -25
  4. package/dist/cmds/write-tsconfig.cmd.js.map +1 -1
  5. package/dist/dedupe-path.spec.js +6 -8
  6. package/dist/dedupe-path.spec.js.map +1 -1
  7. package/dist/exceptions/index.js +0 -3
  8. package/dist/exceptions/index.js.map +1 -1
  9. package/dist/exceptions/transformer-not-found.js +0 -7
  10. package/dist/exceptions/transformer-not-found.js.map +1 -1
  11. package/dist/export-identifier.js +0 -3
  12. package/dist/export-identifier.js.map +1 -1
  13. package/dist/export-list.js +0 -4
  14. package/dist/export-list.js.map +1 -1
  15. package/dist/index.js +0 -9
  16. package/dist/index.js.map +1 -1
  17. package/dist/schema-extractor-context.js +16 -120
  18. package/dist/schema-extractor-context.js.map +1 -1
  19. package/dist/schema-transformer.plugin.js +0 -8
  20. package/dist/schema-transformer.plugin.js.map +1 -1
  21. package/dist/transformers/binding-element.js +0 -23
  22. package/dist/transformers/binding-element.js.map +1 -1
  23. package/dist/transformers/class-deceleration.js +2 -34
  24. package/dist/transformers/class-deceleration.js.map +1 -1
  25. package/dist/transformers/enum-declaration.js +0 -16
  26. package/dist/transformers/enum-declaration.js.map +1 -1
  27. package/dist/transformers/export-declaration.js +8 -47
  28. package/dist/transformers/export-declaration.js.map +1 -1
  29. package/dist/transformers/function-declaration.js +2 -19
  30. package/dist/transformers/function-declaration.js.map +1 -1
  31. package/dist/transformers/index.js +0 -30
  32. package/dist/transformers/index.js.map +1 -1
  33. package/dist/transformers/interface-declaration.js +0 -25
  34. package/dist/transformers/interface-declaration.js.map +1 -1
  35. package/dist/transformers/source-file-transformer.js +3 -24
  36. package/dist/transformers/source-file-transformer.js.map +1 -1
  37. package/dist/transformers/type-alias.js +0 -23
  38. package/dist/transformers/type-alias.js.map +1 -1
  39. package/dist/transformers/utils/class-element-to-schema.js +0 -35
  40. package/dist/transformers/utils/class-element-to-schema.js.map +1 -1
  41. package/dist/transformers/utils/get-params.js +6 -33
  42. package/dist/transformers/utils/get-params.js.map +1 -1
  43. package/dist/transformers/utils/jsdoc-to-doc-schema.js +4 -49
  44. package/dist/transformers/utils/jsdoc-to-doc-schema.js.map +1 -1
  45. package/dist/transformers/utils/parse-type-from-quick-info.js +4 -16
  46. package/dist/transformers/utils/parse-type-from-quick-info.js.map +1 -1
  47. package/dist/transformers/utils/to-function-like-schema.js +0 -15
  48. package/dist/transformers/utils/to-function-like-schema.js.map +1 -1
  49. package/dist/transformers/utils/type-element-to-schema.js +0 -37
  50. package/dist/transformers/utils/type-element-to-schema.js.map +1 -1
  51. package/dist/transformers/utils/type-node-to-schema.js +5 -71
  52. package/dist/transformers/utils/type-node-to-schema.js.map +1 -1
  53. package/dist/transformers/variable-declaration.js +0 -30
  54. package/dist/transformers/variable-declaration.js.map +1 -1
  55. package/dist/transformers/variable-statement.js +0 -22
  56. package/dist/transformers/variable-statement.js.map +1 -1
  57. package/dist/tsconfig-writer.js +8 -58
  58. package/dist/tsconfig-writer.js.map +1 -1
  59. package/dist/typescript.aspect.js +0 -5
  60. package/dist/typescript.aspect.js.map +1 -1
  61. package/dist/typescript.compiler.js +16 -83
  62. package/dist/typescript.compiler.js.map +1 -1
  63. package/dist/typescript.compiler.spec.js +0 -25
  64. package/dist/typescript.compiler.spec.js.map +1 -1
  65. package/dist/typescript.composition.js +0 -6
  66. package/dist/typescript.composition.js.map +1 -1
  67. package/dist/typescript.extractor.js +6 -50
  68. package/dist/typescript.extractor.js.map +1 -1
  69. package/dist/typescript.main.runtime.js +10 -114
  70. package/dist/typescript.main.runtime.js.map +1 -1
  71. package/dist/typescript.parser.js +3 -30
  72. package/dist/typescript.parser.js.map +1 -1
  73. package/dist/typescript.parser.spec.js +0 -22
  74. package/dist/typescript.parser.spec.js.map +1 -1
  75. package/package-tar/teambit-typescript-0.0.883.tgz +0 -0
  76. package/package.json +12 -12
  77. package/{preview-1666409808293.js → preview-1666582798766.js} +2 -2
  78. package/package-tar/teambit-typescript-0.0.881.tgz +0 -0
@@ -1,113 +1,83 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.promise.js");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.VariableDeclaration = void 0;
11
-
12
9
  function _semanticsEntities() {
13
10
  const data = require("@teambit/semantics.entities.semantic-schema");
14
-
15
11
  _semanticsEntities = function () {
16
12
  return data;
17
13
  };
18
-
19
14
  return data;
20
15
  }
21
-
22
16
  function _typescript() {
23
17
  const data = _interopRequireDefault(require("typescript"));
24
-
25
18
  _typescript = function () {
26
19
  return data;
27
20
  };
28
-
29
21
  return data;
30
22
  }
31
-
32
23
  function _exportIdentifier() {
33
24
  const data = require("../export-identifier");
34
-
35
25
  _exportIdentifier = function () {
36
26
  return data;
37
27
  };
38
-
39
28
  return data;
40
29
  }
41
-
42
30
  function _getParams() {
43
31
  const data = require("./utils/get-params");
44
-
45
32
  _getParams = function () {
46
33
  return data;
47
34
  };
48
-
49
35
  return data;
50
36
  }
51
-
52
37
  function _parseTypeFromQuickInfo() {
53
38
  const data = require("./utils/parse-type-from-quick-info");
54
-
55
39
  _parseTypeFromQuickInfo = function () {
56
40
  return data;
57
41
  };
58
-
59
42
  return data;
60
43
  }
61
-
62
44
  function _jsdocToDocSchema() {
63
45
  const data = require("./utils/jsdoc-to-doc-schema");
64
-
65
46
  _jsdocToDocSchema = function () {
66
47
  return data;
67
48
  };
68
-
69
49
  return data;
70
50
  }
71
-
72
51
  class VariableDeclaration {
73
52
  predicate(node) {
74
53
  return node.kind === _typescript().default.SyntaxKind.VariableDeclaration;
75
54
  }
76
-
77
55
  getName(node) {
78
56
  return node.name.getText();
79
57
  }
80
-
81
58
  async getIdentifiers(node) {
82
59
  return [new (_exportIdentifier().ExportIdentifier)(node.name.getText(), node.getSourceFile().fileName)];
83
60
  }
84
-
85
61
  async transform(varDec, context) {
86
62
  var _info$body, _varDec$initializer;
87
-
88
63
  const name = this.getName(varDec);
89
64
  const info = await context.getQuickInfo(varDec.name);
90
65
  const displaySig = (info === null || info === void 0 ? void 0 : (_info$body = info.body) === null || _info$body === void 0 ? void 0 : _info$body.displayString) || '';
91
66
  const location = context.getLocation(varDec);
92
67
  const doc = await (0, _jsdocToDocSchema().jsDocToDocSchema)(varDec, context);
93
-
94
68
  if (((_varDec$initializer = varDec.initializer) === null || _varDec$initializer === void 0 ? void 0 : _varDec$initializer.kind) === _typescript().default.SyntaxKind.ArrowFunction) {
95
69
  var _varDec$modifiers;
96
-
97
70
  const args = await (0, _getParams().getParams)(varDec.initializer.parameters, context);
98
71
  const typeStr = (0, _parseTypeFromQuickInfo().parseReturnTypeFromQuickInfo)(info);
99
72
  const returnType = await context.resolveType(varDec, typeStr);
100
73
  const modifiers = ((_varDec$modifiers = varDec.modifiers) === null || _varDec$modifiers === void 0 ? void 0 : _varDec$modifiers.map(modifier => modifier.getText())) || [];
101
74
  return new (_semanticsEntities().FunctionLikeSchema)(location, name, args, returnType, displaySig, modifiers, doc);
102
75
  }
103
-
104
76
  const typeStr = (0, _parseTypeFromQuickInfo().parseTypeFromQuickInfo)(info);
105
77
  const type = await context.resolveType(varDec, typeStr);
106
78
  return new (_semanticsEntities().VariableLikeSchema)(location, name, displaySig, type, false, doc);
107
79
  }
108
-
109
80
  }
110
-
111
81
  exports.VariableDeclaration = VariableDeclaration;
112
82
 
113
83
  //# sourceMappingURL=variable-declaration.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","ExportIdentifier","getSourceFile","fileName","transform","varDec","context","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","initializer","ArrowFunction","args","getParams","parameters","typeStr","parseReturnTypeFromQuickInfo","returnType","resolveType","modifiers","map","modifier","FunctionLikeSchema","parseTypeFromQuickInfo","type","VariableLikeSchema"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { ExportIdentifier } from '../export-identifier';\nimport { getParams } from './utils/get-params';\nimport { parseReturnTypeFromQuickInfo, parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { jsDocToDocSchema } from './utils/jsdoc-to-doc-schema';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new ExportIdentifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await jsDocToDocSchema(varDec, context);\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const args = await getParams((varDec.initializer as ArrowFunction).parameters, context);\n const typeStr = parseReturnTypeFromQuickInfo(info);\n const returnType = await context.resolveType(varDec, typeStr);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n return new FunctionLikeSchema(location, name, args, returnType, displaySig, modifiers as Modifier[], doc);\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n return new VariableLikeSchema(location, name, displaySig, type, false, doc);\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAMA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAGA;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;;AAEO,MAAMA,mBAAN,CAAuD;EAC5DC,SAAS,CAACC,IAAD,EAAa;IACpB,OAAOA,IAAI,CAACC,IAAL,KAAcC,qBAAA,CAAGC,UAAH,CAAcL,mBAAnC;EACD;;EAEDM,OAAO,CAACJ,IAAD,EAAgC;IACrC,OAAOA,IAAI,CAACK,IAAL,CAAUC,OAAV,EAAP;EACD;;EAEmB,MAAdC,cAAc,CAACP,IAAD,EAAgC;IAClD,OAAO,CAAC,KAAIQ,oCAAJ,EAAqBR,IAAI,CAACK,IAAL,CAAUC,OAAV,EAArB,EAA0CN,IAAI,CAACS,aAAL,GAAqBC,QAA/D,CAAD,CAAP;EACD;;EAEc,MAATC,SAAS,CAACC,MAAD,EAAkCC,OAAlC,EAAwF;IAAA;;IACrG,MAAMR,IAAI,GAAG,KAAKD,OAAL,CAAaQ,MAAb,CAAb;IACA,MAAME,IAAI,GAAG,MAAMD,OAAO,CAACE,YAAR,CAAqBH,MAAM,CAACP,IAA5B,CAAnB;IACA,MAAMW,UAAU,GAAG,CAAAF,IAAI,SAAJ,IAAAA,IAAI,WAAJ,0BAAAA,IAAI,CAAEG,IAAN,0DAAYC,aAAZ,KAA6B,EAAhD;IACA,MAAMC,QAAQ,GAAGN,OAAO,CAACO,WAAR,CAAoBR,MAApB,CAAjB;IACA,MAAMS,GAAG,GAAG,MAAM,IAAAC,oCAAA,EAAiBV,MAAjB,EAAyBC,OAAzB,CAAlB;;IACA,IAAI,wBAAAD,MAAM,CAACW,WAAP,4EAAoBtB,IAApB,MAA6BC,qBAAA,CAAGC,UAAH,CAAcqB,aAA/C,EAA8D;MAAA;;MAC5D,MAAMC,IAAI,GAAG,MAAM,IAAAC,sBAAA,EAAWd,MAAM,CAACW,WAAR,CAAsCI,UAAhD,EAA4Dd,OAA5D,CAAnB;MACA,MAAMe,OAAO,GAAG,IAAAC,sDAAA,EAA6Bf,IAA7B,CAAhB;MACA,MAAMgB,UAAU,GAAG,MAAMjB,OAAO,CAACkB,WAAR,CAAoBnB,MAApB,EAA4BgB,OAA5B,CAAzB;MACA,MAAMI,SAAS,GAAG,sBAAApB,MAAM,CAACoB,SAAP,wEAAkBC,GAAlB,CAAuBC,QAAD,IAAcA,QAAQ,CAAC5B,OAAT,EAApC,MAA2D,EAA7E;MACA,OAAO,KAAI6B,uCAAJ,EAAuBhB,QAAvB,EAAiCd,IAAjC,EAAuCoB,IAAvC,EAA6CK,UAA7C,EAAyDd,UAAzD,EAAqEgB,SAArE,EAA8FX,GAA9F,CAAP;IACD;;IACD,MAAMO,OAAO,GAAG,IAAAQ,gDAAA,EAAuBtB,IAAvB,CAAhB;IACA,MAAMuB,IAAI,GAAG,MAAMxB,OAAO,CAACkB,WAAR,CAAoBnB,MAApB,EAA4BgB,OAA5B,CAAnB;IACA,OAAO,KAAIU,uCAAJ,EAAuBnB,QAAvB,EAAiCd,IAAjC,EAAuCW,UAAvC,EAAmDqB,IAAnD,EAAyD,KAAzD,EAAgEhB,GAAhE,CAAP;EACD;;AA7B2D"}
1
+ {"version":3,"names":["VariableDeclaration","predicate","node","kind","ts","SyntaxKind","getName","name","getText","getIdentifiers","ExportIdentifier","getSourceFile","fileName","transform","varDec","context","info","getQuickInfo","displaySig","body","displayString","location","getLocation","doc","jsDocToDocSchema","initializer","ArrowFunction","args","getParams","parameters","typeStr","parseReturnTypeFromQuickInfo","returnType","resolveType","modifiers","map","modifier","FunctionLikeSchema","parseTypeFromQuickInfo","type","VariableLikeSchema"],"sources":["variable-declaration.ts"],"sourcesContent":["import {\n SchemaNode,\n VariableLikeSchema,\n FunctionLikeSchema,\n Modifier,\n} from '@teambit/semantics.entities.semantic-schema';\nimport ts, { Node, VariableDeclaration as VariableDeclarationNode, ArrowFunction } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { ExportIdentifier } from '../export-identifier';\nimport { getParams } from './utils/get-params';\nimport { parseReturnTypeFromQuickInfo, parseTypeFromQuickInfo } from './utils/parse-type-from-quick-info';\nimport { jsDocToDocSchema } from './utils/jsdoc-to-doc-schema';\n\nexport class VariableDeclaration implements SchemaTransformer {\n predicate(node: Node) {\n return node.kind === ts.SyntaxKind.VariableDeclaration;\n }\n\n getName(node: VariableDeclarationNode) {\n return node.name.getText();\n }\n\n async getIdentifiers(node: VariableDeclarationNode) {\n return [new ExportIdentifier(node.name.getText(), node.getSourceFile().fileName)];\n }\n\n async transform(varDec: VariableDeclarationNode, context: SchemaExtractorContext): Promise<SchemaNode> {\n const name = this.getName(varDec);\n const info = await context.getQuickInfo(varDec.name);\n const displaySig = info?.body?.displayString || '';\n const location = context.getLocation(varDec);\n const doc = await jsDocToDocSchema(varDec, context);\n if (varDec.initializer?.kind === ts.SyntaxKind.ArrowFunction) {\n const args = await getParams((varDec.initializer as ArrowFunction).parameters, context);\n const typeStr = parseReturnTypeFromQuickInfo(info);\n const returnType = await context.resolveType(varDec, typeStr);\n const modifiers = varDec.modifiers?.map((modifier) => modifier.getText()) || [];\n return new FunctionLikeSchema(location, name, args, returnType, displaySig, modifiers as Modifier[], doc);\n }\n const typeStr = parseTypeFromQuickInfo(info);\n const type = await context.resolveType(varDec, typeStr);\n return new VariableLikeSchema(location, name, displaySig, type, false, doc);\n }\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;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;AAEO,MAAMA,mBAAmB,CAA8B;EAC5DC,SAAS,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACL,mBAAmB;EACxD;EAEAM,OAAO,CAACJ,IAA6B,EAAE;IACrC,OAAOA,IAAI,CAACK,IAAI,CAACC,OAAO,EAAE;EAC5B;EAEA,MAAMC,cAAc,CAACP,IAA6B,EAAE;IAClD,OAAO,CAAC,KAAIQ,oCAAgB,EAACR,IAAI,CAACK,IAAI,CAACC,OAAO,EAAE,EAAEN,IAAI,CAACS,aAAa,EAAE,CAACC,QAAQ,CAAC,CAAC;EACnF;EAEA,MAAMC,SAAS,CAACC,MAA+B,EAAEC,OAA+B,EAAuB;IAAA;IACrG,MAAMR,IAAI,GAAG,IAAI,CAACD,OAAO,CAACQ,MAAM,CAAC;IACjC,MAAME,IAAI,GAAG,MAAMD,OAAO,CAACE,YAAY,CAACH,MAAM,CAACP,IAAI,CAAC;IACpD,MAAMW,UAAU,GAAG,CAAAF,IAAI,aAAJA,IAAI,qCAAJA,IAAI,CAAEG,IAAI,+CAAV,WAAYC,aAAa,KAAI,EAAE;IAClD,MAAMC,QAAQ,GAAGN,OAAO,CAACO,WAAW,CAACR,MAAM,CAAC;IAC5C,MAAMS,GAAG,GAAG,MAAM,IAAAC,oCAAgB,EAACV,MAAM,EAAEC,OAAO,CAAC;IACnD,IAAI,wBAAAD,MAAM,CAACW,WAAW,wDAAlB,oBAAoBtB,IAAI,MAAKC,qBAAE,CAACC,UAAU,CAACqB,aAAa,EAAE;MAAA;MAC5D,MAAMC,IAAI,GAAG,MAAM,IAAAC,sBAAS,EAAEd,MAAM,CAACW,WAAW,CAAmBI,UAAU,EAAEd,OAAO,CAAC;MACvF,MAAMe,OAAO,GAAG,IAAAC,sDAA4B,EAACf,IAAI,CAAC;MAClD,MAAMgB,UAAU,GAAG,MAAMjB,OAAO,CAACkB,WAAW,CAACnB,MAAM,EAAEgB,OAAO,CAAC;MAC7D,MAAMI,SAAS,GAAG,sBAAApB,MAAM,CAACoB,SAAS,sDAAhB,kBAAkBC,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAAC5B,OAAO,EAAE,CAAC,KAAI,EAAE;MAC/E,OAAO,KAAI6B,uCAAkB,EAAChB,QAAQ,EAAEd,IAAI,EAAEoB,IAAI,EAAEK,UAAU,EAAEd,UAAU,EAAEgB,SAAS,EAAgBX,GAAG,CAAC;IAC3G;IACA,MAAMO,OAAO,GAAG,IAAAQ,gDAAsB,EAACtB,IAAI,CAAC;IAC5C,MAAMuB,IAAI,GAAG,MAAMxB,OAAO,CAACkB,WAAW,CAACnB,MAAM,EAAEgB,OAAO,CAAC;IACvD,OAAO,KAAIU,uCAAkB,EAACnB,QAAQ,EAAEd,IAAI,EAAEW,UAAU,EAAEqB,IAAI,EAAE,KAAK,EAAEhB,GAAG,CAAC;EAC7E;AACF;AAAC"}
@@ -1,64 +1,46 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.promise.js");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.VariableStatementTransformer = void 0;
11
-
12
9
  function _semanticsEntities() {
13
10
  const data = require("@teambit/semantics.entities.semantic-schema");
14
-
15
11
  _semanticsEntities = function () {
16
12
  return data;
17
13
  };
18
-
19
14
  return data;
20
15
  }
21
-
22
16
  function _lodash() {
23
17
  const data = require("lodash");
24
-
25
18
  _lodash = function () {
26
19
  return data;
27
20
  };
28
-
29
21
  return data;
30
22
  }
31
-
32
23
  function _pMapSeries() {
33
24
  const data = _interopRequireDefault(require("p-map-series"));
34
-
35
25
  _pMapSeries = function () {
36
26
  return data;
37
27
  };
38
-
39
28
  return data;
40
29
  }
41
-
42
30
  function _typescript() {
43
31
  const data = _interopRequireDefault(require("typescript"));
44
-
45
32
  _typescript = function () {
46
33
  return data;
47
34
  };
48
-
49
35
  return data;
50
36
  }
51
-
52
37
  function _exportIdentifier() {
53
38
  const data = require("../export-identifier");
54
-
55
39
  _exportIdentifier = function () {
56
40
  return data;
57
41
  };
58
-
59
42
  return data;
60
43
  }
61
-
62
44
  /**
63
45
  * variable statement is a collection of variable declarations.
64
46
  * e.g. `export const a = 1, b = () => {}, c = {};`
@@ -67,13 +49,11 @@ class VariableStatementTransformer {
67
49
  predicate(node) {
68
50
  return node.kind === _typescript().default.SyntaxKind.VariableStatement;
69
51
  }
70
-
71
52
  async getIdentifiers(node) {
72
53
  return node.declarationList.declarations.map(dec => {
73
54
  return new (_exportIdentifier().ExportIdentifier)(dec.name.getText(), dec.getSourceFile().fileName);
74
55
  });
75
56
  }
76
-
77
57
  async transform(node, context) {
78
58
  const schemas = await (0, _pMapSeries().default)(node.declarationList.declarations, async dec => {
79
59
  // this will get the schema from variable-declaration
@@ -82,9 +62,7 @@ class VariableStatementTransformer {
82
62
  });
83
63
  return new (_semanticsEntities().Module)(context.getLocation(node), (0, _lodash().compact)(schemas));
84
64
  }
85
-
86
65
  }
87
-
88
66
  exports.VariableStatementTransformer = VariableStatementTransformer;
89
67
 
90
68
  //# sourceMappingURL=variable-statement.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VariableStatementTransformer","predicate","node","kind","ts","SyntaxKind","VariableStatement","getIdentifiers","declarationList","declarations","map","dec","ExportIdentifier","name","getText","getSourceFile","fileName","transform","context","schemas","pMapSeries","schema","visitDefinition","Module","getLocation","compact"],"sources":["variable-statement.ts"],"sourcesContent":["import { SchemaNode, Module } from '@teambit/semantics.entities.semantic-schema';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport ts, { Node, VariableStatement } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { ExportIdentifier } from '../export-identifier';\n\n/**\n * variable statement is a collection of variable declarations.\n * e.g. `export const a = 1, b = () => {}, c = {};`\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(node: VariableStatement, context: SchemaExtractorContext): Promise<SchemaNode> {\n const schemas = await pMapSeries(node.declarationList.declarations, async (dec) => {\n // this will get the schema from variable-declaration\n const schema = await context.visitDefinition(dec.name);\n return schema;\n });\n return new Module(context.getLocation(node), compact(schemas));\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;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;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;AACA;AACA;AACA;AACO,MAAMA,4BAAN,CAAgE;EACrEC,SAAS,CAACC,IAAD,EAAa;IACpB,OAAOA,IAAI,CAACC,IAAL,KAAcC,qBAAA,CAAGC,UAAH,CAAcC,iBAAnC;EACD;;EAEmB,MAAdC,cAAc,CAACL,IAAD,EAA0B;IAC5C,OAAOA,IAAI,CAACM,eAAL,CAAqBC,YAArB,CAAkCC,GAAlC,CAAuCC,GAAD,IAAS;MACpD,OAAO,KAAIC,oCAAJ,EAAqBD,GAAG,CAACE,IAAJ,CAASC,OAAT,EAArB,EAAyCH,GAAG,CAACI,aAAJ,GAAoBC,QAA7D,CAAP;IACD,CAFM,CAAP;EAGD;;EAEc,MAATC,SAAS,CAACf,IAAD,EAA0BgB,OAA1B,EAAgF;IAC7F,MAAMC,OAAO,GAAG,MAAM,IAAAC,qBAAA,EAAWlB,IAAI,CAACM,eAAL,CAAqBC,YAAhC,EAA8C,MAAOE,GAAP,IAAe;MACjF;MACA,MAAMU,MAAM,GAAG,MAAMH,OAAO,CAACI,eAAR,CAAwBX,GAAG,CAACE,IAA5B,CAArB;MACA,OAAOQ,MAAP;IACD,CAJqB,CAAtB;IAKA,OAAO,KAAIE,2BAAJ,EAAWL,OAAO,CAACM,WAAR,CAAoBtB,IAApB,CAAX,EAAsC,IAAAuB,iBAAA,EAAQN,OAAR,CAAtC,CAAP;EACD;;AAlBoE"}
1
+ {"version":3,"names":["VariableStatementTransformer","predicate","node","kind","ts","SyntaxKind","VariableStatement","getIdentifiers","declarationList","declarations","map","dec","ExportIdentifier","name","getText","getSourceFile","fileName","transform","context","schemas","pMapSeries","schema","visitDefinition","Module","getLocation","compact"],"sources":["variable-statement.ts"],"sourcesContent":["import { SchemaNode, Module } from '@teambit/semantics.entities.semantic-schema';\nimport { compact } from 'lodash';\nimport pMapSeries from 'p-map-series';\nimport ts, { Node, VariableStatement } from 'typescript';\nimport { SchemaTransformer } from '../schema-transformer';\nimport { SchemaExtractorContext } from '../schema-extractor-context';\nimport { ExportIdentifier } from '../export-identifier';\n\n/**\n * variable statement is a collection of variable declarations.\n * e.g. `export const a = 1, b = () => {}, c = {};`\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(node: VariableStatement, context: SchemaExtractorContext): Promise<SchemaNode> {\n const schemas = await pMapSeries(node.declarationList.declarations, async (dec) => {\n // this will get the schema from variable-declaration\n const schema = await context.visitDefinition(dec.name);\n return schema;\n });\n return new Module(context.getLocation(node), compact(schemas));\n }\n}\n"],"mappings":";;;;;;;;AAAA;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;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AACA;AACA;AACA;AACO,MAAMA,4BAA4B,CAA8B;EACrEC,SAAS,CAACC,IAAU,EAAE;IACpB,OAAOA,IAAI,CAACC,IAAI,KAAKC,qBAAE,CAACC,UAAU,CAACC,iBAAiB;EACtD;EAEA,MAAMC,cAAc,CAACL,IAAuB,EAAE;IAC5C,OAAOA,IAAI,CAACM,eAAe,CAACC,YAAY,CAACC,GAAG,CAAEC,GAAG,IAAK;MACpD,OAAO,KAAIC,oCAAgB,EAACD,GAAG,CAACE,IAAI,CAACC,OAAO,EAAE,EAAEH,GAAG,CAACI,aAAa,EAAE,CAACC,QAAQ,CAAC;IAC/E,CAAC,CAAC;EACJ;EAEA,MAAMC,SAAS,CAACf,IAAuB,EAAEgB,OAA+B,EAAuB;IAC7F,MAAMC,OAAO,GAAG,MAAM,IAAAC,qBAAU,EAAClB,IAAI,CAACM,eAAe,CAACC,YAAY,EAAE,MAAOE,GAAG,IAAK;MACjF;MACA,MAAMU,MAAM,GAAG,MAAMH,OAAO,CAACI,eAAe,CAACX,GAAG,CAACE,IAAI,CAAC;MACtD,OAAOQ,MAAM;IACf,CAAC,CAAC;IACF,OAAO,KAAIE,2BAAM,EAACL,OAAO,CAACM,WAAW,CAACtB,IAAI,CAAC,EAAE,IAAAuB,iBAAO,EAACN,OAAO,CAAC,CAAC;EAChE;AACF;AAAC"}
@@ -1,89 +1,63 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.array.flat.js");
6
-
7
5
  require("core-js/modules/es.array.iterator.js");
8
-
9
6
  require("core-js/modules/es.array.unscopables.flat.js");
10
-
11
7
  require("core-js/modules/es.promise.js");
12
-
13
8
  require("core-js/modules/es.regexp.exec.js");
14
-
15
9
  Object.defineProperty(exports, "__esModule", {
16
10
  value: true
17
11
  });
18
12
  exports.TsconfigWriter = void 0;
19
13
  exports.dedupePaths = dedupePaths;
20
-
21
14
  function _fsExtra() {
22
15
  const data = _interopRequireDefault(require("fs-extra"));
23
-
24
16
  _fsExtra = function () {
25
17
  return data;
26
18
  };
27
-
28
19
  return data;
29
20
  }
30
-
31
21
  function _path() {
32
22
  const data = _interopRequireDefault(require("path"));
33
-
34
23
  _path = function () {
35
24
  return data;
36
25
  };
37
-
38
26
  return data;
39
27
  }
40
-
41
28
  function _yesno() {
42
29
  const data = _interopRequireDefault(require("yesno"));
43
-
44
30
  _yesno = function () {
45
31
  return data;
46
32
  };
47
-
48
33
  return data;
49
34
  }
50
-
51
35
  function _lodash() {
52
36
  const data = require("lodash");
53
-
54
37
  _lodash = function () {
55
38
  return data;
56
39
  };
57
-
58
40
  return data;
59
41
  }
60
-
61
42
  function _exceptions() {
62
43
  const data = require("@teambit/legacy/dist/prompts/exceptions");
63
-
64
44
  _exceptions = function () {
65
45
  return data;
66
46
  };
67
-
68
47
  return data;
69
48
  }
70
-
71
49
  function _chalk() {
72
50
  const data = _interopRequireDefault(require("chalk"));
73
-
74
51
  _chalk = function () {
75
52
  return data;
76
53
  };
77
-
78
54
  return data;
79
55
  }
80
-
81
56
  class TsconfigWriter {
82
57
  constructor(workspace, logger) {
83
58
  this.workspace = workspace;
84
59
  this.logger = logger;
85
60
  }
86
-
87
61
  async write(envsExecutionContext, options) {
88
62
  const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, options);
89
63
  const tsconfigPathsPerEnv = pathsPerEnvs.map(pathsPerEnv => ({
@@ -96,7 +70,6 @@ class TsconfigWriter {
96
70
  await this.writeFiles(tsconfigPathsPerEnv);
97
71
  return tsconfigPathsPerEnv;
98
72
  }
99
-
100
73
  async clean(envsExecutionContext, {
101
74
  dryRun,
102
75
  silent
@@ -114,7 +87,6 @@ class TsconfigWriter {
114
87
  await this.deleteFiles(tsconfigFiles);
115
88
  return tsconfigFiles;
116
89
  }
117
-
118
90
  async promptForWriting(dirs) {
119
91
  this.logger.clearStatusLine();
120
92
  const tsconfigFiles = dirs.map(dir => _path().default.join(dir, 'tsconfig.json'));
@@ -123,12 +95,10 @@ class TsconfigWriter {
123
95
  ${tsconfigFiles.join('\n')}
124
96
  ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
125
97
  });
126
-
127
98
  if (!ok) {
128
99
  throw new (_exceptions().PromptCanceled)();
129
100
  }
130
101
  }
131
-
132
102
  async promptForCleaning(tsconfigFiles) {
133
103
  this.logger.clearStatusLine();
134
104
  const ok = await (0, _yesno().default)({
@@ -136,16 +106,13 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
136
106
  ${tsconfigFiles.join('\n')}
137
107
  ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
138
108
  });
139
-
140
109
  if (!ok) {
141
110
  throw new (_exceptions().PromptCanceled)();
142
111
  }
143
112
  }
144
-
145
113
  async deleteFiles(tsconfigFiles) {
146
114
  await Promise.all(tsconfigFiles.map(f => _fsExtra().default.remove(f)));
147
115
  }
148
-
149
116
  async writeFiles(tsconfigPathsPerEnvs) {
150
117
  await Promise.all(tsconfigPathsPerEnvs.map(pathsPerEnv => {
151
118
  return Promise.all(pathsPerEnv.paths.map(p => _fsExtra().default.writeJSON(_path().default.join(p, 'tsconfig.json'), pathsPerEnv.tsconfig, {
@@ -153,7 +120,6 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
153
120
  })));
154
121
  }));
155
122
  }
156
-
157
123
  getPathsPerEnv(envsExecutionContext, {
158
124
  dedupe
159
125
  }) {
@@ -166,7 +132,6 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
166
132
  }))
167
133
  };
168
134
  });
169
-
170
135
  if (!dedupe) {
171
136
  return pathsPerEnvs.map(({
172
137
  id,
@@ -178,15 +143,12 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
178
143
  paths
179
144
  }));
180
145
  }
181
-
182
146
  const envsWithFiles = envsExecutionContext.map(e => ({
183
147
  id: e.id,
184
148
  file: e.env.getTsConfig()
185
149
  }));
186
150
  const envsPerFile = [];
187
-
188
151
  const isEnvProcessed = envId => envsPerFile.map(e => e.envIds).flat().find(e => e === envId);
189
-
190
152
  envsWithFiles.forEach(({
191
153
  id,
192
154
  file
@@ -202,11 +164,10 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
202
164
  ids: e.envIds,
203
165
  paths: (0, _lodash().compact)(e.envIds.map(envId => {
204
166
  var _pathsPerEnvs$find;
205
-
206
167
  return (_pathsPerEnvs$find = pathsPerEnvs.find(p => p.id === envId)) === null || _pathsPerEnvs$find === void 0 ? void 0 : _pathsPerEnvs$find.paths;
207
168
  }).flat())
208
- })); // const pathsPerEnvIds = pathsPerEnvs.map((p) => ({ ids: p.ids, paths: p.paths }));
209
-
169
+ }));
170
+ // const pathsPerEnvIds = pathsPerEnvs.map((p) => ({ ids: p.ids, paths: p.paths }));
210
171
  const envsPerDedupedPaths = dedupePaths(pathsPerEnvIds);
211
172
  const dedupedPathsPerEnvs = envsPerDedupedPaths.map(envWithDedupePaths => {
212
173
  const found = pathsPerEnvs.find(p => envWithDedupePaths.ids.includes(p.id));
@@ -219,11 +180,8 @@ ${_chalk().default.bold('Do you want to continue? [yes(y)/no(n)]')}`
219
180
  });
220
181
  return dedupedPathsPerEnvs;
221
182
  }
222
-
223
183
  }
224
-
225
184
  exports.TsconfigWriter = TsconfigWriter;
226
-
227
185
  async function filterDirsWithTsconfigFile(dirs) {
228
186
  const dirsWithTsconfig = await Promise.all(dirs.map(async dir => {
229
187
  const hasTsconfig = await _fsExtra().default.pathExists(_path().default.join(dir, 'tsconfig.json'));
@@ -231,25 +189,21 @@ async function filterDirsWithTsconfigFile(dirs) {
231
189
  }));
232
190
  return (0, _lodash().compact)(dirsWithTsconfig);
233
191
  }
234
-
235
192
  function getAllPossibleDirsFromPaths(paths) {
236
193
  const dirs = paths.map(p => getAllParentsDirOfPath(p)).flat();
237
194
  dirs.push('.'); // add the root dir
238
-
239
195
  return (0, _lodash().uniq)(dirs);
240
196
  }
241
-
242
197
  function getAllParentsDirOfPath(p) {
243
198
  const all = [];
244
199
  let current = p;
245
-
246
200
  while (current !== '.') {
247
201
  all.push(current);
248
202
  current = _path().default.dirname(current);
249
203
  }
250
-
251
204
  return all;
252
205
  }
206
+
253
207
  /**
254
208
  * easier to understand by an example:
255
209
  * input:
@@ -271,8 +225,6 @@ function getAllParentsDirOfPath(p) {
271
225
  * if in a shared-dir, some components using env1 and some env2, it finds the env that has the max number of
272
226
  * components, this env will be optimized. other components, will have the files written inside their dirs.
273
227
  */
274
-
275
-
276
228
  function dedupePaths(pathsPerEnvId) {
277
229
  const rootDir = '.';
278
230
  const individualPathPerConcatenatedEnvIds = pathsPerEnvId.reduce((acc, current) => {
@@ -291,7 +243,6 @@ function dedupePaths(pathsPerEnvId) {
291
243
  allPathsPerEnvId[dir] = individualPathPerConcatenatedEnvIds[dir];
292
244
  return;
293
245
  }
294
-
295
246
  const allPathsShareSameDir = dir === rootDir ? allPaths : allPaths.filter(p => p.startsWith(`${dir}/`));
296
247
  const countPerEnv = {};
297
248
  allPathsShareSameDir.forEach(p => {
@@ -303,20 +254,19 @@ function dedupePaths(pathsPerEnvId) {
303
254
  if (!envWithMax.length) throw new Error(`must be at least one env related to path "${dir}"`);
304
255
  if (envWithMax.length > 1) allPathsPerEnvId[dir] = null;else allPathsPerEnvId[dir] = envWithMax[0];
305
256
  };
306
-
307
257
  allPossibleDirs.forEach(dirPath => {
308
258
  calculateBestEnvForDir(dirPath);
309
- }); // this is the actual deduping. if found a shorter path with the same env, then no need for this path.
310
- // in other words, return only the paths that their parent is null or has a different env.
259
+ });
311
260
 
261
+ // this is the actual deduping. if found a shorter path with the same env, then no need for this path.
262
+ // in other words, return only the paths that their parent is null or has a different env.
312
263
  const dedupedPathsPerEnvIds = Object.keys(allPathsPerEnvId).reduce((acc, current) => {
313
264
  if (allPathsPerEnvId[current] && allPathsPerEnvId[_path().default.dirname(current)] !== allPathsPerEnvId[current]) {
314
265
  acc[current] = allPathsPerEnvId[current];
315
266
  }
316
-
317
267
  return acc;
318
- }, {}); // rootDir parent is always rootDir, so leave it as is.
319
-
268
+ }, {});
269
+ // rootDir parent is always rootDir, so leave it as is.
320
270
  if (allPathsPerEnvId[rootDir]) dedupedPathsPerEnvIds[rootDir] = allPathsPerEnvId[rootDir];
321
271
  const envIdsPerDedupedPaths = (0, _lodash().invertBy)(dedupedPathsPerEnvIds);
322
272
  return Object.keys(envIdsPerDedupedPaths).map(envIdStr => ({
@@ -1 +1 @@
1
- {"version":3,"names":["TsconfigWriter","constructor","workspace","logger","write","envsExecutionContext","options","pathsPerEnvs","getPathsPerEnv","tsconfigPathsPerEnv","map","pathsPerEnv","envIds","ids","tsconfig","env","getTsConfig","paths","dryRun","silent","promptForWriting","p","flat","writeFiles","clean","dedupe","componentPaths","allPossibleDirs","getAllPossibleDirsFromPaths","dirsWithTsconfig","filterDirsWithTsconfigFile","tsconfigFiles","dir","path","join","length","promptForCleaning","deleteFiles","dirs","clearStatusLine","ok","yesno","question","chalk","underline","bold","PromptCanceled","Promise","all","f","fs","remove","tsconfigPathsPerEnvs","writeJSON","spaces","envExecution","id","components","c","componentDir","undefined","relative","envsWithFiles","e","file","envsPerFile","isEnvProcessed","envId","find","forEach","foundSameFile","filter","isEqual","push","fileContent","pathsPerEnvIds","compact","envsPerDedupedPaths","dedupePaths","dedupedPathsPerEnvs","envWithDedupePaths","found","includes","Error","hasTsconfig","pathExists","getAllParentsDirOfPath","uniq","current","dirname","pathsPerEnvId","rootDir","individualPathPerConcatenatedEnvIds","reduce","acc","allPaths","Object","keys","allPathsPerEnvId","calculateBestEnvForDir","allPathsShareSameDir","startsWith","countPerEnv","envIdStr","max","Math","values","envWithMax","dirPath","dedupedPathsPerEnvIds","envIdsPerDedupedPaths","invertBy","split"],"sources":["tsconfig-writer.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport yesno from 'yesno';\nimport { PathLinuxRelative } from '@teambit/legacy/dist/utils/path';\nimport { compact, invertBy, isEqual, uniq } from 'lodash';\nimport { PromptCanceled } from '@teambit/legacy/dist/prompts/exceptions';\nimport { Environment, ExecutionContext } from '@teambit/envs';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport { TsconfigWriterOptions } from './typescript.main.runtime';\n\nexport type TsconfigPathsPerEnv = { envIds: string[]; tsconfig: Record<string, any>; paths: string[] };\n\ntype PathsPerEnv = { env: Environment; ids: string[]; paths: string[] };\n\nexport class TsconfigWriter {\n constructor(private workspace: Workspace, private logger: Logger) {}\n\n async write(\n envsExecutionContext: ExecutionContext[],\n options: TsconfigWriterOptions\n ): Promise<TsconfigPathsPerEnv[]> {\n const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, options);\n const tsconfigPathsPerEnv = pathsPerEnvs.map((pathsPerEnv) => ({\n envIds: pathsPerEnv.ids,\n tsconfig: pathsPerEnv.env.getTsConfig(),\n paths: pathsPerEnv.paths,\n }));\n if (options.dryRun) return tsconfigPathsPerEnv;\n if (!options.silent) await this.promptForWriting(tsconfigPathsPerEnv.map((p) => p.paths).flat());\n await this.writeFiles(tsconfigPathsPerEnv);\n return tsconfigPathsPerEnv;\n }\n\n async clean(envsExecutionContext: ExecutionContext[], { dryRun, silent }: TsconfigWriterOptions): Promise<string[]> {\n const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, { dedupe: false });\n const componentPaths = pathsPerEnvs.map((p) => p.paths).flat();\n const allPossibleDirs = getAllPossibleDirsFromPaths(componentPaths);\n const dirsWithTsconfig = await filterDirsWithTsconfigFile(allPossibleDirs);\n const tsconfigFiles = dirsWithTsconfig.map((dir) => path.join(dir, 'tsconfig.json'));\n if (dryRun) return tsconfigFiles;\n if (!dirsWithTsconfig.length) return [];\n if (!silent) await this.promptForCleaning(tsconfigFiles);\n await this.deleteFiles(tsconfigFiles);\n return tsconfigFiles;\n }\n\n private async promptForWriting(dirs: string[]) {\n this.logger.clearStatusLine();\n const tsconfigFiles = dirs.map((dir) => path.join(dir, 'tsconfig.json'));\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be written:')}\n${tsconfigFiles.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async promptForCleaning(tsconfigFiles: string[]) {\n this.logger.clearStatusLine();\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be deleted:')}\n${tsconfigFiles.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async deleteFiles(tsconfigFiles: string[]) {\n await Promise.all(tsconfigFiles.map((f) => fs.remove(f)));\n }\n\n private async writeFiles(tsconfigPathsPerEnvs: TsconfigPathsPerEnv[]) {\n await Promise.all(\n tsconfigPathsPerEnvs.map((pathsPerEnv) => {\n return Promise.all(\n pathsPerEnv.paths.map((p) => fs.writeJSON(path.join(p, 'tsconfig.json'), pathsPerEnv.tsconfig, { spaces: 2 }))\n );\n })\n );\n }\n\n private getPathsPerEnv(envsExecutionContext: ExecutionContext[], { dedupe }: TsconfigWriterOptions): PathsPerEnv[] {\n const pathsPerEnvs = envsExecutionContext.map((envExecution) => {\n return {\n id: envExecution.id,\n env: envExecution.env,\n paths: envExecution.components.map((c) => this.workspace.componentDir(c.id, undefined, { relative: true })),\n };\n });\n if (!dedupe) {\n return pathsPerEnvs.map(({ id, env, paths }) => ({ ids: [id], env, paths }));\n }\n\n const envsWithFiles = envsExecutionContext.map((e) => ({\n id: e.id,\n file: e.env.getTsConfig(),\n }));\n const envsPerFile: { envIds: string[]; fileContent: Record<string, any> }[] = [];\n const isEnvProcessed = (envId: string) =>\n envsPerFile\n .map((e) => e.envIds)\n .flat()\n .find((e) => e === envId);\n envsWithFiles.forEach(({ id, file }) => {\n if (isEnvProcessed(id)) return;\n const foundSameFile = envsWithFiles.filter((e) => isEqual(file, e.file));\n envsPerFile.push({ envIds: foundSameFile.map((f) => f.id), fileContent: file });\n });\n const pathsPerEnvIds = envsPerFile.map((e) => ({\n ids: e.envIds,\n paths: compact(e.envIds.map((envId) => pathsPerEnvs.find((p) => p.id === envId)?.paths).flat()),\n }));\n // const pathsPerEnvIds = pathsPerEnvs.map((p) => ({ ids: p.ids, paths: p.paths }));\n const envsPerDedupedPaths = dedupePaths(pathsPerEnvIds);\n const dedupedPathsPerEnvs: PathsPerEnv[] = envsPerDedupedPaths.map((envWithDedupePaths) => {\n const found = pathsPerEnvs.find((p) => envWithDedupePaths.ids.includes(p.id));\n if (!found) throw new Error(`dedupedPathsPerEnvs, unable to find ${envWithDedupePaths.ids}`);\n return {\n env: found.env,\n ids: envWithDedupePaths.ids,\n paths: envWithDedupePaths.paths,\n };\n });\n\n return dedupedPathsPerEnvs;\n }\n}\n\ntype PathsPerEnvIds = { ids: string[]; paths: string[] };\n\nasync function filterDirsWithTsconfigFile(dirs: string[]): Promise<string[]> {\n const dirsWithTsconfig = await Promise.all(\n dirs.map(async (dir) => {\n const hasTsconfig = await fs.pathExists(path.join(dir, 'tsconfig.json'));\n return hasTsconfig ? dir : undefined;\n })\n );\n return compact(dirsWithTsconfig);\n}\n\nfunction getAllPossibleDirsFromPaths(paths: PathLinuxRelative[]): PathLinuxRelative[] {\n const dirs = paths.map((p) => getAllParentsDirOfPath(p)).flat();\n dirs.push('.'); // add the root dir\n return uniq(dirs);\n}\n\nfunction getAllParentsDirOfPath(p: PathLinuxRelative): PathLinuxRelative[] {\n const all: string[] = [];\n let current = p;\n while (current !== '.') {\n all.push(current);\n current = path.dirname(current);\n }\n return all;\n}\n\n/**\n * easier to understand by an example:\n * input:\n * [\n * { id: react, paths: [ui/button, ui/form] },\n * { id: aspect, paths: [p/a1, p/a2] },\n * { id: node, paths: [p/n1] },\n * ]\n *\n * output:\n * [\n * { id: react, paths: [ui] },\n * { id: aspect, paths: [p] },\n * { id: node, paths: [p/n1] },\n * ]\n *\n * the goal is to minimize the amount of files to write per env if possible.\n * when multiple components of the same env share a root-dir, then, it's enough to write a file in that shared dir.\n * if in a shared-dir, some components using env1 and some env2, it finds the env that has the max number of\n * components, this env will be optimized. other components, will have the files written inside their dirs.\n */\nexport function dedupePaths(pathsPerEnvId: PathsPerEnvIds[]): PathsPerEnvIds[] {\n const rootDir = '.';\n const individualPathPerConcatenatedEnvIds: { [path: string]: string } = pathsPerEnvId.reduce((acc, current) => {\n current.paths.forEach((p) => {\n acc[p] = current.ids.join(',');\n });\n return acc;\n }, {});\n const allPaths = Object.keys(individualPathPerConcatenatedEnvIds);\n const allPossibleDirs = getAllPossibleDirsFromPaths(allPaths);\n\n const allPathsPerEnvId: { [path: string]: string | null } = {}; // null when parent-dir has same amount of comps per env.\n\n const calculateBestEnvForDir = (dir: string) => {\n if (individualPathPerConcatenatedEnvIds[dir]) {\n // it's the component dir, so it's the best env\n allPathsPerEnvId[dir] = individualPathPerConcatenatedEnvIds[dir];\n return;\n }\n const allPathsShareSameDir = dir === rootDir ? allPaths : allPaths.filter((p) => p.startsWith(`${dir}/`));\n const countPerEnv: { [env: string]: number } = {};\n allPathsShareSameDir.forEach((p) => {\n const envIdStr = individualPathPerConcatenatedEnvIds[p];\n if (countPerEnv[envIdStr]) countPerEnv[envIdStr] += 1;\n else countPerEnv[envIdStr] = 1;\n });\n const max = Math.max(...Object.values(countPerEnv));\n const envWithMax = Object.keys(countPerEnv).filter((env) => countPerEnv[env] === max);\n if (!envWithMax.length) throw new Error(`must be at least one env related to path \"${dir}\"`);\n if (envWithMax.length > 1) allPathsPerEnvId[dir] = null;\n else allPathsPerEnvId[dir] = envWithMax[0];\n };\n\n allPossibleDirs.forEach((dirPath) => {\n calculateBestEnvForDir(dirPath);\n });\n\n // this is the actual deduping. if found a shorter path with the same env, then no need for this path.\n // in other words, return only the paths that their parent is null or has a different env.\n const dedupedPathsPerEnvIds = Object.keys(allPathsPerEnvId).reduce((acc, current) => {\n if (allPathsPerEnvId[current] && allPathsPerEnvId[path.dirname(current)] !== allPathsPerEnvId[current]) {\n acc[current] = allPathsPerEnvId[current];\n }\n\n return acc;\n }, {});\n // rootDir parent is always rootDir, so leave it as is.\n if (allPathsPerEnvId[rootDir]) dedupedPathsPerEnvIds[rootDir] = allPathsPerEnvId[rootDir];\n\n const envIdsPerDedupedPaths = invertBy(dedupedPathsPerEnvIds);\n\n return Object.keys(envIdsPerDedupedPaths).map((envIdStr) => ({\n ids: envIdStr.split(','),\n paths: envIdsPerDedupedPaths[envIdStr],\n }));\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;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAOO,MAAMA,cAAN,CAAqB;EAC1BC,WAAW,CAASC,SAAT,EAAuCC,MAAvC,EAAuD;IAAA,KAA9CD,SAA8C,GAA9CA,SAA8C;IAAA,KAAhBC,MAAgB,GAAhBA,MAAgB;EAAE;;EAEzD,MAALC,KAAK,CACTC,oBADS,EAETC,OAFS,EAGuB;IAChC,MAAMC,YAAY,GAAG,KAAKC,cAAL,CAAoBH,oBAApB,EAA0CC,OAA1C,CAArB;IACA,MAAMG,mBAAmB,GAAGF,YAAY,CAACG,GAAb,CAAkBC,WAAD,KAAkB;MAC7DC,MAAM,EAAED,WAAW,CAACE,GADyC;MAE7DC,QAAQ,EAAEH,WAAW,CAACI,GAAZ,CAAgBC,WAAhB,EAFmD;MAG7DC,KAAK,EAAEN,WAAW,CAACM;IAH0C,CAAlB,CAAjB,CAA5B;IAKA,IAAIX,OAAO,CAACY,MAAZ,EAAoB,OAAOT,mBAAP;IACpB,IAAI,CAACH,OAAO,CAACa,MAAb,EAAqB,MAAM,KAAKC,gBAAL,CAAsBX,mBAAmB,CAACC,GAApB,CAAyBW,CAAD,IAAOA,CAAC,CAACJ,KAAjC,EAAwCK,IAAxC,EAAtB,CAAN;IACrB,MAAM,KAAKC,UAAL,CAAgBd,mBAAhB,CAAN;IACA,OAAOA,mBAAP;EACD;;EAEU,MAALe,KAAK,CAACnB,oBAAD,EAA2C;IAAEa,MAAF;IAAUC;EAAV,CAA3C,EAAyG;IAClH,MAAMZ,YAAY,GAAG,KAAKC,cAAL,CAAoBH,oBAApB,EAA0C;MAAEoB,MAAM,EAAE;IAAV,CAA1C,CAArB;IACA,MAAMC,cAAc,GAAGnB,YAAY,CAACG,GAAb,CAAkBW,CAAD,IAAOA,CAAC,CAACJ,KAA1B,EAAiCK,IAAjC,EAAvB;IACA,MAAMK,eAAe,GAAGC,2BAA2B,CAACF,cAAD,CAAnD;IACA,MAAMG,gBAAgB,GAAG,MAAMC,0BAA0B,CAACH,eAAD,CAAzD;IACA,MAAMI,aAAa,GAAGF,gBAAgB,CAACnB,GAAjB,CAAsBsB,GAAD,IAASC,eAAA,CAAKC,IAAL,CAAUF,GAAV,EAAe,eAAf,CAA9B,CAAtB;IACA,IAAId,MAAJ,EAAY,OAAOa,aAAP;IACZ,IAAI,CAACF,gBAAgB,CAACM,MAAtB,EAA8B,OAAO,EAAP;IAC9B,IAAI,CAAChB,MAAL,EAAa,MAAM,KAAKiB,iBAAL,CAAuBL,aAAvB,CAAN;IACb,MAAM,KAAKM,WAAL,CAAiBN,aAAjB,CAAN;IACA,OAAOA,aAAP;EACD;;EAE6B,MAAhBX,gBAAgB,CAACkB,IAAD,EAAiB;IAC7C,KAAKnC,MAAL,CAAYoC,eAAZ;IACA,MAAMR,aAAa,GAAGO,IAAI,CAAC5B,GAAL,CAAUsB,GAAD,IAASC,eAAA,CAAKC,IAAL,CAAUF,GAAV,EAAe,eAAf,CAAlB,CAAtB;IACA,MAAMQ,EAAE,GAAG,MAAM,IAAAC,gBAAA,EAAM;MACrBC,QAAQ,EAAG,GAAEC,gBAAA,CAAMC,SAAN,CAAgB,sCAAhB,CAAwD;AAC3E,EAAEb,aAAa,CAACG,IAAd,CAAmB,IAAnB,CAAyB;AAC3B,EAAES,gBAAA,CAAME,IAAN,CAAW,yCAAX,CAAsD;IAH7B,CAAN,CAAjB;;IAKA,IAAI,CAACL,EAAL,EAAS;MACP,MAAM,KAAIM,4BAAJ,GAAN;IACD;EACF;;EAE8B,MAAjBV,iBAAiB,CAACL,aAAD,EAA0B;IACvD,KAAK5B,MAAL,CAAYoC,eAAZ;IACA,MAAMC,EAAE,GAAG,MAAM,IAAAC,gBAAA,EAAM;MACrBC,QAAQ,EAAG,GAAEC,gBAAA,CAAMC,SAAN,CAAgB,sCAAhB,CAAwD;AAC3E,EAAEb,aAAa,CAACG,IAAd,CAAmB,IAAnB,CAAyB;AAC3B,EAAES,gBAAA,CAAME,IAAN,CAAW,yCAAX,CAAsD;IAH7B,CAAN,CAAjB;;IAKA,IAAI,CAACL,EAAL,EAAS;MACP,MAAM,KAAIM,4BAAJ,GAAN;IACD;EACF;;EAEwB,MAAXT,WAAW,CAACN,aAAD,EAA0B;IACjD,MAAMgB,OAAO,CAACC,GAAR,CAAYjB,aAAa,CAACrB,GAAd,CAAmBuC,CAAD,IAAOC,kBAAA,CAAGC,MAAH,CAAUF,CAAV,CAAzB,CAAZ,CAAN;EACD;;EAEuB,MAAV1B,UAAU,CAAC6B,oBAAD,EAA8C;IACpE,MAAML,OAAO,CAACC,GAAR,CACJI,oBAAoB,CAAC1C,GAArB,CAA0BC,WAAD,IAAiB;MACxC,OAAOoC,OAAO,CAACC,GAAR,CACLrC,WAAW,CAACM,KAAZ,CAAkBP,GAAlB,CAAuBW,CAAD,IAAO6B,kBAAA,CAAGG,SAAH,CAAapB,eAAA,CAAKC,IAAL,CAAUb,CAAV,EAAa,eAAb,CAAb,EAA4CV,WAAW,CAACG,QAAxD,EAAkE;QAAEwC,MAAM,EAAE;MAAV,CAAlE,CAA7B,CADK,CAAP;IAGD,CAJD,CADI,CAAN;EAOD;;EAEO9C,cAAc,CAACH,oBAAD,EAA2C;IAAEoB;EAAF,CAA3C,EAA6F;IACjH,MAAMlB,YAAY,GAAGF,oBAAoB,CAACK,GAArB,CAA0B6C,YAAD,IAAkB;MAC9D,OAAO;QACLC,EAAE,EAAED,YAAY,CAACC,EADZ;QAELzC,GAAG,EAAEwC,YAAY,CAACxC,GAFb;QAGLE,KAAK,EAAEsC,YAAY,CAACE,UAAb,CAAwB/C,GAAxB,CAA6BgD,CAAD,IAAO,KAAKxD,SAAL,CAAeyD,YAAf,CAA4BD,CAAC,CAACF,EAA9B,EAAkCI,SAAlC,EAA6C;UAAEC,QAAQ,EAAE;QAAZ,CAA7C,CAAnC;MAHF,CAAP;IAKD,CANoB,CAArB;;IAOA,IAAI,CAACpC,MAAL,EAAa;MACX,OAAOlB,YAAY,CAACG,GAAb,CAAiB,CAAC;QAAE8C,EAAF;QAAMzC,GAAN;QAAWE;MAAX,CAAD,MAAyB;QAAEJ,GAAG,EAAE,CAAC2C,EAAD,CAAP;QAAazC,GAAb;QAAkBE;MAAlB,CAAzB,CAAjB,CAAP;IACD;;IAED,MAAM6C,aAAa,GAAGzD,oBAAoB,CAACK,GAArB,CAA0BqD,CAAD,KAAQ;MACrDP,EAAE,EAAEO,CAAC,CAACP,EAD+C;MAErDQ,IAAI,EAAED,CAAC,CAAChD,GAAF,CAAMC,WAAN;IAF+C,CAAR,CAAzB,CAAtB;IAIA,MAAMiD,WAAqE,GAAG,EAA9E;;IACA,MAAMC,cAAc,GAAIC,KAAD,IACrBF,WAAW,CACRvD,GADH,CACQqD,CAAD,IAAOA,CAAC,CAACnD,MADhB,EAEGU,IAFH,GAGG8C,IAHH,CAGSL,CAAD,IAAOA,CAAC,KAAKI,KAHrB,CADF;;IAKAL,aAAa,CAACO,OAAd,CAAsB,CAAC;MAAEb,EAAF;MAAMQ;IAAN,CAAD,KAAkB;MACtC,IAAIE,cAAc,CAACV,EAAD,CAAlB,EAAwB;MACxB,MAAMc,aAAa,GAAGR,aAAa,CAACS,MAAd,CAAsBR,CAAD,IAAO,IAAAS,iBAAA,EAAQR,IAAR,EAAcD,CAAC,CAACC,IAAhB,CAA5B,CAAtB;MACAC,WAAW,CAACQ,IAAZ,CAAiB;QAAE7D,MAAM,EAAE0D,aAAa,CAAC5D,GAAd,CAAmBuC,CAAD,IAAOA,CAAC,CAACO,EAA3B,CAAV;QAA0CkB,WAAW,EAAEV;MAAvD,CAAjB;IACD,CAJD;IAKA,MAAMW,cAAc,GAAGV,WAAW,CAACvD,GAAZ,CAAiBqD,CAAD,KAAQ;MAC7ClD,GAAG,EAAEkD,CAAC,CAACnD,MADsC;MAE7CK,KAAK,EAAE,IAAA2D,iBAAA,EAAQb,CAAC,CAACnD,MAAF,CAASF,GAAT,CAAcyD,KAAD;QAAA;;QAAA,6BAAW5D,YAAY,CAAC6D,IAAb,CAAmB/C,CAAD,IAAOA,CAAC,CAACmC,EAAF,KAASW,KAAlC,CAAX,uDAAW,mBAA0ClD,KAArD;MAAA,CAAb,EAAyEK,IAAzE,EAAR;IAFsC,CAAR,CAAhB,CAAvB,CA3BiH,CA+BjH;;IACA,MAAMuD,mBAAmB,GAAGC,WAAW,CAACH,cAAD,CAAvC;IACA,MAAMI,mBAAkC,GAAGF,mBAAmB,CAACnE,GAApB,CAAyBsE,kBAAD,IAAwB;MACzF,MAAMC,KAAK,GAAG1E,YAAY,CAAC6D,IAAb,CAAmB/C,CAAD,IAAO2D,kBAAkB,CAACnE,GAAnB,CAAuBqE,QAAvB,CAAgC7D,CAAC,CAACmC,EAAlC,CAAzB,CAAd;MACA,IAAI,CAACyB,KAAL,EAAY,MAAM,IAAIE,KAAJ,CAAW,uCAAsCH,kBAAkB,CAACnE,GAAI,EAAxE,CAAN;MACZ,OAAO;QACLE,GAAG,EAAEkE,KAAK,CAAClE,GADN;QAELF,GAAG,EAAEmE,kBAAkB,CAACnE,GAFnB;QAGLI,KAAK,EAAE+D,kBAAkB,CAAC/D;MAHrB,CAAP;IAKD,CAR0C,CAA3C;IAUA,OAAO8D,mBAAP;EACD;;AAnHyB;;;;AAwH5B,eAAejD,0BAAf,CAA0CQ,IAA1C,EAA6E;EAC3E,MAAMT,gBAAgB,GAAG,MAAMkB,OAAO,CAACC,GAAR,CAC7BV,IAAI,CAAC5B,GAAL,CAAS,MAAOsB,GAAP,IAAe;IACtB,MAAMoD,WAAW,GAAG,MAAMlC,kBAAA,CAAGmC,UAAH,CAAcpD,eAAA,CAAKC,IAAL,CAAUF,GAAV,EAAe,eAAf,CAAd,CAA1B;IACA,OAAOoD,WAAW,GAAGpD,GAAH,GAAS4B,SAA3B;EACD,CAHD,CAD6B,CAA/B;EAMA,OAAO,IAAAgB,iBAAA,EAAQ/C,gBAAR,CAAP;AACD;;AAED,SAASD,2BAAT,CAAqCX,KAArC,EAAsF;EACpF,MAAMqB,IAAI,GAAGrB,KAAK,CAACP,GAAN,CAAWW,CAAD,IAAOiE,sBAAsB,CAACjE,CAAD,CAAvC,EAA4CC,IAA5C,EAAb;EACAgB,IAAI,CAACmC,IAAL,CAAU,GAAV,EAFoF,CAEpE;;EAChB,OAAO,IAAAc,cAAA,EAAKjD,IAAL,CAAP;AACD;;AAED,SAASgD,sBAAT,CAAgCjE,CAAhC,EAA2E;EACzE,MAAM2B,GAAa,GAAG,EAAtB;EACA,IAAIwC,OAAO,GAAGnE,CAAd;;EACA,OAAOmE,OAAO,KAAK,GAAnB,EAAwB;IACtBxC,GAAG,CAACyB,IAAJ,CAASe,OAAT;IACAA,OAAO,GAAGvD,eAAA,CAAKwD,OAAL,CAAaD,OAAb,CAAV;EACD;;EACD,OAAOxC,GAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAAS8B,WAAT,CAAqBY,aAArB,EAAwE;EAC7E,MAAMC,OAAO,GAAG,GAAhB;EACA,MAAMC,mCAA+D,GAAGF,aAAa,CAACG,MAAd,CAAqB,CAACC,GAAD,EAAMN,OAAN,KAAkB;IAC7GA,OAAO,CAACvE,KAAR,CAAcoD,OAAd,CAAuBhD,CAAD,IAAO;MAC3ByE,GAAG,CAACzE,CAAD,CAAH,GAASmE,OAAO,CAAC3E,GAAR,CAAYqB,IAAZ,CAAiB,GAAjB,CAAT;IACD,CAFD;IAGA,OAAO4D,GAAP;EACD,CALuE,EAKrE,EALqE,CAAxE;EAMA,MAAMC,QAAQ,GAAGC,MAAM,CAACC,IAAP,CAAYL,mCAAZ,CAAjB;EACA,MAAMjE,eAAe,GAAGC,2BAA2B,CAACmE,QAAD,CAAnD;EAEA,MAAMG,gBAAmD,GAAG,EAA5D,CAX6E,CAWb;;EAEhE,MAAMC,sBAAsB,GAAInE,GAAD,IAAiB;IAC9C,IAAI4D,mCAAmC,CAAC5D,GAAD,CAAvC,EAA8C;MAC5C;MACAkE,gBAAgB,CAAClE,GAAD,CAAhB,GAAwB4D,mCAAmC,CAAC5D,GAAD,CAA3D;MACA;IACD;;IACD,MAAMoE,oBAAoB,GAAGpE,GAAG,KAAK2D,OAAR,GAAkBI,QAAlB,GAA6BA,QAAQ,CAACxB,MAAT,CAAiBlD,CAAD,IAAOA,CAAC,CAACgF,UAAF,CAAc,GAAErE,GAAI,GAApB,CAAvB,CAA1D;IACA,MAAMsE,WAAsC,GAAG,EAA/C;IACAF,oBAAoB,CAAC/B,OAArB,CAA8BhD,CAAD,IAAO;MAClC,MAAMkF,QAAQ,GAAGX,mCAAmC,CAACvE,CAAD,CAApD;MACA,IAAIiF,WAAW,CAACC,QAAD,CAAf,EAA2BD,WAAW,CAACC,QAAD,CAAX,IAAyB,CAAzB,CAA3B,KACKD,WAAW,CAACC,QAAD,CAAX,GAAwB,CAAxB;IACN,CAJD;IAKA,MAAMC,GAAG,GAAGC,IAAI,CAACD,GAAL,CAAS,GAAGR,MAAM,CAACU,MAAP,CAAcJ,WAAd,CAAZ,CAAZ;IACA,MAAMK,UAAU,GAAGX,MAAM,CAACC,IAAP,CAAYK,WAAZ,EAAyB/B,MAAzB,CAAiCxD,GAAD,IAASuF,WAAW,CAACvF,GAAD,CAAX,KAAqByF,GAA9D,CAAnB;IACA,IAAI,CAACG,UAAU,CAACxE,MAAhB,EAAwB,MAAM,IAAIgD,KAAJ,CAAW,6CAA4CnD,GAAI,GAA3D,CAAN;IACxB,IAAI2E,UAAU,CAACxE,MAAX,GAAoB,CAAxB,EAA2B+D,gBAAgB,CAAClE,GAAD,CAAhB,GAAwB,IAAxB,CAA3B,KACKkE,gBAAgB,CAAClE,GAAD,CAAhB,GAAwB2E,UAAU,CAAC,CAAD,CAAlC;EACN,CAlBD;;EAoBAhF,eAAe,CAAC0C,OAAhB,CAAyBuC,OAAD,IAAa;IACnCT,sBAAsB,CAACS,OAAD,CAAtB;EACD,CAFD,EAjC6E,CAqC7E;EACA;;EACA,MAAMC,qBAAqB,GAAGb,MAAM,CAACC,IAAP,CAAYC,gBAAZ,EAA8BL,MAA9B,CAAqC,CAACC,GAAD,EAAMN,OAAN,KAAkB;IACnF,IAAIU,gBAAgB,CAACV,OAAD,CAAhB,IAA6BU,gBAAgB,CAACjE,eAAA,CAAKwD,OAAL,CAAaD,OAAb,CAAD,CAAhB,KAA4CU,gBAAgB,CAACV,OAAD,CAA7F,EAAwG;MACtGM,GAAG,CAACN,OAAD,CAAH,GAAeU,gBAAgB,CAACV,OAAD,CAA/B;IACD;;IAED,OAAOM,GAAP;EACD,CAN6B,EAM3B,EAN2B,CAA9B,CAvC6E,CA8C7E;;EACA,IAAII,gBAAgB,CAACP,OAAD,CAApB,EAA+BkB,qBAAqB,CAAClB,OAAD,CAArB,GAAiCO,gBAAgB,CAACP,OAAD,CAAjD;EAE/B,MAAMmB,qBAAqB,GAAG,IAAAC,kBAAA,EAASF,qBAAT,CAA9B;EAEA,OAAOb,MAAM,CAACC,IAAP,CAAYa,qBAAZ,EAAmCpG,GAAnC,CAAwC6F,QAAD,KAAe;IAC3D1F,GAAG,EAAE0F,QAAQ,CAACS,KAAT,CAAe,GAAf,CADsD;IAE3D/F,KAAK,EAAE6F,qBAAqB,CAACP,QAAD;EAF+B,CAAf,CAAvC,CAAP;AAID"}
1
+ {"version":3,"names":["TsconfigWriter","constructor","workspace","logger","write","envsExecutionContext","options","pathsPerEnvs","getPathsPerEnv","tsconfigPathsPerEnv","map","pathsPerEnv","envIds","ids","tsconfig","env","getTsConfig","paths","dryRun","silent","promptForWriting","p","flat","writeFiles","clean","dedupe","componentPaths","allPossibleDirs","getAllPossibleDirsFromPaths","dirsWithTsconfig","filterDirsWithTsconfigFile","tsconfigFiles","dir","path","join","length","promptForCleaning","deleteFiles","dirs","clearStatusLine","ok","yesno","question","chalk","underline","bold","PromptCanceled","Promise","all","f","fs","remove","tsconfigPathsPerEnvs","writeJSON","spaces","envExecution","id","components","c","componentDir","undefined","relative","envsWithFiles","e","file","envsPerFile","isEnvProcessed","envId","find","forEach","foundSameFile","filter","isEqual","push","fileContent","pathsPerEnvIds","compact","envsPerDedupedPaths","dedupePaths","dedupedPathsPerEnvs","envWithDedupePaths","found","includes","Error","hasTsconfig","pathExists","getAllParentsDirOfPath","uniq","current","dirname","pathsPerEnvId","rootDir","individualPathPerConcatenatedEnvIds","reduce","acc","allPaths","Object","keys","allPathsPerEnvId","calculateBestEnvForDir","allPathsShareSameDir","startsWith","countPerEnv","envIdStr","max","Math","values","envWithMax","dirPath","dedupedPathsPerEnvIds","envIdsPerDedupedPaths","invertBy","split"],"sources":["tsconfig-writer.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport yesno from 'yesno';\nimport { PathLinuxRelative } from '@teambit/legacy/dist/utils/path';\nimport { compact, invertBy, isEqual, uniq } from 'lodash';\nimport { PromptCanceled } from '@teambit/legacy/dist/prompts/exceptions';\nimport { Environment, ExecutionContext } from '@teambit/envs';\nimport { Workspace } from '@teambit/workspace';\nimport { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport { TsconfigWriterOptions } from './typescript.main.runtime';\n\nexport type TsconfigPathsPerEnv = { envIds: string[]; tsconfig: Record<string, any>; paths: string[] };\n\ntype PathsPerEnv = { env: Environment; ids: string[]; paths: string[] };\n\nexport class TsconfigWriter {\n constructor(private workspace: Workspace, private logger: Logger) {}\n\n async write(\n envsExecutionContext: ExecutionContext[],\n options: TsconfigWriterOptions\n ): Promise<TsconfigPathsPerEnv[]> {\n const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, options);\n const tsconfigPathsPerEnv = pathsPerEnvs.map((pathsPerEnv) => ({\n envIds: pathsPerEnv.ids,\n tsconfig: pathsPerEnv.env.getTsConfig(),\n paths: pathsPerEnv.paths,\n }));\n if (options.dryRun) return tsconfigPathsPerEnv;\n if (!options.silent) await this.promptForWriting(tsconfigPathsPerEnv.map((p) => p.paths).flat());\n await this.writeFiles(tsconfigPathsPerEnv);\n return tsconfigPathsPerEnv;\n }\n\n async clean(envsExecutionContext: ExecutionContext[], { dryRun, silent }: TsconfigWriterOptions): Promise<string[]> {\n const pathsPerEnvs = this.getPathsPerEnv(envsExecutionContext, { dedupe: false });\n const componentPaths = pathsPerEnvs.map((p) => p.paths).flat();\n const allPossibleDirs = getAllPossibleDirsFromPaths(componentPaths);\n const dirsWithTsconfig = await filterDirsWithTsconfigFile(allPossibleDirs);\n const tsconfigFiles = dirsWithTsconfig.map((dir) => path.join(dir, 'tsconfig.json'));\n if (dryRun) return tsconfigFiles;\n if (!dirsWithTsconfig.length) return [];\n if (!silent) await this.promptForCleaning(tsconfigFiles);\n await this.deleteFiles(tsconfigFiles);\n return tsconfigFiles;\n }\n\n private async promptForWriting(dirs: string[]) {\n this.logger.clearStatusLine();\n const tsconfigFiles = dirs.map((dir) => path.join(dir, 'tsconfig.json'));\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be written:')}\n${tsconfigFiles.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async promptForCleaning(tsconfigFiles: string[]) {\n this.logger.clearStatusLine();\n const ok = await yesno({\n question: `${chalk.underline('The following paths will be deleted:')}\n${tsconfigFiles.join('\\n')}\n${chalk.bold('Do you want to continue? [yes(y)/no(n)]')}`,\n });\n if (!ok) {\n throw new PromptCanceled();\n }\n }\n\n private async deleteFiles(tsconfigFiles: string[]) {\n await Promise.all(tsconfigFiles.map((f) => fs.remove(f)));\n }\n\n private async writeFiles(tsconfigPathsPerEnvs: TsconfigPathsPerEnv[]) {\n await Promise.all(\n tsconfigPathsPerEnvs.map((pathsPerEnv) => {\n return Promise.all(\n pathsPerEnv.paths.map((p) => fs.writeJSON(path.join(p, 'tsconfig.json'), pathsPerEnv.tsconfig, { spaces: 2 }))\n );\n })\n );\n }\n\n private getPathsPerEnv(envsExecutionContext: ExecutionContext[], { dedupe }: TsconfigWriterOptions): PathsPerEnv[] {\n const pathsPerEnvs = envsExecutionContext.map((envExecution) => {\n return {\n id: envExecution.id,\n env: envExecution.env,\n paths: envExecution.components.map((c) => this.workspace.componentDir(c.id, undefined, { relative: true })),\n };\n });\n if (!dedupe) {\n return pathsPerEnvs.map(({ id, env, paths }) => ({ ids: [id], env, paths }));\n }\n\n const envsWithFiles = envsExecutionContext.map((e) => ({\n id: e.id,\n file: e.env.getTsConfig(),\n }));\n const envsPerFile: { envIds: string[]; fileContent: Record<string, any> }[] = [];\n const isEnvProcessed = (envId: string) =>\n envsPerFile\n .map((e) => e.envIds)\n .flat()\n .find((e) => e === envId);\n envsWithFiles.forEach(({ id, file }) => {\n if (isEnvProcessed(id)) return;\n const foundSameFile = envsWithFiles.filter((e) => isEqual(file, e.file));\n envsPerFile.push({ envIds: foundSameFile.map((f) => f.id), fileContent: file });\n });\n const pathsPerEnvIds = envsPerFile.map((e) => ({\n ids: e.envIds,\n paths: compact(e.envIds.map((envId) => pathsPerEnvs.find((p) => p.id === envId)?.paths).flat()),\n }));\n // const pathsPerEnvIds = pathsPerEnvs.map((p) => ({ ids: p.ids, paths: p.paths }));\n const envsPerDedupedPaths = dedupePaths(pathsPerEnvIds);\n const dedupedPathsPerEnvs: PathsPerEnv[] = envsPerDedupedPaths.map((envWithDedupePaths) => {\n const found = pathsPerEnvs.find((p) => envWithDedupePaths.ids.includes(p.id));\n if (!found) throw new Error(`dedupedPathsPerEnvs, unable to find ${envWithDedupePaths.ids}`);\n return {\n env: found.env,\n ids: envWithDedupePaths.ids,\n paths: envWithDedupePaths.paths,\n };\n });\n\n return dedupedPathsPerEnvs;\n }\n}\n\ntype PathsPerEnvIds = { ids: string[]; paths: string[] };\n\nasync function filterDirsWithTsconfigFile(dirs: string[]): Promise<string[]> {\n const dirsWithTsconfig = await Promise.all(\n dirs.map(async (dir) => {\n const hasTsconfig = await fs.pathExists(path.join(dir, 'tsconfig.json'));\n return hasTsconfig ? dir : undefined;\n })\n );\n return compact(dirsWithTsconfig);\n}\n\nfunction getAllPossibleDirsFromPaths(paths: PathLinuxRelative[]): PathLinuxRelative[] {\n const dirs = paths.map((p) => getAllParentsDirOfPath(p)).flat();\n dirs.push('.'); // add the root dir\n return uniq(dirs);\n}\n\nfunction getAllParentsDirOfPath(p: PathLinuxRelative): PathLinuxRelative[] {\n const all: string[] = [];\n let current = p;\n while (current !== '.') {\n all.push(current);\n current = path.dirname(current);\n }\n return all;\n}\n\n/**\n * easier to understand by an example:\n * input:\n * [\n * { id: react, paths: [ui/button, ui/form] },\n * { id: aspect, paths: [p/a1, p/a2] },\n * { id: node, paths: [p/n1] },\n * ]\n *\n * output:\n * [\n * { id: react, paths: [ui] },\n * { id: aspect, paths: [p] },\n * { id: node, paths: [p/n1] },\n * ]\n *\n * the goal is to minimize the amount of files to write per env if possible.\n * when multiple components of the same env share a root-dir, then, it's enough to write a file in that shared dir.\n * if in a shared-dir, some components using env1 and some env2, it finds the env that has the max number of\n * components, this env will be optimized. other components, will have the files written inside their dirs.\n */\nexport function dedupePaths(pathsPerEnvId: PathsPerEnvIds[]): PathsPerEnvIds[] {\n const rootDir = '.';\n const individualPathPerConcatenatedEnvIds: { [path: string]: string } = pathsPerEnvId.reduce((acc, current) => {\n current.paths.forEach((p) => {\n acc[p] = current.ids.join(',');\n });\n return acc;\n }, {});\n const allPaths = Object.keys(individualPathPerConcatenatedEnvIds);\n const allPossibleDirs = getAllPossibleDirsFromPaths(allPaths);\n\n const allPathsPerEnvId: { [path: string]: string | null } = {}; // null when parent-dir has same amount of comps per env.\n\n const calculateBestEnvForDir = (dir: string) => {\n if (individualPathPerConcatenatedEnvIds[dir]) {\n // it's the component dir, so it's the best env\n allPathsPerEnvId[dir] = individualPathPerConcatenatedEnvIds[dir];\n return;\n }\n const allPathsShareSameDir = dir === rootDir ? allPaths : allPaths.filter((p) => p.startsWith(`${dir}/`));\n const countPerEnv: { [env: string]: number } = {};\n allPathsShareSameDir.forEach((p) => {\n const envIdStr = individualPathPerConcatenatedEnvIds[p];\n if (countPerEnv[envIdStr]) countPerEnv[envIdStr] += 1;\n else countPerEnv[envIdStr] = 1;\n });\n const max = Math.max(...Object.values(countPerEnv));\n const envWithMax = Object.keys(countPerEnv).filter((env) => countPerEnv[env] === max);\n if (!envWithMax.length) throw new Error(`must be at least one env related to path \"${dir}\"`);\n if (envWithMax.length > 1) allPathsPerEnvId[dir] = null;\n else allPathsPerEnvId[dir] = envWithMax[0];\n };\n\n allPossibleDirs.forEach((dirPath) => {\n calculateBestEnvForDir(dirPath);\n });\n\n // this is the actual deduping. if found a shorter path with the same env, then no need for this path.\n // in other words, return only the paths that their parent is null or has a different env.\n const dedupedPathsPerEnvIds = Object.keys(allPathsPerEnvId).reduce((acc, current) => {\n if (allPathsPerEnvId[current] && allPathsPerEnvId[path.dirname(current)] !== allPathsPerEnvId[current]) {\n acc[current] = allPathsPerEnvId[current];\n }\n\n return acc;\n }, {});\n // rootDir parent is always rootDir, so leave it as is.\n if (allPathsPerEnvId[rootDir]) dedupedPathsPerEnvIds[rootDir] = allPathsPerEnvId[rootDir];\n\n const envIdsPerDedupedPaths = invertBy(dedupedPathsPerEnvIds);\n\n return Object.keys(envIdsPerDedupedPaths).map((envIdStr) => ({\n ids: envIdStr.split(','),\n paths: envIdsPerDedupedPaths[envIdStr],\n }));\n}\n"],"mappings":"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"}
@@ -4,21 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.TypescriptAspect = void 0;
7
-
8
7
  function _harmony() {
9
8
  const data = require("@teambit/harmony");
10
-
11
9
  _harmony = function () {
12
10
  return data;
13
11
  };
14
-
15
12
  return data;
16
13
  }
17
-
18
14
  const TypescriptAspect = _harmony().Aspect.create({
19
15
  id: 'teambit.typescript/typescript'
20
16
  });
21
-
22
17
  exports.TypescriptAspect = TypescriptAspect;
23
18
 
24
19
  //# sourceMappingURL=typescript.aspect.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["TypescriptAspect","Aspect","create","id"],"sources":["typescript.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const TypescriptAspect = Aspect.create({\n id: 'teambit.typescript/typescript',\n});\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,gBAAgB,GAAGC,iBAAA,CAAOC,MAAP,CAAc;EAC5CC,EAAE,EAAE;AADwC,CAAd,CAAzB"}
1
+ {"version":3,"names":["TypescriptAspect","Aspect","create","id"],"sources":["typescript.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const TypescriptAspect = Aspect.create({\n id: 'teambit.typescript/typescript',\n});\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,gBAAgB,GAAGC,iBAAM,CAACC,MAAM,CAAC;EAC5CC,EAAE,EAAE;AACN,CAAC,CAAC;AAAC"}