@teambit/generator 0.0.702 → 0.0.705

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.
@@ -7,6 +7,7 @@ import { Component } from '@teambit/component';
7
7
  import { SlotRegistry } from '@teambit/harmony';
8
8
  import { AspectLoaderMain } from '@teambit/aspect-loader';
9
9
  import { NewComponentHelperMain } from '@teambit/new-component-helper';
10
+ import { ImporterMain } from '@teambit/importer';
10
11
  import { ComponentTemplate } from './component-template';
11
12
  import { CreateOptions } from './create.cmd';
12
13
  import { GenerateResult } from './component-generator';
@@ -39,8 +40,9 @@ export declare class GeneratorMain {
39
40
  private envs;
40
41
  private aspectLoader;
41
42
  private newComponentHelper;
43
+ private importer;
42
44
  private aspectLoaded;
43
- constructor(componentTemplateSlot: ComponentTemplateSlot, workspaceTemplateSlot: WorkspaceTemplateSlot, config: GeneratorConfig, workspace: Workspace, envs: EnvsMain, aspectLoader: AspectLoaderMain, newComponentHelper: NewComponentHelperMain);
45
+ constructor(componentTemplateSlot: ComponentTemplateSlot, workspaceTemplateSlot: WorkspaceTemplateSlot, config: GeneratorConfig, workspace: Workspace, envs: EnvsMain, aspectLoader: AspectLoaderMain, newComponentHelper: NewComponentHelperMain, importer: ImporterMain);
44
46
  /**
45
47
  * register a new component template.
46
48
  */
@@ -92,13 +94,14 @@ export declare class GeneratorMain {
92
94
  static slots: (((registerFn: () => string) => SlotRegistry<ComponentTemplate[]>) | ((registerFn: () => string) => SlotRegistry<WorkspaceTemplate[]>))[];
93
95
  static dependencies: import("@teambit/bit").Aspect[];
94
96
  static runtime: import("@teambit/bit").RuntimeDefinition;
95
- static provider([workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community]: [
97
+ static provider([workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, importer]: [
96
98
  Workspace,
97
99
  CLIMain,
98
100
  GraphqlMain,
99
101
  EnvsMain,
100
102
  AspectLoaderMain,
101
103
  NewComponentHelperMain,
102
- CommunityMain
104
+ CommunityMain,
105
+ ImporterMain
103
106
  ], config: GeneratorConfig, [componentTemplateSlot, workspaceTemplateSlot]: [ComponentTemplateSlot, WorkspaceTemplateSlot]): Promise<GeneratorMain>;
104
107
  }
@@ -137,6 +137,16 @@ function _newComponentHelper() {
137
137
  return data;
138
138
  }
139
139
 
140
+ function _importer() {
141
+ const data = _interopRequireDefault(require("@teambit/importer"));
142
+
143
+ _importer = function () {
144
+ return data;
145
+ };
146
+
147
+ return data;
148
+ }
149
+
140
150
  function _generator() {
141
151
  const data = require("./generator.aspect");
142
152
 
@@ -228,7 +238,7 @@ function _workspaceGenerator2() {
228
238
  }
229
239
 
230
240
  class GeneratorMain {
231
- constructor(componentTemplateSlot, workspaceTemplateSlot, config, workspace, envs, aspectLoader, newComponentHelper) {
241
+ constructor(componentTemplateSlot, workspaceTemplateSlot, config, workspace, envs, aspectLoader, newComponentHelper, importer) {
232
242
  this.componentTemplateSlot = componentTemplateSlot;
233
243
  this.workspaceTemplateSlot = workspaceTemplateSlot;
234
244
  this.config = config;
@@ -236,6 +246,7 @@ class GeneratorMain {
236
246
  this.envs = envs;
237
247
  this.aspectLoader = aspectLoader;
238
248
  this.newComponentHelper = newComponentHelper;
249
+ this.importer = importer;
239
250
  (0, _defineProperty2().default)(this, "aspectLoaded", false);
240
251
  }
241
252
  /**
@@ -464,8 +475,8 @@ class GeneratorMain {
464
475
  this.aspectLoaded = true;
465
476
  }
466
477
 
467
- static async provider([workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community], config, [componentTemplateSlot, workspaceTemplateSlot]) {
468
- const generator = new GeneratorMain(componentTemplateSlot, workspaceTemplateSlot, config, workspace, envs, aspectLoader, newComponentHelper);
478
+ static async provider([workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, importer], config, [componentTemplateSlot, workspaceTemplateSlot]) {
479
+ const generator = new GeneratorMain(componentTemplateSlot, workspaceTemplateSlot, config, workspace, envs, aspectLoader, newComponentHelper, importer);
469
480
  const commands = [new (_create().CreateCmd)(generator, community.getDocsDomain()), new (_templates().TemplatesCmd)(generator), new (_new().NewCmd)(generator)];
470
481
  cli.register(...commands);
471
482
  graphql.register((0, _generator2().generatorSchema)(generator));
@@ -477,7 +488,7 @@ class GeneratorMain {
477
488
 
478
489
  exports.GeneratorMain = GeneratorMain;
479
490
  (0, _defineProperty2().default)(GeneratorMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType()]);
480
- (0, _defineProperty2().default)(GeneratorMain, "dependencies", [_workspace().default, _cli().CLIAspect, _graphql().GraphqlAspect, _envs().EnvsAspect, _aspectLoader().default, _newComponentHelper().default, _community().CommunityAspect]);
491
+ (0, _defineProperty2().default)(GeneratorMain, "dependencies", [_workspace().default, _cli().CLIAspect, _graphql().GraphqlAspect, _envs().EnvsAspect, _aspectLoader().default, _newComponentHelper().default, _community().CommunityAspect, _importer().default]);
481
492
  (0, _defineProperty2().default)(GeneratorMain, "runtime", _cli().MainRuntime);
482
493
 
483
494
  _generator().GeneratorAspect.addRuntime(GeneratorMain);
@@ -1 +1 @@
1
- {"version":3,"sources":["generator.main.runtime.ts"],"names":["GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","config","workspace","envs","aspectLoader","newComponentHelper","registerComponentTemplate","templates","register","registerWorkspaceTemplate","listTemplates","getTemplateDescriptor","id","template","shouldBeHidden","hidden","hideCoreTemplates","aspectId","name","description","isRunningInsideWorkspace","getAllComponentTemplatesFlattened","map","getAllWorkspaceTemplatesFlattened","listComponentTemplates","Boolean","getComponentTemplateByAspect","get","getComponentTemplate","found","find","findTemplateInGlobalScope","aspects","loadAspectsFromGlobalScope","fullAspectId","toString","searchRegisteredWorkspaceTemplate","findTemplateInOtherWorkspace","workspacePath","BitError","harmony","WorkspaceAspect","err","Error","aspectComponentId","resolveComponentId","loadAspects","aspectFullId","generator","GeneratorAspect","getWorkspaceTemplate","registeredTemplate","workspaceTemplate","aspect","fromGlobal","generateComponentTemplate","componentNames","templateName","options","ConsumerNotFound","namespace","templateWithId","componentIds","componentName","getNewComponentId","scope","componentGenerator","ComponentGenerator","generate","generateWorkspaceTemplate","workspaceName","loadFrom","aspectComponent","workspaceGenerator","WorkspaceGenerator","templatesByAspects","toArray","flatMap","componentTemplates","workspaceTemplates","aspectLoaded","provider","cli","graphql","community","commands","CreateCmd","getDocsDomain","TemplatesCmd","NewCmd","componentGeneratorTemplate","workspaceGeneratorTemplate","Slot","withType","CLIAspect","GraphqlAspect","EnvsAspect","AspectLoaderAspect","NewComponentHelperAspect","CommunityAspect","MainRuntime","addRuntime"],"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;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;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;;AAEA;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;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAoBO,MAAMA,aAAN,CAAoB;AAEzBC,EAAAA,WAAW,CACDC,qBADC,EAEDC,qBAFC,EAGDC,MAHC,EAIDC,SAJC,EAKDC,IALC,EAMDC,YANC,EAODC,kBAPC,EAQT;AAAA,SAPQN,qBAOR,GAPQA,qBAOR;AAAA,SANQC,qBAMR,GANQA,qBAMR;AAAA,SALQC,MAKR,GALQA,MAKR;AAAA,SAJQC,SAIR,GAJQA,SAIR;AAAA,SAHQC,IAGR,GAHQA,IAGR;AAAA,SAFQC,YAER,GAFQA,YAER;AAAA,SADQC,kBACR,GADQA,kBACR;AAAA,0DATqB,KASrB;AAAE;AAEJ;AACF;AACA;;;AACEC,EAAAA,yBAAyB,CAACC,SAAD,EAAiC;AACxD,SAAKR,qBAAL,CAA2BS,QAA3B,CAAoCD,SAApC;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;;;AACEE,EAAAA,yBAAyB,CAACF,SAAD,EAAiC;AACxD,SAAKP,qBAAL,CAA2BQ,QAA3B,CAAoCD,SAApC;AACA,WAAO,IAAP;AACD;AAED;AACF;AACA;AACA;;;AACqB,QAAbG,aAAa,GAAkC;AACnD,UAAMC,qBAAqB,GAAG,CAAC;AAC7BC,MAAAA,EAD6B;AAE7BC,MAAAA;AAF6B,KAAD,KAMxB;AACJ,YAAMC,cAAc,GAAG,MAAM;AAC3B,YAAID,QAAQ,CAACE,MAAb,EAAqB,OAAO,IAAP;AACrB,YAAI,KAAKd,MAAL,CAAYe,iBAAZ,IAAiC,yBAAaJ,EAAb,CAArC,EAAuD,OAAO,IAAP;AACvD,eAAO,KAAP;AACD,OAJD;;AAKA,aAAO;AACLK,QAAAA,QAAQ,EAAEL,EADL;AAELM,QAAAA,IAAI,EAAEL,QAAQ,CAACK,IAFV;AAGLC,QAAAA,WAAW,EAAEN,QAAQ,CAACM,WAHjB;AAILJ,QAAAA,MAAM,EAAED,cAAc;AAJjB,OAAP;AAMD,KAlBD;;AAmBA,WAAO,KAAKM,wBAAL,KACH,KAAKC,iCAAL,GAAyCC,GAAzC,CAA6CX,qBAA7C,CADG,GAEH,KAAKY,iCAAL,GAAyCD,GAAzC,CAA6CX,qBAA7C,CAFJ;AAGD;AAED;AACF;AACA;;;AAC8B,QAAtBa,sBAAsB,GAAkC;AAC5D,WAAO,KAAKd,aAAL,EAAP;AACD;;AAEDU,EAAAA,wBAAwB,GAAY;AAClC,WAAOK,OAAO,CAAC,KAAKvB,SAAN,CAAd;AACD;AAED;AACF;AACA;;;AACEwB,EAAAA,4BAA4B,CAACT,QAAD,EAAwC;AAClE,WAAO,KAAKlB,qBAAL,CAA2B4B,GAA3B,CAA+BV,QAA/B,KAA4C,EAAnD;AACD;AAED;AACF;AACA;;;AACEW,EAAAA,oBAAoB,CAACV,IAAD,EAAeD,QAAf,EAA2F;AAC7G,UAAMV,SAAS,GAAG,KAAKc,iCAAL,EAAlB;AACA,UAAMQ,KAAK,GAAGtB,SAAS,CAACuB,IAAV,CAAe,CAAC;AAAElB,MAAAA,EAAF;AAAMC,MAAAA;AAAN,KAAD,KAAsB;AACjD,UAAII,QAAQ,IAAIL,EAAE,KAAKK,QAAvB,EAAiC,OAAO,KAAP;AACjC,aAAOJ,QAAQ,CAACK,IAAT,KAAkBA,IAAzB;AACD,KAHa,CAAd;AAIA,WAAOW,KAAP;AACD;AAED;AACF;AACA;AACA;;;AACiC,QAAzBE,yBAAyB,CAACd,QAAD,EAAmBC,IAAnB,EAA0E;AACvG,UAAMc,OAAO,GAAG,MAAM,KAAK5B,YAAL,CAAkB6B,0BAAlB,CAA6C,CAAChB,QAAD,CAA7C,CAAtB;AACA,UAAMiB,YAAY,GAAGF,OAAO,CAAC,CAAD,CAAP,CAAWpB,EAAX,CAAcuB,QAAd,EAArB;AACA,WAAO,KAAKC,iCAAL,CAAuClB,IAAvC,EAA6CgB,YAA7C,CAAP;AACD;;AAEiC,QAA5BG,4BAA4B,CAACC,aAAD,EAAwBpB,IAAxB,EAAsCD,QAAtC,EAAyD;AACzF,QAAI,CAACA,QAAL,EACE,MAAM,KAAIsB,oBAAJ,EACH,iGADG,CAAN;AAGF,UAAMC,OAAO,GAAG,MAAM,oBAAQF,aAAR,CAAtB;AACA,QAAIpC,SAAJ;;AACA,QAAI;AACFA,MAAAA,SAAS,GAAGsC,OAAO,CAACb,GAAR,CAAuBc,qBAAgB7B,EAAvC,CAAZ;AACD,KAFD,CAEE,OAAO8B,GAAP,EAAiB;AACjB,YAAM,IAAIC,KAAJ,CAAW,WAAUL,aAAc,+DAAnC,CAAN;AACD;;AACD,UAAMM,iBAAiB,GAAG,MAAM1C,SAAS,CAAC2C,kBAAV,CAA6B5B,QAA7B,CAAhC;AACA,UAAMf,SAAS,CAAC4C,WAAV,CAAsB,CAAC7B,QAAD,CAAtB,EAAkC,IAAlC,CAAN;AACA,UAAM8B,YAAY,GAAGH,iBAAiB,CAACT,QAAlB,EAArB;AACA,UAAMa,SAAS,GAAGR,OAAO,CAACb,GAAR,CAA2BsB,6BAAgBrC,EAA3C,CAAlB;AACA,WAAOoC,SAAS,CAACZ,iCAAV,CAA4ClB,IAA5C,EAAkD6B,YAAlD,CAAP;AACD;AAED;AACF;AACA;;;AAC4B,QAApBG,oBAAoB,CACxBhC,IADwB,EAExBD,QAFwB,EAG+C;AACvE,UAAMkC,kBAAkB,GAAG,MAAM,KAAKf,iCAAL,CAAuClB,IAAvC,EAA6CD,QAA7C,CAAjC;;AACA,QAAIkC,kBAAJ,EAAwB;AACtB,aAAO;AAAEC,QAAAA,iBAAiB,EAAED;AAArB,OAAP;AACD;;AACD,QAAI,CAAClC,QAAL,EAAe;AACb,YAAM,KAAIsB,oBAAJ,EAAc,aAAYrB,IAAK,yEAA/B,CAAN;AACD;;AACD,UAAMc,OAAO,GAAG,MAAM,KAAK5B,YAAL,CAAkB6B,0BAAlB,CAA6C,CAAChB,QAAD,CAA7C,CAAtB;AACA,UAAMoC,MAAM,GAAGrB,OAAO,CAAC,CAAD,CAAtB;AACA,UAAME,YAAY,GAAGmB,MAAM,CAACzC,EAAP,CAAUuB,QAAV,EAArB;AACA,UAAMmB,UAAU,GAAG,MAAM,KAAKlB,iCAAL,CAAuClB,IAAvC,EAA6CgB,YAA7C,CAAzB;;AACA,QAAIoB,UAAJ,EAAgB;AACd,aAAO;AAAEF,QAAAA,iBAAiB,EAAEE,UAArB;AAAiCD,QAAAA;AAAjC,OAAP;AACD;;AACD,UAAM,KAAId,oBAAJ,EAAc,aAAYrB,IAAK,iBAA/B,CAAN;AACD;;AAEsC,QAAjCkB,iCAAiC,CAAClB,IAAD,EAAgBD,QAAhB,EAA2E;AAChH,UAAMV,SAAS,GAAG,KAAKgB,iCAAL,EAAlB;AACA,UAAMM,KAAK,GAAGtB,SAAS,CAACuB,IAAV,CAAe,CAAC;AAAElB,MAAAA,EAAF;AAAMC,MAAAA;AAAN,KAAD,KAAsB;AACjD,UAAII,QAAQ,IAAIC,IAAhB,EAAsB,OAAOD,QAAQ,KAAKL,EAAb,IAAmBM,IAAI,KAAKL,QAAQ,CAACK,IAA5C;AACtB,UAAID,QAAJ,EAAc,OAAOA,QAAQ,KAAKL,EAApB;AACd,UAAIM,IAAJ,EAAU,OAAOA,IAAI,KAAKL,QAAQ,CAACK,IAAzB;AACV,YAAM,IAAIyB,KAAJ,CAAW,uEAAX,CAAN;AACD,KALa,CAAd;AAMA,WAAOd,KAAP,aAAOA,KAAP,uBAAOA,KAAK,CAAEhB,QAAd;AACD;;AAE8B,QAAzB0C,yBAAyB,CAC7BC,cAD6B,EAE7BC,YAF6B,EAG7BC,OAH6B,EAIF;AAC3B,QAAI,CAAC,KAAKxD,SAAV,EAAqB,MAAM,KAAIyD,8BAAJ,GAAN;AACrB,UAAM,KAAKb,WAAL,EAAN;AACA,UAAM;AAAEc,MAAAA,SAAF;AAAaP,MAAAA,MAAM,EAAEpC;AAArB,QAAkCyC,OAAxC;AACA,UAAMG,cAAc,GAAG,KAAKjC,oBAAL,CAA0B6B,YAA1B,EAAwCxC,QAAxC,CAAvB;AACA,QAAI,CAAC4C,cAAL,EAAqB,MAAM,KAAItB,oBAAJ,EAAc,aAAYkB,YAAa,iBAAvC,CAAN;AAErB,UAAMK,YAAY,GAAGN,cAAc,CAAClC,GAAf,CAAoByC,aAAD,IACtC,KAAK1D,kBAAL,CAAwB2D,iBAAxB,CAA0CD,aAA1C,EAAyDH,SAAzD,EAAoEF,OAAO,CAACO,KAA5E,CADmB,CAArB;AAIA,UAAMC,kBAAkB,GAAG,KAAIC,wCAAJ,EACzB,KAAKjE,SADoB,EAEzB4D,YAFyB,EAGzBJ,OAHyB,EAIzBG,cAAc,CAAChD,QAJU,EAKzB,KAAKV,IALoB,EAMzB,KAAKE,kBANoB,EAOzBwD,cAAc,CAACjD,EAPU,CAA3B;AASA,WAAOsD,kBAAkB,CAACE,QAAnB,EAAP;AACD;;AAE8B,QAAzBC,yBAAyB,CAACC,aAAD,EAAwBb,YAAxB,EAA8CC,OAA9C,EAAmE;AAChG,QAAI,KAAKxD,SAAT,EAAoB;AAClB,YAAM,KAAIqC,oBAAJ,EAAa,2EAAb,CAAN;AACD;;AACD,UAAM;AAAEc,MAAAA,MAAM,EAAEpC,QAAV;AAAoBsD,MAAAA;AAApB,QAAiCb,OAAvC;AACA,QAAI7C,QAAJ;AACA,QAAI2D,eAAJ;;AACA,QAAID,QAAJ,EAAc;AACZ1D,MAAAA,QAAQ,GAAG,MAAM,KAAKwB,4BAAL,CAAkCkC,QAAlC,EAA4Cd,YAA5C,EAA0DxC,QAA1D,CAAjB;AACD,KAFD,MAEO;AACL,YAAM;AAAEmC,QAAAA,iBAAF;AAAqBC,QAAAA;AAArB,UAAgC,MAAM,KAAKH,oBAAL,CAA0BO,YAA1B,EAAwCxC,QAAxC,CAA5C;AACAJ,MAAAA,QAAQ,GAAGuC,iBAAX;AACAoB,MAAAA,eAAe,GAAGnB,MAAlB;AACD;;AACD,QAAI,CAACxC,QAAL,EAAe,MAAM,KAAI0B,oBAAJ,EAAc,aAAYkB,YAAa,iBAAvC,CAAN;AACf,UAAMgB,kBAAkB,GAAG,KAAIC,wCAAJ,EAAuBJ,aAAvB,EAAsCZ,OAAtC,EAA+C7C,QAA/C,EAAyD2D,eAAzD,CAA3B;AACA,UAAMlC,aAAa,GAAG,MAAMmC,kBAAkB,CAACL,QAAnB,EAA5B;AAEA,WAAO9B,aAAP;AACD;;AAEOjB,EAAAA,iCAAiC,GAAuD;AAC9F,UAAMsD,kBAAkB,GAAG,KAAK5E,qBAAL,CAA2B6E,OAA3B,EAA3B;AACA,WAAOD,kBAAkB,CAACE,OAAnB,CAA2B,CAAC,CAACjE,EAAD,EAAKkE,kBAAL,CAAD,KAA8B;AAC9D,aAAOA,kBAAkB,CAACxD,GAAnB,CAAwBT,QAAD,KAAe;AAC3CD,QAAAA,EAD2C;AAE3CC,QAAAA;AAF2C,OAAf,CAAvB,CAAP;AAID,KALM,CAAP;AAMD;;AAEOU,EAAAA,iCAAiC,GAAuD;AAC9F,UAAMoD,kBAAkB,GAAG,KAAK3E,qBAAL,CAA2B4E,OAA3B,EAA3B;AACA,WAAOD,kBAAkB,CAACE,OAAnB,CAA2B,CAAC,CAACjE,EAAD,EAAKmE,kBAAL,CAAD,KAA8B;AAC9D,aAAOA,kBAAkB,CAACzD,GAAnB,CAAwBT,QAAD,KAAe;AAC3CD,QAAAA,EAD2C;AAE3CC,QAAAA;AAF2C,OAAf,CAAvB,CAAP;AAID,KALM,CAAP;AAMD;;AAEwB,QAAXiC,WAAW,GAAG;AAC1B,QAAI,KAAKkC,YAAT,EAAuB;AACvB,UAAM,KAAK9E,SAAL,CAAe4C,WAAf,CAA2B,KAAK7C,MAAL,CAAY+B,OAAvC,CAAN;AACA,SAAKgD,YAAL,GAAoB,IAApB;AACD;;AAgBoB,eAARC,QAAQ,CACnB,CAAC/E,SAAD,EAAYgF,GAAZ,EAAiBC,OAAjB,EAA0BhF,IAA1B,EAAgCC,YAAhC,EAA8CC,kBAA9C,EAAkE+E,SAAlE,CADmB,EAUnBnF,MAVmB,EAWnB,CAACF,qBAAD,EAAwBC,qBAAxB,CAXmB,EAYnB;AACA,UAAMgD,SAAS,GAAG,IAAInD,aAAJ,CAChBE,qBADgB,EAEhBC,qBAFgB,EAGhBC,MAHgB,EAIhBC,SAJgB,EAKhBC,IALgB,EAMhBC,YANgB,EAOhBC,kBAPgB,CAAlB;AASA,UAAMgF,QAAQ,GAAG,CACf,KAAIC,mBAAJ,EAActC,SAAd,EAAyBoC,SAAS,CAACG,aAAV,EAAzB,CADe,EAEf,KAAIC,yBAAJ,EAAiBxC,SAAjB,CAFe,EAGf,KAAIyC,aAAJ,EAAWzC,SAAX,CAHe,CAAjB;AAKAkC,IAAAA,GAAG,CAAC1E,QAAJ,CAAa,GAAG6E,QAAhB;AACAF,IAAAA,OAAO,CAAC3E,QAAR,CAAiB,mCAAgBwC,SAAhB,CAAjB;AACAA,IAAAA,SAAS,CAAC1C,yBAAV,CAAoC,CAACoF,iDAAD,EAA6BC,iDAA7B,CAApC;AACA,WAAO3C,SAAP;AACD;;AA9QwB;;;gCAAdnD,a,WAiOI,CAAC+F,gBAAKC,QAAL,EAAD,EAAuCD,gBAAKC,QAAL,EAAvC,C;gCAjOJhG,a,kBAmOW,CACpB4C,oBADoB,EAEpBqD,gBAFoB,EAGpBC,wBAHoB,EAIpBC,kBAJoB,EAKpBC,uBALoB,EAMpBC,6BANoB,EAOpBC,4BAPoB,C;gCAnOXtG,a,aA6OMuG,kB;;AAoCnBnD,6BAAgBoD,UAAhB,CAA2BxG,aAA3B","sourcesContent":["import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\n\nimport { Component } from '@teambit/component';\nimport { isCoreAspect, loadBit } from '@teambit/bit';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { BitError } from '@teambit/bit-error';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ComponentTemplate } from './component-template';\nimport { GeneratorAspect } from './generator.aspect';\nimport { CreateCmd, CreateOptions } from './create.cmd';\nimport { TemplatesCmd } from './templates.cmd';\nimport { generatorSchema } from './generator.graphql';\nimport { ComponentGenerator, GenerateResult } from './component-generator';\nimport { WorkspaceGenerator } from './workspace-generator';\nimport { WorkspaceTemplate } from './workspace-template';\nimport { NewCmd, NewOptions } from './new.cmd';\nimport { componentGeneratorTemplate } from './templates/component-generator';\nimport { workspaceGeneratorTemplate } from './templates/workspace-generator';\n\nexport type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;\nexport type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;\n\nexport type TemplateDescriptor = { aspectId: string; name: string; description?: string; hidden?: boolean };\n\nexport type GeneratorConfig = {\n /**\n * array of aspects to include in the list of templates.\n */\n aspects: string[];\n\n /**\n * by default core templates are shown.\n * use this to hide them unless `--show-all` flag of `bit templates` was used\n */\n hideCoreTemplates: boolean;\n};\n\nexport class GeneratorMain {\n private aspectLoaded = false;\n constructor(\n private componentTemplateSlot: ComponentTemplateSlot,\n private workspaceTemplateSlot: WorkspaceTemplateSlot,\n private config: GeneratorConfig,\n private workspace: Workspace,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private newComponentHelper: NewComponentHelperMain\n ) {}\n\n /**\n * register a new component template.\n */\n registerComponentTemplate(templates: ComponentTemplate[]) {\n this.componentTemplateSlot.register(templates);\n return this;\n }\n\n /**\n * register a new component template.\n */\n registerWorkspaceTemplate(templates: WorkspaceTemplate[]) {\n this.workspaceTemplateSlot.register(templates);\n return this;\n }\n\n /**\n * list all component templates registered in the workspace or workspace templates in case the\n * workspace is not available\n */\n async listTemplates(): Promise<TemplateDescriptor[]> {\n const getTemplateDescriptor = ({\n id,\n template,\n }: {\n id: string;\n template: WorkspaceTemplate | ComponentTemplate;\n }) => {\n const shouldBeHidden = () => {\n if (template.hidden) return true;\n if (this.config.hideCoreTemplates && isCoreAspect(id)) return true;\n return false;\n };\n return {\n aspectId: id,\n name: template.name,\n description: template.description,\n hidden: shouldBeHidden(),\n };\n };\n return this.isRunningInsideWorkspace()\n ? this.getAllComponentTemplatesFlattened().map(getTemplateDescriptor)\n : this.getAllWorkspaceTemplatesFlattened().map(getTemplateDescriptor);\n }\n\n /**\n * @deprecated use this.listTemplates()\n */\n async listComponentTemplates(): Promise<TemplateDescriptor[]> {\n return this.listTemplates();\n }\n\n isRunningInsideWorkspace(): boolean {\n return Boolean(this.workspace);\n }\n\n /**\n * get all component templates registered by a specific aspect ID.\n */\n getComponentTemplateByAspect(aspectId: string): ComponentTemplate[] {\n return this.componentTemplateSlot.get(aspectId) || [];\n }\n\n /**\n * returns a specific component template.\n */\n getComponentTemplate(name: string, aspectId?: string): { id: string; template: ComponentTemplate } | undefined {\n const templates = this.getAllComponentTemplatesFlattened();\n const found = templates.find(({ id, template }) => {\n if (aspectId && id !== aspectId) return false;\n return template.name === name;\n });\n return found;\n }\n\n /**\n * in the case the aspect-id is given and this aspect doesn't exist locally, import it to the\n * global scope and load it from the capsule\n */\n async findTemplateInGlobalScope(aspectId: string, name?: string): Promise<WorkspaceTemplate | undefined> {\n const aspects = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const fullAspectId = aspects[0].id.toString();\n return this.searchRegisteredWorkspaceTemplate(name, fullAspectId);\n }\n\n async findTemplateInOtherWorkspace(workspacePath: string, name: string, aspectId?: string) {\n if (!aspectId)\n throw new BitError(\n `to load a template from a different workspace, please provide the aspect-id using --aspect flag`\n );\n const harmony = await loadBit(workspacePath);\n let workspace: Workspace;\n try {\n workspace = harmony.get<Workspace>(WorkspaceAspect.id);\n } catch (err: any) {\n throw new Error(`fatal: \"${workspacePath}\" is not a valid Bit workspace, make sure the path is correct`);\n }\n const aspectComponentId = await workspace.resolveComponentId(aspectId);\n await workspace.loadAspects([aspectId], true);\n const aspectFullId = aspectComponentId.toString();\n const generator = harmony.get<GeneratorMain>(GeneratorAspect.id);\n return generator.searchRegisteredWorkspaceTemplate(name, aspectFullId);\n }\n\n /**\n * returns a specific workspace template.\n */\n async getWorkspaceTemplate(\n name: string,\n aspectId?: string\n ): Promise<{ workspaceTemplate: WorkspaceTemplate; aspect?: Component }> {\n const registeredTemplate = await this.searchRegisteredWorkspaceTemplate(name, aspectId);\n if (registeredTemplate) {\n return { workspaceTemplate: registeredTemplate };\n }\n if (!aspectId) {\n throw new BitError(`template \"${name}\" was not found, if this is a custom-template, please use --aspect flag`);\n }\n const aspects = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const aspect = aspects[0];\n const fullAspectId = aspect.id.toString();\n const fromGlobal = await this.searchRegisteredWorkspaceTemplate(name, fullAspectId);\n if (fromGlobal) {\n return { workspaceTemplate: fromGlobal, aspect };\n }\n throw new BitError(`template \"${name}\" was not found`);\n }\n\n async searchRegisteredWorkspaceTemplate(name?: string, aspectId?: string): Promise<WorkspaceTemplate | undefined> {\n const templates = this.getAllWorkspaceTemplatesFlattened();\n const found = templates.find(({ id, template }) => {\n if (aspectId && name) return aspectId === id && name === template.name;\n if (aspectId) return aspectId === id;\n if (name) return name === template.name;\n throw new Error(`searchRegisteredWorkspaceTemplate expects to get \"name\" or \"aspectId\"`);\n });\n return found?.template;\n }\n\n async generateComponentTemplate(\n componentNames: string[],\n templateName: string,\n options: CreateOptions\n ): Promise<GenerateResult[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n await this.loadAspects();\n const { namespace, aspect: aspectId } = options;\n const templateWithId = this.getComponentTemplate(templateName, aspectId);\n if (!templateWithId) throw new BitError(`template \"${templateName}\" was not found`);\n\n const componentIds = componentNames.map((componentName) =>\n this.newComponentHelper.getNewComponentId(componentName, namespace, options.scope)\n );\n\n const componentGenerator = new ComponentGenerator(\n this.workspace,\n componentIds,\n options,\n templateWithId.template,\n this.envs,\n this.newComponentHelper,\n templateWithId.id\n );\n return componentGenerator.generate();\n }\n\n async generateWorkspaceTemplate(workspaceName: string, templateName: string, options: NewOptions) {\n if (this.workspace) {\n throw new BitError('Error: unable to generate a new workspace inside of an existing workspace');\n }\n const { aspect: aspectId, loadFrom } = options;\n let template: WorkspaceTemplate | undefined;\n let aspectComponent: Component | undefined;\n if (loadFrom) {\n template = await this.findTemplateInOtherWorkspace(loadFrom, templateName, aspectId);\n } else {\n const { workspaceTemplate, aspect } = await this.getWorkspaceTemplate(templateName, aspectId);\n template = workspaceTemplate;\n aspectComponent = aspect;\n }\n if (!template) throw new BitError(`template \"${templateName}\" was not found`);\n const workspaceGenerator = new WorkspaceGenerator(workspaceName, options, template, aspectComponent);\n const workspacePath = await workspaceGenerator.generate();\n\n return workspacePath;\n }\n\n private getAllComponentTemplatesFlattened(): Array<{ id: string; template: ComponentTemplate }> {\n const templatesByAspects = this.componentTemplateSlot.toArray();\n return templatesByAspects.flatMap(([id, componentTemplates]) => {\n return componentTemplates.map((template) => ({\n id,\n template,\n }));\n });\n }\n\n private getAllWorkspaceTemplatesFlattened(): Array<{ id: string; template: WorkspaceTemplate }> {\n const templatesByAspects = this.workspaceTemplateSlot.toArray();\n return templatesByAspects.flatMap(([id, workspaceTemplates]) => {\n return workspaceTemplates.map((template) => ({\n id,\n template,\n }));\n });\n }\n\n private async loadAspects() {\n if (this.aspectLoaded) return;\n await this.workspace.loadAspects(this.config.aspects);\n this.aspectLoaded = true;\n }\n\n static slots = [Slot.withType<ComponentTemplate[]>(), Slot.withType<WorkspaceTemplate[]>()];\n\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n GraphqlAspect,\n EnvsAspect,\n AspectLoaderAspect,\n NewComponentHelperAspect,\n CommunityAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community]: [\n Workspace,\n CLIMain,\n GraphqlMain,\n EnvsMain,\n AspectLoaderMain,\n NewComponentHelperMain,\n CommunityMain\n ],\n config: GeneratorConfig,\n [componentTemplateSlot, workspaceTemplateSlot]: [ComponentTemplateSlot, WorkspaceTemplateSlot]\n ) {\n const generator = new GeneratorMain(\n componentTemplateSlot,\n workspaceTemplateSlot,\n config,\n workspace,\n envs,\n aspectLoader,\n newComponentHelper\n );\n const commands = [\n new CreateCmd(generator, community.getDocsDomain()),\n new TemplatesCmd(generator),\n new NewCmd(generator),\n ];\n cli.register(...commands);\n graphql.register(generatorSchema(generator));\n generator.registerComponentTemplate([componentGeneratorTemplate, workspaceGeneratorTemplate]);\n return generator;\n }\n}\n\nGeneratorAspect.addRuntime(GeneratorMain);\n"]}
1
+ {"version":3,"sources":["generator.main.runtime.ts"],"names":["GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","config","workspace","envs","aspectLoader","newComponentHelper","importer","registerComponentTemplate","templates","register","registerWorkspaceTemplate","listTemplates","getTemplateDescriptor","id","template","shouldBeHidden","hidden","hideCoreTemplates","aspectId","name","description","isRunningInsideWorkspace","getAllComponentTemplatesFlattened","map","getAllWorkspaceTemplatesFlattened","listComponentTemplates","Boolean","getComponentTemplateByAspect","get","getComponentTemplate","found","find","findTemplateInGlobalScope","aspects","loadAspectsFromGlobalScope","fullAspectId","toString","searchRegisteredWorkspaceTemplate","findTemplateInOtherWorkspace","workspacePath","BitError","harmony","WorkspaceAspect","err","Error","aspectComponentId","resolveComponentId","loadAspects","aspectFullId","generator","GeneratorAspect","getWorkspaceTemplate","registeredTemplate","workspaceTemplate","aspect","fromGlobal","generateComponentTemplate","componentNames","templateName","options","ConsumerNotFound","namespace","templateWithId","componentIds","componentName","getNewComponentId","scope","componentGenerator","ComponentGenerator","generate","generateWorkspaceTemplate","workspaceName","loadFrom","aspectComponent","workspaceGenerator","WorkspaceGenerator","templatesByAspects","toArray","flatMap","componentTemplates","workspaceTemplates","aspectLoaded","provider","cli","graphql","community","commands","CreateCmd","getDocsDomain","TemplatesCmd","NewCmd","componentGeneratorTemplate","workspaceGeneratorTemplate","Slot","withType","CLIAspect","GraphqlAspect","EnvsAspect","AspectLoaderAspect","NewComponentHelperAspect","CommunityAspect","ImporterAspect","MainRuntime","addRuntime"],"mappings":"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","sourcesContent":["import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { ConsumerNotFound } from '@teambit/legacy/dist/consumer/exceptions';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\n\nimport { Component } from '@teambit/component';\nimport { isCoreAspect, loadBit } from '@teambit/bit';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { BitError } from '@teambit/bit-error';\nimport AspectLoaderAspect, { AspectLoaderMain } from '@teambit/aspect-loader';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport ImporterAspect, { ImporterMain } from '@teambit/importer';\nimport { ComponentTemplate } from './component-template';\nimport { GeneratorAspect } from './generator.aspect';\nimport { CreateCmd, CreateOptions } from './create.cmd';\nimport { TemplatesCmd } from './templates.cmd';\nimport { generatorSchema } from './generator.graphql';\nimport { ComponentGenerator, GenerateResult } from './component-generator';\nimport { WorkspaceGenerator } from './workspace-generator';\nimport { WorkspaceTemplate } from './workspace-template';\nimport { NewCmd, NewOptions } from './new.cmd';\nimport { componentGeneratorTemplate } from './templates/component-generator';\nimport { workspaceGeneratorTemplate } from './templates/workspace-generator';\n\nexport type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;\nexport type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;\n\nexport type TemplateDescriptor = { aspectId: string; name: string; description?: string; hidden?: boolean };\n\nexport type GeneratorConfig = {\n /**\n * array of aspects to include in the list of templates.\n */\n aspects: string[];\n\n /**\n * by default core templates are shown.\n * use this to hide them unless `--show-all` flag of `bit templates` was used\n */\n hideCoreTemplates: boolean;\n};\n\nexport class GeneratorMain {\n private aspectLoaded = false;\n constructor(\n private componentTemplateSlot: ComponentTemplateSlot,\n private workspaceTemplateSlot: WorkspaceTemplateSlot,\n private config: GeneratorConfig,\n private workspace: Workspace,\n private envs: EnvsMain,\n private aspectLoader: AspectLoaderMain,\n private newComponentHelper: NewComponentHelperMain,\n private importer: ImporterMain\n ) {}\n\n /**\n * register a new component template.\n */\n registerComponentTemplate(templates: ComponentTemplate[]) {\n this.componentTemplateSlot.register(templates);\n return this;\n }\n\n /**\n * register a new component template.\n */\n registerWorkspaceTemplate(templates: WorkspaceTemplate[]) {\n this.workspaceTemplateSlot.register(templates);\n return this;\n }\n\n /**\n * list all component templates registered in the workspace or workspace templates in case the\n * workspace is not available\n */\n async listTemplates(): Promise<TemplateDescriptor[]> {\n const getTemplateDescriptor = ({\n id,\n template,\n }: {\n id: string;\n template: WorkspaceTemplate | ComponentTemplate;\n }) => {\n const shouldBeHidden = () => {\n if (template.hidden) return true;\n if (this.config.hideCoreTemplates && isCoreAspect(id)) return true;\n return false;\n };\n return {\n aspectId: id,\n name: template.name,\n description: template.description,\n hidden: shouldBeHidden(),\n };\n };\n return this.isRunningInsideWorkspace()\n ? this.getAllComponentTemplatesFlattened().map(getTemplateDescriptor)\n : this.getAllWorkspaceTemplatesFlattened().map(getTemplateDescriptor);\n }\n\n /**\n * @deprecated use this.listTemplates()\n */\n async listComponentTemplates(): Promise<TemplateDescriptor[]> {\n return this.listTemplates();\n }\n\n isRunningInsideWorkspace(): boolean {\n return Boolean(this.workspace);\n }\n\n /**\n * get all component templates registered by a specific aspect ID.\n */\n getComponentTemplateByAspect(aspectId: string): ComponentTemplate[] {\n return this.componentTemplateSlot.get(aspectId) || [];\n }\n\n /**\n * returns a specific component template.\n */\n getComponentTemplate(name: string, aspectId?: string): { id: string; template: ComponentTemplate } | undefined {\n const templates = this.getAllComponentTemplatesFlattened();\n const found = templates.find(({ id, template }) => {\n if (aspectId && id !== aspectId) return false;\n return template.name === name;\n });\n return found;\n }\n\n /**\n * in the case the aspect-id is given and this aspect doesn't exist locally, import it to the\n * global scope and load it from the capsule\n */\n async findTemplateInGlobalScope(aspectId: string, name?: string): Promise<WorkspaceTemplate | undefined> {\n const aspects = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const fullAspectId = aspects[0].id.toString();\n return this.searchRegisteredWorkspaceTemplate(name, fullAspectId);\n }\n\n async findTemplateInOtherWorkspace(workspacePath: string, name: string, aspectId?: string) {\n if (!aspectId)\n throw new BitError(\n `to load a template from a different workspace, please provide the aspect-id using --aspect flag`\n );\n const harmony = await loadBit(workspacePath);\n let workspace: Workspace;\n try {\n workspace = harmony.get<Workspace>(WorkspaceAspect.id);\n } catch (err: any) {\n throw new Error(`fatal: \"${workspacePath}\" is not a valid Bit workspace, make sure the path is correct`);\n }\n const aspectComponentId = await workspace.resolveComponentId(aspectId);\n await workspace.loadAspects([aspectId], true);\n const aspectFullId = aspectComponentId.toString();\n const generator = harmony.get<GeneratorMain>(GeneratorAspect.id);\n return generator.searchRegisteredWorkspaceTemplate(name, aspectFullId);\n }\n\n /**\n * returns a specific workspace template.\n */\n async getWorkspaceTemplate(\n name: string,\n aspectId?: string\n ): Promise<{ workspaceTemplate: WorkspaceTemplate; aspect?: Component }> {\n const registeredTemplate = await this.searchRegisteredWorkspaceTemplate(name, aspectId);\n if (registeredTemplate) {\n return { workspaceTemplate: registeredTemplate };\n }\n if (!aspectId) {\n throw new BitError(`template \"${name}\" was not found, if this is a custom-template, please use --aspect flag`);\n }\n const aspects = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const aspect = aspects[0];\n const fullAspectId = aspect.id.toString();\n const fromGlobal = await this.searchRegisteredWorkspaceTemplate(name, fullAspectId);\n if (fromGlobal) {\n return { workspaceTemplate: fromGlobal, aspect };\n }\n throw new BitError(`template \"${name}\" was not found`);\n }\n\n async searchRegisteredWorkspaceTemplate(name?: string, aspectId?: string): Promise<WorkspaceTemplate | undefined> {\n const templates = this.getAllWorkspaceTemplatesFlattened();\n const found = templates.find(({ id, template }) => {\n if (aspectId && name) return aspectId === id && name === template.name;\n if (aspectId) return aspectId === id;\n if (name) return name === template.name;\n throw new Error(`searchRegisteredWorkspaceTemplate expects to get \"name\" or \"aspectId\"`);\n });\n return found?.template;\n }\n\n async generateComponentTemplate(\n componentNames: string[],\n templateName: string,\n options: CreateOptions\n ): Promise<GenerateResult[]> {\n if (!this.workspace) throw new ConsumerNotFound();\n await this.loadAspects();\n const { namespace, aspect: aspectId } = options;\n const templateWithId = this.getComponentTemplate(templateName, aspectId);\n if (!templateWithId) throw new BitError(`template \"${templateName}\" was not found`);\n\n const componentIds = componentNames.map((componentName) =>\n this.newComponentHelper.getNewComponentId(componentName, namespace, options.scope)\n );\n\n const componentGenerator = new ComponentGenerator(\n this.workspace,\n componentIds,\n options,\n templateWithId.template,\n this.envs,\n this.newComponentHelper,\n templateWithId.id\n );\n return componentGenerator.generate();\n }\n\n async generateWorkspaceTemplate(workspaceName: string, templateName: string, options: NewOptions) {\n if (this.workspace) {\n throw new BitError('Error: unable to generate a new workspace inside of an existing workspace');\n }\n const { aspect: aspectId, loadFrom } = options;\n let template: WorkspaceTemplate | undefined;\n let aspectComponent: Component | undefined;\n if (loadFrom) {\n template = await this.findTemplateInOtherWorkspace(loadFrom, templateName, aspectId);\n } else {\n const { workspaceTemplate, aspect } = await this.getWorkspaceTemplate(templateName, aspectId);\n template = workspaceTemplate;\n aspectComponent = aspect;\n }\n if (!template) throw new BitError(`template \"${templateName}\" was not found`);\n const workspaceGenerator = new WorkspaceGenerator(workspaceName, options, template, aspectComponent);\n const workspacePath = await workspaceGenerator.generate();\n\n return workspacePath;\n }\n\n private getAllComponentTemplatesFlattened(): Array<{ id: string; template: ComponentTemplate }> {\n const templatesByAspects = this.componentTemplateSlot.toArray();\n return templatesByAspects.flatMap(([id, componentTemplates]) => {\n return componentTemplates.map((template) => ({\n id,\n template,\n }));\n });\n }\n\n private getAllWorkspaceTemplatesFlattened(): Array<{ id: string; template: WorkspaceTemplate }> {\n const templatesByAspects = this.workspaceTemplateSlot.toArray();\n return templatesByAspects.flatMap(([id, workspaceTemplates]) => {\n return workspaceTemplates.map((template) => ({\n id,\n template,\n }));\n });\n }\n\n private async loadAspects() {\n if (this.aspectLoaded) return;\n await this.workspace.loadAspects(this.config.aspects);\n this.aspectLoaded = true;\n }\n\n static slots = [Slot.withType<ComponentTemplate[]>(), Slot.withType<WorkspaceTemplate[]>()];\n\n static dependencies = [\n WorkspaceAspect,\n CLIAspect,\n GraphqlAspect,\n EnvsAspect,\n AspectLoaderAspect,\n NewComponentHelperAspect,\n CommunityAspect,\n ImporterAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, importer]: [\n Workspace,\n CLIMain,\n GraphqlMain,\n EnvsMain,\n AspectLoaderMain,\n NewComponentHelperMain,\n CommunityMain,\n ImporterMain\n ],\n config: GeneratorConfig,\n [componentTemplateSlot, workspaceTemplateSlot]: [ComponentTemplateSlot, WorkspaceTemplateSlot]\n ) {\n const generator = new GeneratorMain(\n componentTemplateSlot,\n workspaceTemplateSlot,\n config,\n workspace,\n envs,\n aspectLoader,\n newComponentHelper,\n importer\n );\n const commands = [\n new CreateCmd(generator, community.getDocsDomain()),\n new TemplatesCmd(generator),\n new NewCmd(generator),\n ];\n cli.register(...commands);\n graphql.register(generatorSchema(generator));\n generator.registerComponentTemplate([componentGeneratorTemplate, workspaceGeneratorTemplate]);\n return generator;\n }\n}\n\nGeneratorAspect.addRuntime(GeneratorMain);\n"]}
@@ -16,6 +16,7 @@ export declare class WorkspaceGenerator {
16
16
  private workspacePath;
17
17
  private harmony;
18
18
  private workspace;
19
+ private importer;
19
20
  private logger;
20
21
  constructor(workspaceName: string, options: NewOptions, template: WorkspaceTemplate, aspectComponent?: Component | undefined);
21
22
  generate(): Promise<string>;
@@ -26,7 +27,8 @@ export declare class WorkspaceGenerator {
26
27
  */
27
28
  private writeWorkspaceFiles;
28
29
  private reloadBitInWorkspaceDir;
29
- private addComponentsFromRemote;
30
+ private forkComponentsFromRemote;
31
+ private importComponentsFromRemote;
30
32
  private compileComponents;
31
33
  private getNewPackageNames;
32
34
  private getNewComponentIds;
@@ -137,6 +137,16 @@ function _consumer() {
137
137
  return data;
138
138
  }
139
139
 
140
+ function _importer() {
141
+ const data = _interopRequireDefault(require("@teambit/importer"));
142
+
143
+ _importer = function () {
144
+ return data;
145
+ };
146
+
147
+ return data;
148
+ }
149
+
140
150
  function _compiler() {
141
151
  const data = require("@teambit/compiler");
142
152
 
@@ -216,6 +226,7 @@ class WorkspaceGenerator {
216
226
  (0, _defineProperty2().default)(this, "workspacePath", void 0);
217
227
  (0, _defineProperty2().default)(this, "harmony", void 0);
218
228
  (0, _defineProperty2().default)(this, "workspace", void 0);
229
+ (0, _defineProperty2().default)(this, "importer", void 0);
219
230
  (0, _defineProperty2().default)(this, "logger", void 0);
220
231
  this.workspacePath = _path().default.resolve(this.workspaceName);
221
232
  }
@@ -233,7 +244,8 @@ class WorkspaceGenerator {
233
244
  await (0, _consumer().init)(this.workspacePath, this.options.skipGit, false, false, false, false, {});
234
245
  await this.writeWorkspaceFiles();
235
246
  await this.reloadBitInWorkspaceDir();
236
- await this.addComponentsFromRemote();
247
+ await this.forkComponentsFromRemote();
248
+ await this.importComponentsFromRemote();
237
249
  await this.workspace.install(undefined, {
238
250
  dedupe: true,
239
251
  import: false,
@@ -292,16 +304,17 @@ class WorkspaceGenerator {
292
304
  this.workspace = this.harmony.get(_workspace().WorkspaceAspect.id);
293
305
  const loggerMain = this.harmony.get(_logger().LoggerAspect.id);
294
306
  this.logger = loggerMain.createLogger(_generator().GeneratorAspect.id);
307
+ this.importer = this.harmony.get(_importer().default.id);
295
308
  }
296
309
 
297
- async addComponentsFromRemote() {
298
- var _this$template, _this$template$import;
310
+ async forkComponentsFromRemote() {
311
+ var _this$template, _this$template$import, _this$template2, _this$template2$fork;
299
312
 
300
313
  if (this.options.empty) return;
301
- const componentsToImport = (_this$template = this.template) === null || _this$template === void 0 ? void 0 : (_this$template$import = _this$template.importComponents) === null || _this$template$import === void 0 ? void 0 : _this$template$import.call(_this$template);
302
- if (!componentsToImport || !componentsToImport.length) return;
314
+ const componentsToFork = ((_this$template = this.template) === null || _this$template === void 0 ? void 0 : (_this$template$import = _this$template.importComponents) === null || _this$template$import === void 0 ? void 0 : _this$template$import.call(_this$template)) || ((_this$template2 = this.template) === null || _this$template2 === void 0 ? void 0 : (_this$template2$fork = _this$template2.fork) === null || _this$template2$fork === void 0 ? void 0 : _this$template2$fork.call(_this$template2)) || [];
315
+ if (!componentsToFork.length) return;
303
316
  const dependencyResolver = this.harmony.get(_dependencyResolver().DependencyResolverAspect.id);
304
- const componentsToImportResolved = await Promise.all(componentsToImport.map(async c => ({
317
+ const componentsToImportResolved = await Promise.all(componentsToFork.map(async c => ({
305
318
  id: _componentId().ComponentID.fromLegacy(_legacyBitId().BitId.parse(c.id, true)),
306
319
  path: c.path,
307
320
  targetName: c.targetName
@@ -315,7 +328,7 @@ class WorkspaceGenerator {
315
328
  await (0, _pMapSeries().default)(components, async comp => {
316
329
  const compData = componentsToImportResolved.find(c => c.id._legacy.isEqualWithoutVersion(comp.id._legacy));
317
330
  if (!compData) throw new Error(`workspace-generator, unable to find ${comp.id.toString()} in the given ids`);
318
- await this.workspace.write(compData.path, comp);
331
+ await this.workspace.write(comp, compData.path);
319
332
  await this.workspace.track({
320
333
  rootDir: compData.path,
321
334
  componentName: compData.targetName || compData.id.fullName,
@@ -346,6 +359,29 @@ class WorkspaceGenerator {
346
359
  await this.compileComponents();
347
360
  }
348
361
 
362
+ async importComponentsFromRemote() {
363
+ var _this$template3, _this$template3$impor;
364
+
365
+ if (this.options.empty) return;
366
+ const componentsToImport = ((_this$template3 = this.template) === null || _this$template3 === void 0 ? void 0 : (_this$template3$impor = _this$template3.import) === null || _this$template3$impor === void 0 ? void 0 : _this$template3$impor.call(_this$template3)) || [];
367
+ if (!componentsToImport.length) return;
368
+ await (0, _pMapSeries().default)(componentsToImport, async componentToImport => {
369
+ await this.importer.import({
370
+ ids: [componentToImport.id],
371
+ verbose: false,
372
+ objectsOnly: false,
373
+ override: false,
374
+ writeDists: false,
375
+ writeConfig: false,
376
+ installNpmPackages: false,
377
+ writeToPath: componentToImport.path
378
+ }, []);
379
+ });
380
+ await this.workspace.bitMap.write();
381
+ this.workspace.clearCache();
382
+ await this.compileComponents();
383
+ }
384
+
349
385
  async compileComponents() {
350
386
  const compiler = this.harmony.get(_compiler().CompilerAspect.id);
351
387
  await compiler.compileOnWorkspace();
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace-generator.ts"],"names":["WorkspaceGenerator","constructor","workspaceName","options","template","aspectComponent","workspacePath","path","resolve","generate","fs","existsSync","Error","ensureDir","process","chdir","initGit","skipGit","writeWorkspaceFiles","reloadBitInWorkspaceDir","addComponentsFromRemote","workspace","install","undefined","dedupe","import","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","updateExisting","err","remove","gitExecutablePath","params","exitCodeName","GitNotFound","buildUI","uiMain","harmony","get","UIAspect","id","createRuntime","workspaceContext","name","defaultScope","empty","templateFiles","generateFiles","Promise","all","map","templateFile","outputFile","join","relativePath","content","WorkspaceAspect","loggerMain","LoggerAspect","logger","createLogger","GeneratorAspect","componentsToImport","importComponents","length","dependencyResolver","DependencyResolverAspect","componentsToImportResolved","c","ComponentID","fromLegacy","BitId","parse","targetName","componentIds","components","scope","getRemoteComponent","oldAndNewPackageNames","getNewPackageNames","oldAndNewComponentIds","getNewComponentIds","comp","replaceOriginalPackageNameWithNew","compData","find","_legacy","isEqualWithoutVersion","toString","write","track","rootDir","componentName","fullName","mainFile","state","_consumer","deps","getDependencies","currentPackages","Object","keys","workspacePolicyEntries","filter","dep","source","dependencyId","getPackageName","lifecycleType","lifecycle","value","version","entry","includes","addToRootPolicy","bitMap","persistConfig","clearCache","compileComponents","compiler","CompilerAspect","compileOnWorkspace","compsData","pkg","PkgAspect","packageToReplace","scopeToReplace","replace","forEach","newId","resolveNewCompId","currentPackageName","newName","newPackageName","componentToReplace","toStringWithoutVersion","isEqualWithoutScopeAndVersion","changeScope","filesystem","files","file","isBinary","contents","strContent","newContent","currentPackage","currentPkgRegex","RegExp","currentId","currentIdRegex","Buffer","from"],"mappings":"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","sourcesContent":["import fs from 'fs-extra';\nimport { isBinaryFile } from 'isbinaryfile';\nimport { loadBit } from '@teambit/bit';\nimport { Harmony } from '@teambit/harmony';\nimport { Component } from '@teambit/component';\nimport execa from 'execa';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport pMapSeries from 'p-map-series';\nimport UIAspect, { UiMain } from '@teambit/ui';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport { init } from '@teambit/legacy/dist/api/consumer';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport getGitExecutablePath from '@teambit/legacy/dist/utils/git/git-executable';\nimport GitNotFound from '@teambit/legacy/dist/utils/git/exceptions/git-not-found';\nimport path from 'path';\nimport { DependencyResolverMain, DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { ComponentID } from '@teambit/component-id';\nimport { WorkspaceTemplate } from './workspace-template';\nimport { NewOptions } from './new.cmd';\nimport { GeneratorAspect } from './generator.aspect';\n\nexport type GenerateResult = { id: ComponentID; dir: string; files: string[]; envId: string };\n\ntype CompToImportResolved = {\n id: ComponentID;\n path: string;\n targetName?: string;\n};\n\nexport class WorkspaceGenerator {\n private workspacePath: string;\n private harmony: Harmony;\n private workspace: Workspace;\n private logger: Logger;\n constructor(\n private workspaceName: string,\n private options: NewOptions,\n private template: WorkspaceTemplate,\n private aspectComponent?: Component\n ) {\n this.workspacePath = path.resolve(this.workspaceName);\n }\n\n async generate(): Promise<string> {\n if (fs.existsSync(this.workspacePath)) {\n throw new Error(`unable to create a workspace at \"${this.workspaceName}\", this path already exist`);\n }\n await fs.ensureDir(this.workspacePath);\n try {\n process.chdir(this.workspacePath);\n await this.initGit();\n await init(this.workspacePath, this.options.skipGit, false, false, false, false, {});\n await this.writeWorkspaceFiles();\n await this.reloadBitInWorkspaceDir();\n await this.addComponentsFromRemote();\n await this.workspace.install(undefined, {\n dedupe: true,\n import: false,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n updateExisting: false,\n });\n // await this.buildUI(); // disabled for now. it takes too long\n } catch (err: any) {\n await fs.remove(this.workspacePath);\n throw err;\n }\n\n return this.workspacePath;\n }\n\n private async initGit() {\n if (this.options.skipGit) return;\n const gitExecutablePath = getGitExecutablePath();\n const params = ['init'];\n try {\n await execa(gitExecutablePath, params);\n } catch (err: any) {\n if (err.exitCodeName === 'ENOENT') {\n throw new GitNotFound(gitExecutablePath, err);\n }\n throw err;\n }\n }\n\n private async buildUI() {\n const uiMain = this.harmony.get<UiMain>(UIAspect.id);\n await uiMain.createRuntime({});\n }\n\n /**\n * writes the generated template files to the default directory set in the workspace config\n */\n private async writeWorkspaceFiles(): Promise<void> {\n const workspaceContext = {\n name: this.workspaceName,\n defaultScope: this.options.defaultScope,\n empty: this.options.empty,\n aspectComponent: this.aspectComponent,\n };\n const templateFiles = await this.template.generateFiles(workspaceContext);\n await Promise.all(\n templateFiles.map(async (templateFile) => {\n await fs.outputFile(path.join(this.workspacePath, templateFile.relativePath), templateFile.content);\n })\n );\n }\n\n private async reloadBitInWorkspaceDir() {\n this.harmony = await loadBit(this.workspacePath);\n this.workspace = this.harmony.get<Workspace>(WorkspaceAspect.id);\n const loggerMain = this.harmony.get<LoggerMain>(LoggerAspect.id);\n this.logger = loggerMain.createLogger(GeneratorAspect.id);\n }\n\n private async addComponentsFromRemote() {\n if (this.options.empty) return;\n const componentsToImport = this.template?.importComponents?.();\n if (!componentsToImport || !componentsToImport.length) return;\n const dependencyResolver = this.harmony.get<DependencyResolverMain>(DependencyResolverAspect.id);\n\n const componentsToImportResolved = await Promise.all(\n componentsToImport.map(async (c) => ({\n id: ComponentID.fromLegacy(BitId.parse(c.id, true)),\n path: c.path,\n targetName: c.targetName,\n }))\n );\n const componentIds = componentsToImportResolved.map((c) => c.id);\n // @todo: improve performance by changing `getRemoteComponent` api to accept multiple ids\n const components = await Promise.all(componentIds.map((id) => this.workspace.scope.getRemoteComponent(id)));\n const oldAndNewPackageNames = this.getNewPackageNames(components, componentsToImportResolved);\n const oldAndNewComponentIds = this.getNewComponentIds(components, componentsToImportResolved);\n await Promise.all(\n components.map((comp) =>\n this.replaceOriginalPackageNameWithNew(comp, oldAndNewPackageNames, oldAndNewComponentIds)\n )\n );\n await pMapSeries(components, async (comp) => {\n const compData = componentsToImportResolved.find((c) => c.id._legacy.isEqualWithoutVersion(comp.id._legacy));\n if (!compData) throw new Error(`workspace-generator, unable to find ${comp.id.toString()} in the given ids`);\n await this.workspace.write(compData.path, comp);\n await this.workspace.track({\n rootDir: compData.path,\n componentName: compData.targetName || compData.id.fullName,\n mainFile: comp.state._consumer.mainFile,\n });\n const deps = await dependencyResolver.getDependencies(comp);\n\n const currentPackages = Object.keys(oldAndNewPackageNames);\n // only bring auto-resolved dependencies, others should be set in the workspace.jsonc template\n const workspacePolicyEntries = deps\n .filter((dep) => dep.source === 'auto')\n .map((dep) => ({\n dependencyId: dep.getPackageName?.() || dep.id,\n lifecycleType: dep.lifecycle === 'dev' ? 'runtime' : dep.lifecycle,\n value: {\n version: dep.version,\n },\n }))\n .filter((entry) => !currentPackages.includes(entry.dependencyId)); // remove components that are now imported\n dependencyResolver.addToRootPolicy(workspacePolicyEntries, { updateExisting: true });\n });\n await this.workspace.bitMap.write();\n await dependencyResolver.persistConfig(this.workspace.path);\n this.workspace.clearCache();\n await this.compileComponents();\n }\n\n private async compileComponents() {\n const compiler = this.harmony.get<CompilerMain>(CompilerAspect.id);\n await compiler.compileOnWorkspace();\n }\n\n private getNewPackageNames(\n components: Component[],\n compsData: CompToImportResolved[]\n ): { [oldPackageName: string]: string } {\n const pkg = this.harmony.get<PkgMain>(PkgAspect.id);\n const packageToReplace = {};\n const scopeToReplace = this.workspace.defaultScope.replace('.', '/');\n components.forEach((comp) => {\n const newId = this.resolveNewCompId(comp, compsData);\n const currentPackageName = pkg.getPackageName(comp);\n const newName = newId.fullName.replace(/\\//g, '.');\n const newPackageName = `@${scopeToReplace}.${newName}`;\n packageToReplace[currentPackageName] = newPackageName;\n });\n return packageToReplace;\n }\n\n private getNewComponentIds(\n components: Component[],\n compsData: CompToImportResolved[]\n ): { [oldComponentId: string]: string } {\n const componentToReplace = {};\n components.forEach((comp) => {\n const newId = this.resolveNewCompId(comp, compsData);\n componentToReplace[comp.id.toStringWithoutVersion()] = newId.toStringWithoutVersion();\n });\n return componentToReplace;\n }\n\n private resolveNewCompId(comp: Component, compsData: CompToImportResolved[]): ComponentID {\n const scopeToReplace = this.workspace.defaultScope;\n const compData = compsData.find((c) => c.id._legacy.isEqualWithoutScopeAndVersion(comp.id._legacy));\n if (!compData) {\n throw new Error(`workspace-generator: unable to find data for \"${comp.id._legacy.toString()}\"`);\n }\n return compData.targetName\n ? ComponentID.fromLegacy(BitId.parse(compData.targetName, false).changeScope(scopeToReplace))\n : comp.id.changeScope(scopeToReplace);\n }\n\n private async replaceOriginalPackageNameWithNew(\n comp: Component,\n packageToReplace: Record<string, string>,\n oldAndNewComponentIds: Record<string, string>\n ) {\n await Promise.all(\n comp.filesystem.files.map(async (file) => {\n const isBinary = await isBinaryFile(file.contents);\n if (isBinary) return;\n const strContent = file.contents.toString();\n let newContent = strContent;\n Object.keys(packageToReplace).forEach((currentPackage) => {\n if (strContent.includes(currentPackage)) {\n const currentPkgRegex = new RegExp(currentPackage, 'g');\n newContent = newContent.replace(currentPkgRegex, packageToReplace[currentPackage]);\n }\n });\n Object.keys(oldAndNewComponentIds).forEach((currentId) => {\n if (strContent.includes(currentId)) {\n const currentIdRegex = new RegExp(currentId, 'g');\n newContent = newContent.replace(currentIdRegex, oldAndNewComponentIds[currentId]);\n }\n });\n if (strContent !== newContent) {\n file.contents = Buffer.from(newContent);\n }\n })\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["workspace-generator.ts"],"names":["WorkspaceGenerator","constructor","workspaceName","options","template","aspectComponent","workspacePath","path","resolve","generate","fs","existsSync","Error","ensureDir","process","chdir","initGit","skipGit","writeWorkspaceFiles","reloadBitInWorkspaceDir","forkComponentsFromRemote","importComponentsFromRemote","workspace","install","undefined","dedupe","import","copyPeerToRuntimeOnRoot","copyPeerToRuntimeOnComponents","updateExisting","err","remove","gitExecutablePath","params","exitCodeName","GitNotFound","buildUI","uiMain","harmony","get","UIAspect","id","createRuntime","workspaceContext","name","defaultScope","empty","templateFiles","generateFiles","Promise","all","map","templateFile","outputFile","join","relativePath","content","WorkspaceAspect","loggerMain","LoggerAspect","logger","createLogger","GeneratorAspect","importer","ImporterAspect","componentsToFork","importComponents","fork","length","dependencyResolver","DependencyResolverAspect","componentsToImportResolved","c","ComponentID","fromLegacy","BitId","parse","targetName","componentIds","components","scope","getRemoteComponent","oldAndNewPackageNames","getNewPackageNames","oldAndNewComponentIds","getNewComponentIds","comp","replaceOriginalPackageNameWithNew","compData","find","_legacy","isEqualWithoutVersion","toString","write","track","rootDir","componentName","fullName","mainFile","state","_consumer","deps","getDependencies","currentPackages","Object","keys","workspacePolicyEntries","filter","dep","source","dependencyId","getPackageName","lifecycleType","lifecycle","value","version","entry","includes","addToRootPolicy","bitMap","persistConfig","clearCache","compileComponents","componentsToImport","componentToImport","ids","verbose","objectsOnly","override","writeDists","writeConfig","installNpmPackages","writeToPath","compiler","CompilerAspect","compileOnWorkspace","compsData","pkg","PkgAspect","packageToReplace","scopeToReplace","replace","forEach","newId","resolveNewCompId","currentPackageName","newName","newPackageName","componentToReplace","toStringWithoutVersion","isEqualWithoutScopeAndVersion","changeScope","filesystem","files","file","isBinary","contents","strContent","newContent","currentPackage","currentPkgRegex","RegExp","currentId","currentIdRegex","Buffer","from"],"mappings":"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","sourcesContent":["import fs from 'fs-extra';\nimport { isBinaryFile } from 'isbinaryfile';\nimport { loadBit } from '@teambit/bit';\nimport { Harmony } from '@teambit/harmony';\nimport { Component } from '@teambit/component';\nimport execa from 'execa';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport pMapSeries from 'p-map-series';\nimport UIAspect, { UiMain } from '@teambit/ui';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { WorkspaceAspect, Workspace } from '@teambit/workspace';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport { init } from '@teambit/legacy/dist/api/consumer';\nimport ImporterAspect, { ImporterMain } from '@teambit/importer';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport getGitExecutablePath from '@teambit/legacy/dist/utils/git/git-executable';\nimport GitNotFound from '@teambit/legacy/dist/utils/git/exceptions/git-not-found';\nimport path from 'path';\nimport { DependencyResolverMain, DependencyResolverAspect } from '@teambit/dependency-resolver';\nimport { ComponentID } from '@teambit/component-id';\nimport { WorkspaceTemplate } from './workspace-template';\nimport { NewOptions } from './new.cmd';\nimport { GeneratorAspect } from './generator.aspect';\n\nexport type GenerateResult = { id: ComponentID; dir: string; files: string[]; envId: string };\n\ntype CompToImportResolved = {\n id: ComponentID;\n path: string;\n targetName?: string;\n};\n\nexport class WorkspaceGenerator {\n private workspacePath: string;\n private harmony: Harmony;\n private workspace: Workspace;\n private importer: ImporterMain;\n private logger: Logger;\n constructor(\n private workspaceName: string,\n private options: NewOptions,\n private template: WorkspaceTemplate,\n private aspectComponent?: Component\n ) {\n this.workspacePath = path.resolve(this.workspaceName);\n }\n\n async generate(): Promise<string> {\n if (fs.existsSync(this.workspacePath)) {\n throw new Error(`unable to create a workspace at \"${this.workspaceName}\", this path already exist`);\n }\n await fs.ensureDir(this.workspacePath);\n try {\n process.chdir(this.workspacePath);\n await this.initGit();\n await init(this.workspacePath, this.options.skipGit, false, false, false, false, {});\n await this.writeWorkspaceFiles();\n await this.reloadBitInWorkspaceDir();\n await this.forkComponentsFromRemote();\n await this.importComponentsFromRemote();\n await this.workspace.install(undefined, {\n dedupe: true,\n import: false,\n copyPeerToRuntimeOnRoot: true,\n copyPeerToRuntimeOnComponents: false,\n updateExisting: false,\n });\n // await this.buildUI(); // disabled for now. it takes too long\n } catch (err: any) {\n await fs.remove(this.workspacePath);\n throw err;\n }\n\n return this.workspacePath;\n }\n\n private async initGit() {\n if (this.options.skipGit) return;\n const gitExecutablePath = getGitExecutablePath();\n const params = ['init'];\n try {\n await execa(gitExecutablePath, params);\n } catch (err: any) {\n if (err.exitCodeName === 'ENOENT') {\n throw new GitNotFound(gitExecutablePath, err);\n }\n throw err;\n }\n }\n\n private async buildUI() {\n const uiMain = this.harmony.get<UiMain>(UIAspect.id);\n await uiMain.createRuntime({});\n }\n\n /**\n * writes the generated template files to the default directory set in the workspace config\n */\n private async writeWorkspaceFiles(): Promise<void> {\n const workspaceContext = {\n name: this.workspaceName,\n defaultScope: this.options.defaultScope,\n empty: this.options.empty,\n aspectComponent: this.aspectComponent,\n };\n const templateFiles = await this.template.generateFiles(workspaceContext);\n await Promise.all(\n templateFiles.map(async (templateFile) => {\n await fs.outputFile(path.join(this.workspacePath, templateFile.relativePath), templateFile.content);\n })\n );\n }\n\n private async reloadBitInWorkspaceDir() {\n this.harmony = await loadBit(this.workspacePath);\n this.workspace = this.harmony.get<Workspace>(WorkspaceAspect.id);\n const loggerMain = this.harmony.get<LoggerMain>(LoggerAspect.id);\n this.logger = loggerMain.createLogger(GeneratorAspect.id);\n this.importer = this.harmony.get<ImporterMain>(ImporterAspect.id);\n }\n\n private async forkComponentsFromRemote() {\n if (this.options.empty) return;\n const componentsToFork = this.template?.importComponents?.() || this.template?.fork?.() || [];\n if (!componentsToFork.length) return;\n const dependencyResolver = this.harmony.get<DependencyResolverMain>(DependencyResolverAspect.id);\n\n const componentsToImportResolved = await Promise.all(\n componentsToFork.map(async (c) => ({\n id: ComponentID.fromLegacy(BitId.parse(c.id, true)),\n path: c.path,\n targetName: c.targetName,\n }))\n );\n const componentIds = componentsToImportResolved.map((c) => c.id);\n // @todo: improve performance by changing `getRemoteComponent` api to accept multiple ids\n const components = await Promise.all(componentIds.map((id) => this.workspace.scope.getRemoteComponent(id)));\n const oldAndNewPackageNames = this.getNewPackageNames(components, componentsToImportResolved);\n const oldAndNewComponentIds = this.getNewComponentIds(components, componentsToImportResolved);\n await Promise.all(\n components.map((comp) =>\n this.replaceOriginalPackageNameWithNew(comp, oldAndNewPackageNames, oldAndNewComponentIds)\n )\n );\n await pMapSeries(components, async (comp) => {\n const compData = componentsToImportResolved.find((c) => c.id._legacy.isEqualWithoutVersion(comp.id._legacy));\n if (!compData) throw new Error(`workspace-generator, unable to find ${comp.id.toString()} in the given ids`);\n await this.workspace.write(comp, compData.path);\n await this.workspace.track({\n rootDir: compData.path,\n componentName: compData.targetName || compData.id.fullName,\n mainFile: comp.state._consumer.mainFile,\n });\n const deps = await dependencyResolver.getDependencies(comp);\n\n const currentPackages = Object.keys(oldAndNewPackageNames);\n // only bring auto-resolved dependencies, others should be set in the workspace.jsonc template\n const workspacePolicyEntries = deps\n .filter((dep) => dep.source === 'auto')\n .map((dep) => ({\n dependencyId: dep.getPackageName?.() || dep.id,\n lifecycleType: dep.lifecycle === 'dev' ? 'runtime' : dep.lifecycle,\n value: {\n version: dep.version,\n },\n }))\n .filter((entry) => !currentPackages.includes(entry.dependencyId)); // remove components that are now imported\n dependencyResolver.addToRootPolicy(workspacePolicyEntries, { updateExisting: true });\n });\n await this.workspace.bitMap.write();\n await dependencyResolver.persistConfig(this.workspace.path);\n this.workspace.clearCache();\n await this.compileComponents();\n }\n\n private async importComponentsFromRemote() {\n if (this.options.empty) return;\n const componentsToImport = this.template?.import?.() || [];\n\n if (!componentsToImport.length) return;\n\n await pMapSeries(componentsToImport, async (componentToImport) => {\n await this.importer.import(\n {\n ids: [componentToImport.id],\n verbose: false,\n objectsOnly: false,\n override: false,\n writeDists: false,\n writeConfig: false,\n installNpmPackages: false,\n writeToPath: componentToImport.path,\n },\n []\n );\n });\n\n await this.workspace.bitMap.write();\n this.workspace.clearCache();\n await this.compileComponents();\n }\n\n private async compileComponents() {\n const compiler = this.harmony.get<CompilerMain>(CompilerAspect.id);\n await compiler.compileOnWorkspace();\n }\n\n private getNewPackageNames(\n components: Component[],\n compsData: CompToImportResolved[]\n ): { [oldPackageName: string]: string } {\n const pkg = this.harmony.get<PkgMain>(PkgAspect.id);\n const packageToReplace = {};\n const scopeToReplace = this.workspace.defaultScope.replace('.', '/');\n components.forEach((comp) => {\n const newId = this.resolveNewCompId(comp, compsData);\n const currentPackageName = pkg.getPackageName(comp);\n const newName = newId.fullName.replace(/\\//g, '.');\n const newPackageName = `@${scopeToReplace}.${newName}`;\n packageToReplace[currentPackageName] = newPackageName;\n });\n return packageToReplace;\n }\n\n private getNewComponentIds(\n components: Component[],\n compsData: CompToImportResolved[]\n ): { [oldComponentId: string]: string } {\n const componentToReplace = {};\n components.forEach((comp) => {\n const newId = this.resolveNewCompId(comp, compsData);\n componentToReplace[comp.id.toStringWithoutVersion()] = newId.toStringWithoutVersion();\n });\n return componentToReplace;\n }\n\n private resolveNewCompId(comp: Component, compsData: CompToImportResolved[]): ComponentID {\n const scopeToReplace = this.workspace.defaultScope;\n const compData = compsData.find((c) => c.id._legacy.isEqualWithoutScopeAndVersion(comp.id._legacy));\n if (!compData) {\n throw new Error(`workspace-generator: unable to find data for \"${comp.id._legacy.toString()}\"`);\n }\n return compData.targetName\n ? ComponentID.fromLegacy(BitId.parse(compData.targetName, false).changeScope(scopeToReplace))\n : comp.id.changeScope(scopeToReplace);\n }\n\n private async replaceOriginalPackageNameWithNew(\n comp: Component,\n packageToReplace: Record<string, string>,\n oldAndNewComponentIds: Record<string, string>\n ) {\n await Promise.all(\n comp.filesystem.files.map(async (file) => {\n const isBinary = await isBinaryFile(file.contents);\n if (isBinary) return;\n const strContent = file.contents.toString();\n let newContent = strContent;\n Object.keys(packageToReplace).forEach((currentPackage) => {\n if (strContent.includes(currentPackage)) {\n const currentPkgRegex = new RegExp(currentPackage, 'g');\n newContent = newContent.replace(currentPkgRegex, packageToReplace[currentPackage]);\n }\n });\n Object.keys(oldAndNewComponentIds).forEach((currentId) => {\n if (strContent.includes(currentId)) {\n const currentIdRegex = new RegExp(currentId, 'g');\n newContent = newContent.replace(currentIdRegex, oldAndNewComponentIds[currentId]);\n }\n });\n if (strContent !== newContent) {\n file.contents = Buffer.from(newContent);\n }\n })\n );\n }\n}\n"]}
@@ -30,7 +30,7 @@ export interface WorkspaceContext {
30
30
  */
31
31
  aspectComponent?: Component;
32
32
  }
33
- export interface ComponentToImport {
33
+ export interface ForkComponentInfo {
34
34
  /**
35
35
  * full component id
36
36
  */
@@ -44,6 +44,20 @@ export interface ComponentToImport {
44
44
  */
45
45
  targetName?: string;
46
46
  }
47
+ /**
48
+ * @deprecated use ForkComponentInfo instead.
49
+ */
50
+ export declare type ComponentToImport = ForkComponentInfo;
51
+ export interface ImportComponentInfo {
52
+ /**
53
+ * full component id
54
+ */
55
+ id: string;
56
+ /**
57
+ * path where to write the component
58
+ */
59
+ path: string;
60
+ }
47
61
  export interface WorkspaceTemplate {
48
62
  /**
49
63
  * name of the workspace template. for example: `react-workspace`.
@@ -62,7 +76,18 @@ export interface WorkspaceTemplate {
62
76
  */
63
77
  generateFiles(context: WorkspaceContext): Promise<WorkspaceFile[]>;
64
78
  /**
65
- * populate existing components into the new workspace and add them as new components
79
+ * @deprecated use `fork()` or `import()` instead
80
+ * this is working similarly to `fork()`
81
+ */
82
+ importComponents?: () => ForkComponentInfo[];
83
+ /**
84
+ * populate existing components into the new workspace and add them as new components.
85
+ * don't change their source code.
86
+ */
87
+ import?: () => ImportComponentInfo[];
88
+ /**
89
+ * populate existing components into the new workspace and add them as new components.
90
+ * change their source code and update the dependency names according to the new component names.
66
91
  */
67
- importComponents?: () => ComponentToImport[];
92
+ fork?: () => ForkComponentInfo[];
68
93
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/generator",
3
- "version": "0.0.702",
3
+ "version": "0.0.705",
4
4
  "homepage": "https://bit.dev/teambit/generator/generator",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.generator",
8
8
  "name": "generator",
9
- "version": "0.0.702"
9
+ "version": "0.0.705"
10
10
  },
11
11
  "dependencies": {
12
12
  "camelcase": "6.2.0",
@@ -23,21 +23,22 @@
23
23
  "core-js": "^3.0.0",
24
24
  "@teambit/bit-error": "0.0.394",
25
25
  "@teambit/component-id": "0.0.402",
26
- "@teambit/envs": "0.0.702",
27
- "@teambit/new-component-helper": "0.0.106",
28
- "@teambit/workspace": "0.0.702",
29
- "@teambit/cli": "0.0.466",
30
- "@teambit/graphql": "0.0.702",
31
- "@teambit/aspect-loader": "0.0.702",
32
- "@teambit/bit": "0.0.704",
33
- "@teambit/community": "0.0.14",
34
- "@teambit/component": "0.0.702",
35
- "@teambit/compiler": "0.0.702",
36
- "@teambit/dependency-resolver": "0.0.702",
26
+ "@teambit/envs": "0.0.705",
27
+ "@teambit/new-component-helper": "0.0.109",
28
+ "@teambit/workspace": "0.0.705",
29
+ "@teambit/cli": "0.0.469",
30
+ "@teambit/graphql": "0.0.705",
31
+ "@teambit/aspect-loader": "0.0.705",
32
+ "@teambit/bit": "0.0.707",
33
+ "@teambit/community": "0.0.17",
34
+ "@teambit/component": "0.0.705",
35
+ "@teambit/importer": "0.0.134",
36
+ "@teambit/compiler": "0.0.705",
37
+ "@teambit/dependency-resolver": "0.0.705",
37
38
  "@teambit/legacy-bit-id": "0.0.399",
38
- "@teambit/logger": "0.0.558",
39
- "@teambit/pkg": "0.0.702",
40
- "@teambit/ui": "0.0.702"
39
+ "@teambit/logger": "0.0.561",
40
+ "@teambit/pkg": "0.0.705",
41
+ "@teambit/ui": "0.0.705"
41
42
  },
42
43
  "devDependencies": {
43
44
  "@types/fs-extra": "9.0.7",
@@ -51,7 +52,7 @@
51
52
  "@teambit/generator.aspect-docs.generator": "0.0.140"
52
53
  },
53
54
  "peerDependencies": {
54
- "@teambit/legacy": "1.0.244",
55
+ "@teambit/legacy": "1.0.247",
55
56
  "react-dom": "^16.8.0 || ^17.0.0",
56
57
  "react": "^16.8.0 || ^17.0.0"
57
58
  },
@@ -79,7 +80,7 @@
79
80
  "react": "-"
80
81
  },
81
82
  "peerDependencies": {
82
- "@teambit/legacy": "1.0.244",
83
+ "@teambit/legacy": "1.0.247",
83
84
  "react-dom": "^16.8.0 || ^17.0.0",
84
85
  "react": "^16.8.0 || ^17.0.0"
85
86
  }
@@ -1,2 +1,2 @@
1
- export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.702/dist/generator.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.702/dist/generator.docs.mdx')]
1
+ export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.705/dist/generator.composition.js')]
2
+ export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.705/dist/generator.docs.mdx')]