@teambit/generator 0.0.1016 → 0.0.1017

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.
@@ -95,11 +95,15 @@ export declare class GeneratorMain {
95
95
  */
96
96
  getComponentTemplate(name: string, aspectId?: string): Promise<ComponentTemplateWithId | undefined>;
97
97
  private findTemplateByAspectIdAndName;
98
+ /**
99
+ * Get the generator aspect and the envs aspect from an harmony instance of the global scope
100
+ */
101
+ private getGlobalGeneratorEnvs;
98
102
  /**
99
103
  * in the case the aspect-id is given and this aspect doesn't exist locally, import it to the
100
104
  * global scope and load it from the capsule
101
105
  */
102
- findTemplateInGlobalScope(aspectId: string, name?: string): Promise<{
106
+ findWorkspaceTemplateInGlobalScope(aspectId: string, name?: string): Promise<{
103
107
  workspaceTemplate?: WorkspaceTemplate;
104
108
  aspect?: Component;
105
109
  }>;
@@ -128,8 +132,8 @@ export declare class GeneratorMain {
128
132
  /**
129
133
  * list all component templates registered by an env.
130
134
  */
131
- listEnvComponentTemplateDescriptors(ids?: string[]): Promise<TemplateDescriptor[]>;
132
- listEnvComponentTemplates(ids?: string[]): Promise<Array<ComponentTemplateWithId>>;
135
+ listEnvComponentTemplateDescriptors(ids?: string[], aspectId?: string): Promise<TemplateDescriptor[]>;
136
+ listEnvComponentTemplates(ids?: string[], aspectId?: string): Promise<Array<ComponentTemplateWithId>>;
133
137
  loadEnvs(ids?: string[], remoteEnvsAspect?: EnvsMain): Promise<EnvDefinition[]>;
134
138
  loadAspects(): Promise<void>;
135
139
  static slots: (((registerFn: () => string) => SlotRegistry<ComponentTemplate[]>) | ((registerFn: () => string) => SlotRegistry<WorkspaceTemplate[]>))[];
@@ -6,6 +6,7 @@ require("core-js/modules/es.array.flat-map.js");
6
6
  require("core-js/modules/es.array.iterator.js");
7
7
  require("core-js/modules/es.array.unscopables.flat-map.js");
8
8
  require("core-js/modules/es.promise.js");
9
+ require("core-js/modules/es.regexp.exec.js");
9
10
  Object.defineProperty(exports, "__esModule", {
10
11
  value: true
11
12
  });
@@ -52,6 +53,13 @@ function _community() {
52
53
  };
53
54
  return data;
54
55
  }
56
+ function _config() {
57
+ const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/config"));
58
+ _config = function () {
59
+ return data;
60
+ };
61
+ return data;
62
+ }
55
63
  function _component() {
56
64
  const data = _interopRequireWildcard(require("@teambit/component"));
57
65
  _component = function () {
@@ -275,7 +283,7 @@ class GeneratorMain {
275
283
  * returns a specific component template.
276
284
  */
277
285
  async getComponentTemplate(name, aspectId) {
278
- const fromEnv = await this.listEnvComponentTemplates();
286
+ const fromEnv = await this.listEnvComponentTemplates([], aspectId);
279
287
  if (fromEnv && fromEnv.length) {
280
288
  const found = this.findTemplateByAspectIdAndName(aspectId, name, fromEnv);
281
289
  if (found) return found;
@@ -291,17 +299,22 @@ class GeneratorMain {
291
299
  id,
292
300
  template
293
301
  }) => {
294
- if (aspectId && id !== aspectId) return false;
302
+ // When doing something like:
303
+ // bit create react-env my-env --aspect teambit.react/react-env
304
+ // we will get the aspectId without version
305
+ // but the env might be loaded from the global scope then it will be with a version
306
+ // so it won't found if we don't look for it like this
307
+ const idWithoutVersion = id.split('@')[0];
308
+ if (aspectId && id !== aspectId && idWithoutVersion !== aspectId) return false;
295
309
  return template.name === name;
296
310
  });
297
311
  return found;
298
312
  }
299
313
 
300
314
  /**
301
- * in the case the aspect-id is given and this aspect doesn't exist locally, import it to the
302
- * global scope and load it from the capsule
315
+ * Get the generator aspect and the envs aspect from an harmony instance of the global scope
303
316
  */
304
- async findTemplateInGlobalScope(aspectId, name) {
317
+ async getGlobalGeneratorEnvs(aspectId) {
305
318
  const {
306
319
  globalScopeHarmony,
307
320
  components
@@ -310,6 +323,25 @@ class GeneratorMain {
310
323
  const remoteEnvsAspect = globalScopeHarmony.get(_envs().EnvsAspect.id);
311
324
  const aspect = components[0];
312
325
  const fullAspectId = aspect.id.toString();
326
+ return {
327
+ remoteGenerator,
328
+ fullAspectId,
329
+ remoteEnvsAspect,
330
+ aspect
331
+ };
332
+ }
333
+
334
+ /**
335
+ * in the case the aspect-id is given and this aspect doesn't exist locally, import it to the
336
+ * global scope and load it from the capsule
337
+ */
338
+ async findWorkspaceTemplateInGlobalScope(aspectId, name) {
339
+ const {
340
+ remoteGenerator,
341
+ fullAspectId,
342
+ remoteEnvsAspect,
343
+ aspect
344
+ } = await this.getGlobalGeneratorEnvs(aspectId);
313
345
  const fromGlobal = await remoteGenerator.searchRegisteredWorkspaceTemplate.call(remoteGenerator, name, fullAspectId, remoteEnvsAspect);
314
346
  return {
315
347
  workspaceTemplate: fromGlobal,
@@ -353,7 +385,7 @@ class GeneratorMain {
353
385
  const {
354
386
  workspaceTemplate,
355
387
  aspect
356
- } = await this.findTemplateInGlobalScope(aspectId, name);
388
+ } = await this.findWorkspaceTemplateInGlobalScope(aspectId, name);
357
389
  if (workspaceTemplate) {
358
390
  return {
359
391
  workspaceTemplate,
@@ -386,7 +418,9 @@ class GeneratorMain {
386
418
  namespace,
387
419
  aspect: aspectId
388
420
  } = options;
421
+ const componentConfigLoadingRegistry = _config().default.componentConfigLoadingRegistry;
389
422
  const templateWithId = await this.getComponentTemplate(templateName, aspectId);
423
+ _config().default.componentConfigLoadingRegistry = componentConfigLoadingRegistry;
390
424
  if (!templateWithId) throw new (_bitError().BitError)(`template "${templateName}" was not found`);
391
425
  const componentIds = componentNames.map(componentName => this.newComponentHelper.getNewComponentId(componentName, namespace, options.scope));
392
426
  const componentGenerator = new (_componentGenerator().ComponentGenerator)(this.workspace, componentIds, options, templateWithId.template, this.envs, this.newComponentHelper, this.tracker, templateWithId.id, templateWithId.envName ? _component().ComponentID.fromString(templateWithId.id) : undefined);
@@ -413,7 +447,7 @@ class GeneratorMain {
413
447
  };
414
448
  }
415
449
  async getAllComponentTemplatesDescriptorsFlattened(aspectId) {
416
- const envTemplates = await this.listEnvComponentTemplateDescriptors();
450
+ const envTemplates = await this.listEnvComponentTemplateDescriptors([], aspectId);
417
451
  if (envTemplates && envTemplates.length) {
418
452
  if (!aspectId) return envTemplates;
419
453
  const filtered = envTemplates.filter(template => template.aspectId === aspectId);
@@ -474,8 +508,8 @@ class GeneratorMain {
474
508
  /**
475
509
  * list all component templates registered by an env.
476
510
  */
477
- async listEnvComponentTemplateDescriptors(ids = []) {
478
- const envTemplates = await this.listEnvComponentTemplates(ids);
511
+ async listEnvComponentTemplateDescriptors(ids = [], aspectId) {
512
+ const envTemplates = await this.listEnvComponentTemplates(ids, aspectId);
479
513
  const templates = envTemplates.map(envTemplate => {
480
514
  const componentId = _component().ComponentID.fromString(envTemplate.id);
481
515
  return _objectSpread({
@@ -485,9 +519,17 @@ class GeneratorMain {
485
519
  });
486
520
  return templates;
487
521
  }
488
- async listEnvComponentTemplates(ids = []) {
522
+ async listEnvComponentTemplates(ids = [], aspectId) {
489
523
  const configEnvs = this.config.envs || [];
490
- const envs = await this.loadEnvs(configEnvs === null || configEnvs === void 0 ? void 0 : configEnvs.concat(ids));
524
+ let remoteEnvsAspect;
525
+ let fullAspectId;
526
+ if (aspectId && !configEnvs.includes(aspectId)) {
527
+ const globals = await this.getGlobalGeneratorEnvs(aspectId);
528
+ remoteEnvsAspect = globals.remoteEnvsAspect;
529
+ fullAspectId = globals.fullAspectId;
530
+ }
531
+ const allIds = configEnvs === null || configEnvs === void 0 ? void 0 : configEnvs.concat(ids).concat([aspectId, fullAspectId]).filter(Boolean);
532
+ const envs = await this.loadEnvs(allIds, remoteEnvsAspect);
491
533
  const templates = envs.flatMap(env => {
492
534
  if (!env.env.getGeneratorTemplates) return [];
493
535
  const tpls = env.env.getGeneratorTemplates() || [];
@@ -1 +1 @@
1
- {"version":3,"names":["GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","config","workspace","envs","aspectLoader","newComponentHelper","componentAspect","tracker","id","template","shouldBeHidden","hidden","hideCoreTemplates","isCoreAspect","aspectId","name","description","registerComponentTemplate","templates","register","registerWorkspaceTemplate","listTemplates","aspect","isRunningInsideWorkspace","getAllComponentTemplatesDescriptorsFlattened","getAllWorkspaceTemplatesDescriptorFlattened","listComponentTemplates","opts","Boolean","getComponentTemplateByAspect","get","getComponentTemplate","fromEnv","listEnvComponentTemplates","length","found","findTemplateByAspectIdAndName","getAllComponentTemplatesFlattened","find","findTemplateInGlobalScope","globalScopeHarmony","components","loadAspectsFromGlobalScope","remoteGenerator","GeneratorAspect","remoteEnvsAspect","EnvsAspect","fullAspectId","toString","fromGlobal","searchRegisteredWorkspaceTemplate","call","workspaceTemplate","findTemplateInOtherWorkspace","workspacePath","BitError","harmony","loadBit","WorkspaceAspect","err","Error","aspectComponentId","resolveComponentId","loadAspects","aspectComponent","aspectFullId","generator","getWorkspaceTemplate","registeredTemplate","listEnvWorkspaceTemplates","getAllWorkspaceTemplatesFlattened","tpl","generateComponentTemplate","componentNames","templateName","options","OutsideWorkspaceError","namespace","templateWithId","componentIds","map","componentName","getNewComponentId","scope","componentGenerator","ComponentGenerator","envName","ComponentID","fromString","undefined","generate","generateWorkspaceTemplate","workspaceName","loadFrom","workspaceGenerator","WorkspaceGenerator","appName","envTemplates","listEnvComponentTemplateDescriptors","filtered","filter","flattened","getTemplateDescriptor","templatesByAspects","toArray","flatMap","componentTemplates","workspaceTemplates","envId","loadEnvs","env","getGeneratorStarters","envStarters","starter","componentId","compact","ids","envTemplate","toStringWithoutVersion","titlePrefix","configEnvs","concat","getGeneratorTemplates","tpls","host","getHost","envsAspect","potentialEnvs","getEnvDefinition","aspectLoaded","aspects","provider","cli","graphql","community","commands","CreateCmd","getDocsDomain","TemplatesCmd","NewCmd","generatorSchema","registerPlugins","StarterPlugin","registerService","GeneratorService","componentGeneratorTemplate","starterTemplate","workspaceGeneratorTemplate","Slot","withType","CLIAspect","GraphqlAspect","AspectLoaderAspect","NewComponentHelperAspect","CommunityAspect","ComponentAspect","TrackerAspect","MainRuntime","addRuntime"],"sources":["generator.main.runtime.ts"],"sourcesContent":["import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { EnvDefinition, EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\n\nimport ComponentAspect, { ComponentID } from '@teambit/component';\nimport type { ComponentMain, Component } from '@teambit/component';\n\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 TrackerAspect, { TrackerMain } from '@teambit/tracker';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { compact } from 'lodash';\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';\nimport { starterTemplate } from './templates/starter';\nimport { StarterPlugin } from './starter.plugin';\nimport { GeneratorService } from './generator.service';\n\nexport type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;\nexport type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;\n\nexport type TemplateDescriptor = {\n aspectId: string;\n titlePrefix?: string;\n name: string;\n description?: string;\n hidden?: boolean;\n};\n\ntype TemplateWithId = { id: string; envName?: string };\ntype WorkspaceTemplateWithId = TemplateWithId & { template: WorkspaceTemplate };\ntype ComponentTemplateWithId = TemplateWithId & { template: ComponentTemplate };\ntype AnyTemplateWithId = TemplateWithId & { template: ComponentTemplate | WorkspaceTemplate };\n\nexport type GenerateWorkspaceTemplateResult = { workspacePath: string; appName?: string };\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 /**\n * default envs.\n */\n envs?: string[];\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 componentAspect: ComponentMain,\n private tracker: TrackerMain\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({ aspect }: { aspect?: string } = {}): Promise<TemplateDescriptor[]> {\n if (this.isRunningInsideWorkspace()) {\n return this.getAllComponentTemplatesDescriptorsFlattened(aspect);\n }\n return this.getAllWorkspaceTemplatesDescriptorFlattened(aspect);\n }\n\n private getTemplateDescriptor = ({ id, template }: AnyTemplateWithId): TemplateDescriptor => {\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\n /**\n * @deprecated use this.listTemplates()\n */\n async listComponentTemplates(opts: { aspect?: string }): Promise<TemplateDescriptor[]> {\n return this.listTemplates(opts);\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 async getComponentTemplate(name: string, aspectId?: string): Promise<ComponentTemplateWithId | undefined> {\n const fromEnv = await this.listEnvComponentTemplates();\n if (fromEnv && fromEnv.length) {\n const found = this.findTemplateByAspectIdAndName<ComponentTemplateWithId>(aspectId, name, fromEnv);\n if (found) return found;\n }\n // fallback to aspect id not from env if provided\n const templates = await this.getAllComponentTemplatesFlattened();\n const found = this.findTemplateByAspectIdAndName<ComponentTemplateWithId>(aspectId, name, templates);\n return found;\n }\n\n private findTemplateByAspectIdAndName<T>(\n aspectId: string | undefined,\n name: string,\n templates: Array<T>\n ): T | undefined {\n // @ts-ignore (should set T to be extends ComponentTemplateWithId or WorkspaceTemplateWithId)\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(\n aspectId: string,\n name?: string\n ): Promise<{ workspaceTemplate?: WorkspaceTemplate; aspect?: Component }> {\n const { globalScopeHarmony, components } = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const remoteGenerator = globalScopeHarmony.get<GeneratorMain>(GeneratorAspect.id);\n const remoteEnvsAspect = globalScopeHarmony.get<EnvsMain>(EnvsAspect.id);\n const aspect = components[0];\n const fullAspectId = aspect.id.toString();\n const fromGlobal = await remoteGenerator.searchRegisteredWorkspaceTemplate.call(\n remoteGenerator,\n name,\n fullAspectId,\n remoteEnvsAspect\n );\n return { workspaceTemplate: fromGlobal, aspect };\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 aspectComponent = await workspace.get(aspectComponentId);\n const aspectFullId = aspectComponentId.toString();\n const generator = harmony.get<GeneratorMain>(GeneratorAspect.id);\n const workspaceTemplate = await generator.searchRegisteredWorkspaceTemplate(name, aspectFullId);\n return { workspaceTemplate, aspect: aspectComponent };\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\n const { workspaceTemplate, aspect } = await this.findTemplateInGlobalScope(aspectId, name);\n if (workspaceTemplate) {\n return { workspaceTemplate, aspect };\n }\n throw new BitError(`template \"${name}\" was not found`);\n }\n\n async searchRegisteredWorkspaceTemplate(\n name?: string,\n aspectId?: string,\n remoteEnvsAspect?: EnvsMain\n ): Promise<WorkspaceTemplate | undefined> {\n let fromEnv;\n\n if (aspectId) {\n fromEnv = await this.listEnvWorkspaceTemplates(aspectId, remoteEnvsAspect);\n }\n const templates = fromEnv && fromEnv.length ? fromEnv : this.getAllWorkspaceTemplatesFlattened();\n const found = templates.find(({ id, template: tpl }) => {\n if (aspectId && name) return aspectId === id && name === tpl.name;\n if (aspectId) return aspectId === id;\n if (name) return name === tpl.name;\n throw new Error(`searchRegisteredWorkspaceTemplate expects to get \"name\" or \"aspectId\"`);\n });\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 OutsideWorkspaceError();\n await this.loadAspects();\n const { namespace, aspect: aspectId } = options;\n const templateWithId = await 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 this.tracker,\n templateWithId.id,\n templateWithId.envName ? ComponentID.fromString(templateWithId.id) : undefined\n );\n return componentGenerator.generate();\n }\n\n async generateWorkspaceTemplate(\n workspaceName: string,\n templateName: string,\n options: NewOptions\n ): Promise<GenerateWorkspaceTemplateResult> {\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 const { workspaceTemplate, aspect } = loadFrom\n ? await this.findTemplateInOtherWorkspace(loadFrom, templateName, aspectId)\n : await this.getWorkspaceTemplate(templateName, aspectId);\n\n if (!workspaceTemplate) throw new BitError(`template \"${templateName}\" was not found`);\n const workspaceGenerator = new WorkspaceGenerator(workspaceName, options, workspaceTemplate, aspect);\n const workspacePath = await workspaceGenerator.generate();\n\n return { workspacePath, appName: workspaceTemplate.appName };\n }\n\n private async getAllComponentTemplatesDescriptorsFlattened(aspectId?: string): Promise<Array<TemplateDescriptor>> {\n const envTemplates = await this.listEnvComponentTemplateDescriptors();\n if (envTemplates && envTemplates.length) {\n if (!aspectId) return envTemplates;\n const filtered = envTemplates.filter((template) => template.aspectId === aspectId);\n if (filtered.length) return filtered;\n }\n\n const flattened = this.getAllComponentTemplatesFlattened();\n const filtered = aspectId ? flattened.filter((template) => template.id === aspectId) : flattened;\n return filtered.map((template) => this.getTemplateDescriptor(template));\n }\n\n private getAllComponentTemplatesFlattened(): Array<{ id: string; template: ComponentTemplate }> {\n const templatesByAspects = this.componentTemplateSlot.toArray();\n const flattened = templatesByAspects.flatMap(([id, componentTemplates]) => {\n return componentTemplates.map((template) => ({\n id,\n template,\n }));\n });\n return flattened;\n }\n\n private async getAllWorkspaceTemplatesDescriptorFlattened(aspectId?: string): Promise<Array<TemplateDescriptor>> {\n let envTemplates;\n if (aspectId) {\n envTemplates = await this.listEnvWorkspaceTemplates(aspectId);\n }\n\n const templates = envTemplates && envTemplates.length ? envTemplates : this.getAllWorkspaceTemplatesFlattened();\n return templates.map((template) => this.getTemplateDescriptor(template));\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 /**\n * list all starter templates registered by an env.\n */\n async listEnvWorkspaceTemplates(envId: string, remoteEnvsAspect?: EnvsMain): Promise<Array<WorkspaceTemplateWithId>> {\n const envs = await this.loadEnvs([envId], remoteEnvsAspect);\n const workspaceTemplates = envs.flatMap((env) => {\n if (!env.env.getGeneratorStarters) return undefined;\n const envStarters = env.env.getGeneratorStarters();\n return envStarters.map((starter) => {\n const componentId = ComponentID.fromString(env.id);\n return {\n id: componentId.toString(),\n envName: env.name,\n template: starter,\n };\n });\n });\n\n return compact(workspaceTemplates);\n }\n\n /**\n * list all component templates registered by an env.\n */\n async listEnvComponentTemplateDescriptors(ids: string[] = []): Promise<TemplateDescriptor[]> {\n const envTemplates = await this.listEnvComponentTemplates(ids);\n const templates: TemplateDescriptor[] = envTemplates.map((envTemplate) => {\n const componentId = ComponentID.fromString(envTemplate.id);\n return {\n aspectId: componentId.toStringWithoutVersion(),\n titlePrefix: envTemplate.envName,\n ...envTemplate.template,\n };\n });\n\n return templates;\n }\n\n async listEnvComponentTemplates(ids: string[] = []): Promise<Array<ComponentTemplateWithId>> {\n const configEnvs = this.config.envs || [];\n const envs = await this.loadEnvs(configEnvs?.concat(ids));\n const templates = envs.flatMap((env) => {\n if (!env.env.getGeneratorTemplates) return [];\n const tpls = env.env.getGeneratorTemplates() || [];\n const componentId = ComponentID.fromString(env.id);\n return tpls.map((template) => {\n return {\n id: componentId.toString(),\n envName: env.name,\n template,\n };\n });\n });\n\n return templates;\n }\n\n async loadEnvs(ids: string[] = this.config.envs || [], remoteEnvsAspect?: EnvsMain): Promise<EnvDefinition[]> {\n // In case we have remoteEnvsAspect it means that we are running from the global scope\n // in that case the aspect / env were already loaded before to the global scope harmony instance\n // so no reason to load it here\n if (!remoteEnvsAspect) {\n const host = this.componentAspect.getHost();\n if (!host) return [];\n await host.loadAspects(ids);\n }\n\n const envsAspect = remoteEnvsAspect || this.envs;\n\n const potentialEnvs = ids.map((id) => {\n const componentId = ComponentID.fromString(id);\n return envsAspect.getEnvDefinition(componentId);\n });\n\n return compact(potentialEnvs);\n }\n\n 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 ComponentAspect,\n TrackerAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, componentAspect, tracker]: [\n Workspace,\n CLIMain,\n GraphqlMain,\n EnvsMain,\n AspectLoaderMain,\n NewComponentHelperMain,\n CommunityMain,\n ComponentMain,\n TrackerMain\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 componentAspect,\n tracker\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 aspectLoader.registerPlugins([new StarterPlugin(generator)]);\n envs.registerService(new GeneratorService());\n\n if (generator)\n generator.registerComponentTemplate([componentGeneratorTemplate, starterTemplate, workspaceGeneratorTemplate]);\n return generator;\n }\n}\n\nGeneratorAspect.addRuntime(GeneratorMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","config","workspace","envs","aspectLoader","newComponentHelper","componentAspect","tracker","id","template","shouldBeHidden","hidden","hideCoreTemplates","isCoreAspect","aspectId","name","description","registerComponentTemplate","templates","register","registerWorkspaceTemplate","listTemplates","aspect","isRunningInsideWorkspace","getAllComponentTemplatesDescriptorsFlattened","getAllWorkspaceTemplatesDescriptorFlattened","listComponentTemplates","opts","Boolean","getComponentTemplateByAspect","get","getComponentTemplate","fromEnv","listEnvComponentTemplates","length","found","findTemplateByAspectIdAndName","getAllComponentTemplatesFlattened","find","idWithoutVersion","split","getGlobalGeneratorEnvs","globalScopeHarmony","components","loadAspectsFromGlobalScope","remoteGenerator","GeneratorAspect","remoteEnvsAspect","EnvsAspect","fullAspectId","toString","findWorkspaceTemplateInGlobalScope","fromGlobal","searchRegisteredWorkspaceTemplate","call","workspaceTemplate","findTemplateInOtherWorkspace","workspacePath","BitError","harmony","loadBit","WorkspaceAspect","err","Error","aspectComponentId","resolveComponentId","loadAspects","aspectComponent","aspectFullId","generator","getWorkspaceTemplate","registeredTemplate","listEnvWorkspaceTemplates","getAllWorkspaceTemplatesFlattened","tpl","generateComponentTemplate","componentNames","templateName","options","OutsideWorkspaceError","namespace","componentConfigLoadingRegistry","ComponentConfig","templateWithId","componentIds","map","componentName","getNewComponentId","scope","componentGenerator","ComponentGenerator","envName","ComponentID","fromString","undefined","generate","generateWorkspaceTemplate","workspaceName","loadFrom","workspaceGenerator","WorkspaceGenerator","appName","envTemplates","listEnvComponentTemplateDescriptors","filtered","filter","flattened","getTemplateDescriptor","templatesByAspects","toArray","flatMap","componentTemplates","workspaceTemplates","envId","loadEnvs","env","getGeneratorStarters","envStarters","starter","componentId","compact","ids","envTemplate","toStringWithoutVersion","titlePrefix","configEnvs","includes","globals","allIds","concat","getGeneratorTemplates","tpls","host","getHost","envsAspect","potentialEnvs","getEnvDefinition","aspectLoaded","aspects","provider","cli","graphql","community","commands","CreateCmd","getDocsDomain","TemplatesCmd","NewCmd","generatorSchema","registerPlugins","StarterPlugin","registerService","GeneratorService","componentGeneratorTemplate","starterTemplate","workspaceGeneratorTemplate","Slot","withType","CLIAspect","GraphqlAspect","AspectLoaderAspect","NewComponentHelperAspect","CommunityAspect","ComponentAspect","TrackerAspect","MainRuntime","addRuntime"],"sources":["generator.main.runtime.ts"],"sourcesContent":["import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport WorkspaceAspect, { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { EnvDefinition, EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { CommunityAspect } from '@teambit/community';\nimport type { CommunityMain } from '@teambit/community';\nimport ComponentConfig from '@teambit/legacy/dist/consumer/config';\n\nimport ComponentAspect, { ComponentID } from '@teambit/component';\nimport type { ComponentMain, Component } from '@teambit/component';\n\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 TrackerAspect, { TrackerMain } from '@teambit/tracker';\nimport NewComponentHelperAspect, { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { compact } from 'lodash';\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';\nimport { starterTemplate } from './templates/starter';\nimport { StarterPlugin } from './starter.plugin';\nimport { GeneratorService } from './generator.service';\n\nexport type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[]>;\nexport type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;\n\nexport type TemplateDescriptor = {\n aspectId: string;\n titlePrefix?: string;\n name: string;\n description?: string;\n hidden?: boolean;\n};\n\ntype TemplateWithId = { id: string; envName?: string };\ntype WorkspaceTemplateWithId = TemplateWithId & { template: WorkspaceTemplate };\ntype ComponentTemplateWithId = TemplateWithId & { template: ComponentTemplate };\ntype AnyTemplateWithId = TemplateWithId & { template: ComponentTemplate | WorkspaceTemplate };\n\nexport type GenerateWorkspaceTemplateResult = { workspacePath: string; appName?: string };\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 /**\n * default envs.\n */\n envs?: string[];\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 componentAspect: ComponentMain,\n private tracker: TrackerMain\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({ aspect }: { aspect?: string } = {}): Promise<TemplateDescriptor[]> {\n if (this.isRunningInsideWorkspace()) {\n return this.getAllComponentTemplatesDescriptorsFlattened(aspect);\n }\n return this.getAllWorkspaceTemplatesDescriptorFlattened(aspect);\n }\n\n private getTemplateDescriptor = ({ id, template }: AnyTemplateWithId): TemplateDescriptor => {\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\n /**\n * @deprecated use this.listTemplates()\n */\n async listComponentTemplates(opts: { aspect?: string }): Promise<TemplateDescriptor[]> {\n return this.listTemplates(opts);\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 async getComponentTemplate(name: string, aspectId?: string): Promise<ComponentTemplateWithId | undefined> {\n const fromEnv = await this.listEnvComponentTemplates([], aspectId);\n if (fromEnv && fromEnv.length) {\n const found = this.findTemplateByAspectIdAndName<ComponentTemplateWithId>(aspectId, name, fromEnv);\n if (found) return found;\n }\n // fallback to aspect id not from env if provided\n const templates = await this.getAllComponentTemplatesFlattened();\n const found = this.findTemplateByAspectIdAndName<ComponentTemplateWithId>(aspectId, name, templates);\n return found;\n }\n\n private findTemplateByAspectIdAndName<T>(\n aspectId: string | undefined,\n name: string,\n templates: Array<T>\n ): T | undefined {\n // @ts-ignore (should set T to be extends ComponentTemplateWithId or WorkspaceTemplateWithId)\n const found = templates.find(({ id, template }) => {\n // When doing something like:\n // bit create react-env my-env --aspect teambit.react/react-env\n // we will get the aspectId without version\n // but the env might be loaded from the global scope then it will be with a version\n // so it won't found if we don't look for it like this\n const idWithoutVersion = id.split('@')[0];\n if (aspectId && id !== aspectId && idWithoutVersion !== aspectId) return false;\n return template.name === name;\n });\n return found;\n }\n\n /**\n * Get the generator aspect and the envs aspect from an harmony instance of the global scope\n */\n private async getGlobalGeneratorEnvs(\n aspectId: string\n ): Promise<{ remoteGenerator: GeneratorMain; fullAspectId: string; remoteEnvsAspect: EnvsMain; aspect: any }> {\n const { globalScopeHarmony, components } = await this.aspectLoader.loadAspectsFromGlobalScope([aspectId]);\n const remoteGenerator = globalScopeHarmony.get<GeneratorMain>(GeneratorAspect.id);\n const remoteEnvsAspect = globalScopeHarmony.get<EnvsMain>(EnvsAspect.id);\n const aspect = components[0];\n const fullAspectId = aspect.id.toString();\n return { remoteGenerator, fullAspectId, remoteEnvsAspect, aspect };\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 findWorkspaceTemplateInGlobalScope(\n aspectId: string,\n name?: string\n ): Promise<{ workspaceTemplate?: WorkspaceTemplate; aspect?: Component }> {\n const { remoteGenerator, fullAspectId, remoteEnvsAspect, aspect } = await this.getGlobalGeneratorEnvs(aspectId);\n const fromGlobal = await remoteGenerator.searchRegisteredWorkspaceTemplate.call(\n remoteGenerator,\n name,\n fullAspectId,\n remoteEnvsAspect\n );\n return { workspaceTemplate: fromGlobal, aspect };\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 aspectComponent = await workspace.get(aspectComponentId);\n const aspectFullId = aspectComponentId.toString();\n const generator = harmony.get<GeneratorMain>(GeneratorAspect.id);\n const workspaceTemplate = await generator.searchRegisteredWorkspaceTemplate(name, aspectFullId);\n return { workspaceTemplate, aspect: aspectComponent };\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\n const { workspaceTemplate, aspect } = await this.findWorkspaceTemplateInGlobalScope(aspectId, name);\n if (workspaceTemplate) {\n return { workspaceTemplate, aspect };\n }\n throw new BitError(`template \"${name}\" was not found`);\n }\n\n async searchRegisteredWorkspaceTemplate(\n name?: string,\n aspectId?: string,\n remoteEnvsAspect?: EnvsMain\n ): Promise<WorkspaceTemplate | undefined> {\n let fromEnv;\n\n if (aspectId) {\n fromEnv = await this.listEnvWorkspaceTemplates(aspectId, remoteEnvsAspect);\n }\n const templates = fromEnv && fromEnv.length ? fromEnv : this.getAllWorkspaceTemplatesFlattened();\n const found = templates.find(({ id, template: tpl }) => {\n if (aspectId && name) return aspectId === id && name === tpl.name;\n if (aspectId) return aspectId === id;\n if (name) return name === tpl.name;\n throw new Error(`searchRegisteredWorkspaceTemplate expects to get \"name\" or \"aspectId\"`);\n });\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 OutsideWorkspaceError();\n await this.loadAspects();\n const { namespace, aspect: aspectId } = options;\n\n const componentConfigLoadingRegistry = ComponentConfig.componentConfigLoadingRegistry;\n\n const templateWithId = await this.getComponentTemplate(templateName, aspectId);\n\n ComponentConfig.componentConfigLoadingRegistry = componentConfigLoadingRegistry;\n\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 this.tracker,\n templateWithId.id,\n templateWithId.envName ? ComponentID.fromString(templateWithId.id) : undefined\n );\n return componentGenerator.generate();\n }\n\n async generateWorkspaceTemplate(\n workspaceName: string,\n templateName: string,\n options: NewOptions\n ): Promise<GenerateWorkspaceTemplateResult> {\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 const { workspaceTemplate, aspect } = loadFrom\n ? await this.findTemplateInOtherWorkspace(loadFrom, templateName, aspectId)\n : await this.getWorkspaceTemplate(templateName, aspectId);\n\n if (!workspaceTemplate) throw new BitError(`template \"${templateName}\" was not found`);\n const workspaceGenerator = new WorkspaceGenerator(workspaceName, options, workspaceTemplate, aspect);\n const workspacePath = await workspaceGenerator.generate();\n\n return { workspacePath, appName: workspaceTemplate.appName };\n }\n\n private async getAllComponentTemplatesDescriptorsFlattened(aspectId?: string): Promise<Array<TemplateDescriptor>> {\n const envTemplates = await this.listEnvComponentTemplateDescriptors([], aspectId);\n if (envTemplates && envTemplates.length) {\n if (!aspectId) return envTemplates;\n const filtered = envTemplates.filter((template) => template.aspectId === aspectId);\n if (filtered.length) return filtered;\n }\n\n const flattened = this.getAllComponentTemplatesFlattened();\n const filtered = aspectId ? flattened.filter((template) => template.id === aspectId) : flattened;\n return filtered.map((template) => this.getTemplateDescriptor(template));\n }\n\n private getAllComponentTemplatesFlattened(): Array<{ id: string; template: ComponentTemplate }> {\n const templatesByAspects = this.componentTemplateSlot.toArray();\n const flattened = templatesByAspects.flatMap(([id, componentTemplates]) => {\n return componentTemplates.map((template) => ({\n id,\n template,\n }));\n });\n return flattened;\n }\n\n private async getAllWorkspaceTemplatesDescriptorFlattened(aspectId?: string): Promise<Array<TemplateDescriptor>> {\n let envTemplates;\n if (aspectId) {\n envTemplates = await this.listEnvWorkspaceTemplates(aspectId);\n }\n\n const templates = envTemplates && envTemplates.length ? envTemplates : this.getAllWorkspaceTemplatesFlattened();\n return templates.map((template) => this.getTemplateDescriptor(template));\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 /**\n * list all starter templates registered by an env.\n */\n async listEnvWorkspaceTemplates(envId: string, remoteEnvsAspect?: EnvsMain): Promise<Array<WorkspaceTemplateWithId>> {\n const envs = await this.loadEnvs([envId], remoteEnvsAspect);\n const workspaceTemplates = envs.flatMap((env) => {\n if (!env.env.getGeneratorStarters) return undefined;\n const envStarters = env.env.getGeneratorStarters();\n return envStarters.map((starter) => {\n const componentId = ComponentID.fromString(env.id);\n return {\n id: componentId.toString(),\n envName: env.name,\n template: starter,\n };\n });\n });\n\n return compact(workspaceTemplates);\n }\n\n /**\n * list all component templates registered by an env.\n */\n async listEnvComponentTemplateDescriptors(ids: string[] = [], aspectId?: string): Promise<TemplateDescriptor[]> {\n const envTemplates = await this.listEnvComponentTemplates(ids, aspectId);\n const templates: TemplateDescriptor[] = envTemplates.map((envTemplate) => {\n const componentId = ComponentID.fromString(envTemplate.id);\n return {\n aspectId: componentId.toStringWithoutVersion(),\n titlePrefix: envTemplate.envName,\n ...envTemplate.template,\n };\n });\n\n return templates;\n }\n\n async listEnvComponentTemplates(ids: string[] = [], aspectId?: string): Promise<Array<ComponentTemplateWithId>> {\n const configEnvs = this.config.envs || [];\n let remoteEnvsAspect;\n let fullAspectId;\n if (aspectId && !configEnvs.includes(aspectId)) {\n const globals = await this.getGlobalGeneratorEnvs(aspectId);\n remoteEnvsAspect = globals.remoteEnvsAspect;\n fullAspectId = globals.fullAspectId;\n }\n const allIds = configEnvs?.concat(ids).concat([aspectId, fullAspectId]).filter(Boolean);\n const envs = await this.loadEnvs(allIds, remoteEnvsAspect);\n const templates = envs.flatMap((env) => {\n if (!env.env.getGeneratorTemplates) return [];\n const tpls = env.env.getGeneratorTemplates() || [];\n const componentId = ComponentID.fromString(env.id);\n return tpls.map((template) => {\n return {\n id: componentId.toString(),\n envName: env.name,\n template,\n };\n });\n });\n\n return templates;\n }\n\n async loadEnvs(ids: string[] = this.config.envs || [], remoteEnvsAspect?: EnvsMain): Promise<EnvDefinition[]> {\n // In case we have remoteEnvsAspect it means that we are running from the global scope\n // in that case the aspect / env were already loaded before to the global scope harmony instance\n // so no reason to load it here\n if (!remoteEnvsAspect) {\n const host = this.componentAspect.getHost();\n if (!host) return [];\n await host.loadAspects(ids);\n }\n\n const envsAspect = remoteEnvsAspect || this.envs;\n\n const potentialEnvs = ids.map((id) => {\n const componentId = ComponentID.fromString(id);\n return envsAspect.getEnvDefinition(componentId);\n });\n\n return compact(potentialEnvs);\n }\n\n 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 ComponentAspect,\n TrackerAspect,\n ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, componentAspect, tracker]: [\n Workspace,\n CLIMain,\n GraphqlMain,\n EnvsMain,\n AspectLoaderMain,\n NewComponentHelperMain,\n CommunityMain,\n ComponentMain,\n TrackerMain\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 componentAspect,\n tracker\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 aspectLoader.registerPlugins([new StarterPlugin(generator)]);\n envs.registerService(new GeneratorService());\n\n if (generator)\n generator.registerComponentTemplate([componentGeneratorTemplate, starterTemplate, workspaceGeneratorTemplate]);\n return generator;\n }\n}\n\nGeneratorAspect.addRuntime(GeneratorMain);\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.1016/dist/generator.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.1016/dist/generator.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.1017/dist/generator.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.1017/dist/generator.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/generator",
3
- "version": "0.0.1016",
3
+ "version": "0.0.1017",
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.1016"
9
+ "version": "0.0.1017"
10
10
  },
11
11
  "dependencies": {
12
12
  "camelcase": "6.2.0",
@@ -22,22 +22,22 @@
22
22
  "@teambit/harmony": "0.4.6",
23
23
  "@teambit/bit-error": "0.0.402",
24
24
  "@teambit/component-id": "0.0.427",
25
- "@teambit/envs": "0.0.1016",
26
- "@teambit/new-component-helper": "0.0.420",
27
- "@teambit/tracker": "0.0.47",
28
- "@teambit/workspace": "0.0.1016",
29
- "@teambit/cli": "0.0.680",
30
- "@teambit/graphql": "0.0.1016",
31
- "@teambit/aspect-loader": "0.0.1016",
32
- "@teambit/bit": "0.1.3",
33
- "@teambit/community": "0.0.228",
34
- "@teambit/component": "0.0.1016",
35
- "@teambit/compiler": "0.0.1016",
36
- "@teambit/forking": "0.0.420",
37
- "@teambit/importer": "0.0.445",
38
- "@teambit/install": "0.0.131",
39
- "@teambit/logger": "0.0.773",
40
- "@teambit/ui": "0.0.1016"
25
+ "@teambit/envs": "0.0.1017",
26
+ "@teambit/new-component-helper": "0.0.421",
27
+ "@teambit/tracker": "0.0.48",
28
+ "@teambit/workspace": "0.0.1017",
29
+ "@teambit/cli": "0.0.681",
30
+ "@teambit/graphql": "0.0.1017",
31
+ "@teambit/aspect-loader": "0.0.1017",
32
+ "@teambit/bit": "0.1.4",
33
+ "@teambit/community": "0.0.229",
34
+ "@teambit/component": "0.0.1017",
35
+ "@teambit/compiler": "0.0.1017",
36
+ "@teambit/forking": "0.0.421",
37
+ "@teambit/importer": "0.0.446",
38
+ "@teambit/install": "0.0.132",
39
+ "@teambit/logger": "0.0.774",
40
+ "@teambit/ui": "0.0.1017"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/fs-extra": "9.0.7",
@@ -51,7 +51,7 @@
51
51
  "@teambit/generator.aspect-docs.generator": "0.0.155"
52
52
  },
53
53
  "peerDependencies": {
54
- "@teambit/legacy": "1.0.459",
54
+ "@teambit/legacy": "1.0.460",
55
55
  "react": "^16.8.0 || ^17.0.0",
56
56
  "react-dom": "^16.8.0 || ^17.0.0"
57
57
  },