@teambit/generator 0.0.703 → 0.0.704
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.
- package/dist/generator.main.runtime.d.ts +6 -3
- package/dist/generator.main.runtime.js +15 -4
- package/dist/generator.main.runtime.js.map +1 -1
- package/dist/workspace-generator.d.ts +3 -1
- package/dist/workspace-generator.js +43 -7
- package/dist/workspace-generator.js.map +1 -1
- package/dist/workspace-template.d.ts +28 -3
- package/package-tar/teambit-generator-0.0.704.tgz +0 -0
- package/package.json +19 -18
- package/{preview-1649301819971.js → preview-1649388249695.js} +2 -2
- package/package-tar/teambit-generator-0.0.703.tgz +0 -0
|
@@ -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":"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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 { 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
|
|
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.
|
|
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
|
|
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
|
|
302
|
-
if (!
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
-
|
|
92
|
+
fork?: () => ForkComponentInfo[];
|
|
68
93
|
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/generator",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.704",
|
|
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.
|
|
9
|
+
"version": "0.0.704"
|
|
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.
|
|
27
|
-
"@teambit/new-component-helper": "0.0.
|
|
28
|
-
"@teambit/workspace": "0.0.
|
|
29
|
-
"@teambit/cli": "0.0.
|
|
30
|
-
"@teambit/graphql": "0.0.
|
|
31
|
-
"@teambit/aspect-loader": "0.0.
|
|
32
|
-
"@teambit/bit": "0.0.
|
|
33
|
-
"@teambit/community": "0.0.
|
|
34
|
-
"@teambit/component": "0.0.
|
|
35
|
-
"@teambit/
|
|
36
|
-
"@teambit/
|
|
26
|
+
"@teambit/envs": "0.0.704",
|
|
27
|
+
"@teambit/new-component-helper": "0.0.108",
|
|
28
|
+
"@teambit/workspace": "0.0.704",
|
|
29
|
+
"@teambit/cli": "0.0.468",
|
|
30
|
+
"@teambit/graphql": "0.0.704",
|
|
31
|
+
"@teambit/aspect-loader": "0.0.704",
|
|
32
|
+
"@teambit/bit": "0.0.706",
|
|
33
|
+
"@teambit/community": "0.0.16",
|
|
34
|
+
"@teambit/component": "0.0.704",
|
|
35
|
+
"@teambit/importer": "0.0.133",
|
|
36
|
+
"@teambit/compiler": "0.0.704",
|
|
37
|
+
"@teambit/dependency-resolver": "0.0.704",
|
|
37
38
|
"@teambit/legacy-bit-id": "0.0.399",
|
|
38
|
-
"@teambit/logger": "0.0.
|
|
39
|
-
"@teambit/pkg": "0.0.
|
|
40
|
-
"@teambit/ui": "0.0.
|
|
39
|
+
"@teambit/logger": "0.0.560",
|
|
40
|
+
"@teambit/pkg": "0.0.704",
|
|
41
|
+
"@teambit/ui": "0.0.704"
|
|
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.
|
|
55
|
+
"@teambit/legacy": "1.0.246",
|
|
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.
|
|
83
|
+
"@teambit/legacy": "1.0.246",
|
|
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.
|
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.
|
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.704/dist/generator.composition.js')]
|
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.704/dist/generator.docs.mdx')]
|
|
Binary file
|