@teambit/generator 0.0.970 → 0.0.971
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/component-generator.d.ts +3 -1
- package/dist/component-generator.js +3 -2
- package/dist/component-generator.js.map +1 -1
- package/dist/generator.main.runtime.d.ts +6 -3
- package/dist/generator.main.runtime.js +14 -6
- package/dist/generator.main.runtime.js.map +1 -1
- package/dist/{preview-1674756945628.js → preview-1675083688288.js} +2 -2
- package/dist/templates/component-generator/files/main-runtime.js +1 -1
- package/dist/templates/component-generator/files/main-runtime.js.map +1 -1
- package/package-tar/teambit-generator-0.0.971.tgz +0 -0
- package/package.json +19 -18
- package/templates/component-generator/files/main-runtime.ts +1 -1
- package/package-tar/teambit-generator-0.0.970.tgz +0 -0
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Workspace } from '@teambit/workspace';
|
2
2
|
import { EnvsMain } from '@teambit/envs';
|
3
|
+
import { TrackerMain } from '@teambit/tracker';
|
3
4
|
import { NewComponentHelperMain } from '@teambit/new-component-helper';
|
4
5
|
import { ComponentID } from '@teambit/component-id';
|
5
6
|
import { ComponentTemplate } from './component-template';
|
@@ -19,9 +20,10 @@ export declare class ComponentGenerator {
|
|
19
20
|
private template;
|
20
21
|
private envs;
|
21
22
|
private newComponentHelper;
|
23
|
+
private tracker;
|
22
24
|
private aspectId;
|
23
25
|
private envId?;
|
24
|
-
constructor(workspace: Workspace, componentIds: ComponentID[], options: CreateOptions, template: ComponentTemplate, envs: EnvsMain, newComponentHelper: NewComponentHelperMain, aspectId: string, envId?: ComponentID | undefined);
|
26
|
+
constructor(workspace: Workspace, componentIds: ComponentID[], options: CreateOptions, template: ComponentTemplate, envs: EnvsMain, newComponentHelper: NewComponentHelperMain, tracker: TrackerMain, aspectId: string, envId?: ComponentID | undefined);
|
25
27
|
generate(): Promise<GenerateResult[]>;
|
26
28
|
private deleteGeneratedComponents;
|
27
29
|
private generateOneComponent;
|
@@ -85,13 +85,14 @@ function _componentId() {
|
|
85
85
|
return data;
|
86
86
|
}
|
87
87
|
class ComponentGenerator {
|
88
|
-
constructor(workspace, componentIds, options, template, envs, newComponentHelper, aspectId, envId) {
|
88
|
+
constructor(workspace, componentIds, options, template, envs, newComponentHelper, tracker, aspectId, envId) {
|
89
89
|
this.workspace = workspace;
|
90
90
|
this.componentIds = componentIds;
|
91
91
|
this.options = options;
|
92
92
|
this.template = template;
|
93
93
|
this.envs = envs;
|
94
94
|
this.newComponentHelper = newComponentHelper;
|
95
|
+
this.tracker = tracker;
|
95
96
|
this.aspectId = aspectId;
|
96
97
|
this.envId = envId;
|
97
98
|
}
|
@@ -147,7 +148,7 @@ class ComponentGenerator {
|
|
147
148
|
});
|
148
149
|
const mainFile = files.find(file => file.isMain);
|
149
150
|
await this.writeComponentFiles(componentPath, files);
|
150
|
-
const addResults = await this.
|
151
|
+
const addResults = await this.tracker.track({
|
151
152
|
rootDir: componentPath,
|
152
153
|
mainFile: mainFile === null || mainFile === void 0 ? void 0 : mainFile.relativePath,
|
153
154
|
componentName: componentId.fullName,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["ComponentGenerator","constructor","workspace","componentIds","options","template","envs","newComponentHelper","aspectId","envId","generate","dirsToDeleteIfFailed","generateResults","pMapSeries","componentId","componentPath","getNewComponentPath","path","fs","existsSync","join","BitError","hasName","fullName","push","generateOneComponent","err","deleteGeneratedComponents","bitMap","write","dirs","Promise","all","map","dir","absoluteDir","remove","code","name","namePascalCase","camelcase","pascalCase","nameCamelCase","ComponentID","fromString","files","generateFiles","mainFile","find","file","isMain","writeComponentFiles","addResults","track","rootDir","relativePath","componentName","defaultScope","scope","triggerOnMultipleComponentsAdd","component","get","hasEnvConfiguredOriginally","hasEnvConfigured","envBeforeConfigChanges","getEnv","config","boundConfig","bind","toString","env","toStringWithoutVersion","templateEnv","EnvsAspect","id","Object","keys","length","undefined","configWithEnv","addEnvIfProvidedByFlag","setEntireConfig","getEnvData","envFromFlag","envFromTemplate","setBy","packageName","componentIdToPackageName","state","_consumer","envSetBy","userEnv","userEnvId","resolveComponentId","userEnvIdWithPotentialVersion","resolveEnvIdWithPotentialVersionForConfig","templateFiles","dataToPersist","DataToPersist","vinylFiles","templateFile","templateFileVinyl","Vinyl","base","contents","Buffer","from","content","AbstractVinyl","fromVinyl","results","v","addManyFiles","addBasePath","persistAllToFS"],"sources":["component-generator.ts"],"sourcesContent":["import Vinyl from 'vinyl';\nimport fs from 'fs-extra';\nimport pMapSeries from 'p-map-series';\nimport path from 'path';\nimport { Workspace } from '@teambit/workspace';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport camelcase from 'camelcase';\nimport { BitError } from '@teambit/bit-error';\nimport { PathOsBasedRelative } from '@teambit/legacy/dist/utils/path';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ComponentID } from '@teambit/component-id';\nimport { ComponentTemplate, ComponentFile, ComponentConfig } from './component-template';\nimport { CreateOptions } from './create.cmd';\n\nexport type GenerateResult = {\n id: ComponentID;\n dir: string;\n files: string[];\n envId: string;\n envSetBy: string;\n packageName: string;\n};\n\nexport class ComponentGenerator {\n constructor(\n private workspace: Workspace,\n private componentIds: ComponentID[],\n private options: CreateOptions,\n private template: ComponentTemplate,\n private envs: EnvsMain,\n private newComponentHelper: NewComponentHelperMain,\n private aspectId: string,\n private envId?: ComponentID\n ) {}\n\n async generate(): Promise<GenerateResult[]> {\n const dirsToDeleteIfFailed: string[] = [];\n const generateResults = await pMapSeries(this.componentIds, async (componentId) => {\n try {\n const componentPath = this.newComponentHelper.getNewComponentPath(componentId, this.options.path);\n if (fs.existsSync(path.join(this.workspace.path, componentPath))) {\n throw new BitError(`unable to create a component at \"${componentPath}\", this path already exist`);\n }\n if (await this.workspace.hasName(componentId.fullName)) {\n throw new BitError(\n `unable to create a component \"${componentId.fullName}\", a component with the same name already exist`\n );\n }\n dirsToDeleteIfFailed.push(componentPath);\n return await this.generateOneComponent(componentId, componentPath);\n } catch (err: any) {\n await this.deleteGeneratedComponents(dirsToDeleteIfFailed);\n throw err;\n }\n });\n\n await this.workspace.bitMap.write();\n\n return generateResults;\n }\n\n private async deleteGeneratedComponents(dirs: string[]) {\n await Promise.all(\n dirs.map(async (dir) => {\n const absoluteDir = path.join(this.workspace.path, dir);\n try {\n await fs.remove(absoluteDir);\n } catch (err: any) {\n if (err.code !== 'ENOENT') {\n // if not exist, it's fine\n throw err;\n }\n }\n })\n );\n }\n\n private async generateOneComponent(componentId: ComponentID, componentPath: string): Promise<GenerateResult> {\n const name = componentId.name;\n const namePascalCase = camelcase(name, { pascalCase: true });\n const nameCamelCase = camelcase(name);\n const aspectId = ComponentID.fromString(this.aspectId);\n\n const files = this.template.generateFiles({\n name,\n namePascalCase,\n nameCamelCase,\n componentId,\n aspectId,\n envId: this.envId,\n });\n const mainFile = files.find((file) => file.isMain);\n await this.writeComponentFiles(componentPath, files);\n const addResults = await this.workspace.track({\n rootDir: componentPath,\n mainFile: mainFile?.relativePath,\n componentName: componentId.fullName,\n defaultScope: this.options.scope,\n });\n await this.workspace.triggerOnMultipleComponentsAdd();\n const component = await this.workspace.get(componentId);\n const hasEnvConfiguredOriginally = this.envs.hasEnvConfigured(component);\n const envBeforeConfigChanges = this.envs.getEnv(component);\n let config = this.template.config;\n if (config && typeof config === 'function') {\n const boundConfig = this.template.config?.bind(this.template);\n config = boundConfig({ aspectId: this.aspectId });\n }\n\n if (!config && this.envId) {\n config = {\n [this.envId.toString()]: {},\n 'teambit.envs/envs': {\n env: this.envId.toStringWithoutVersion(),\n },\n };\n }\n\n const templateEnv = config?.[EnvsAspect.id]?.env;\n\n if (config && templateEnv && hasEnvConfiguredOriginally) {\n // remove the env we got from the template.\n delete config[templateEnv];\n delete config[EnvsAspect.id].env;\n if (Object.keys(config[EnvsAspect.id]).length === 0) delete config[EnvsAspect.id];\n if (Object.keys(config).length === 0) config = undefined;\n }\n\n const configWithEnv = await this.addEnvIfProvidedByFlag(config);\n if (configWithEnv) this.workspace.bitMap.setEntireConfig(component.id, configWithEnv);\n\n const getEnvData = () => {\n const envFromFlag = this.options.env; // env entered by the user when running `bit create --env`\n const envFromTemplate = config?.[EnvsAspect.id]?.env;\n if (envFromFlag) {\n return {\n envId: envFromFlag,\n setBy: '--env flag',\n };\n }\n if (envFromTemplate) {\n return {\n envId: envFromTemplate,\n setBy: 'template',\n };\n }\n return {\n envId: envBeforeConfigChanges.id,\n setBy: hasEnvConfiguredOriginally ? 'workspace variants' : '<default>',\n };\n };\n const { envId, setBy } = getEnvData();\n return {\n id: componentId,\n dir: componentPath,\n files: addResults.files,\n packageName: componentIdToPackageName(component.state._consumer),\n envId,\n envSetBy: setBy,\n };\n }\n\n private async addEnvIfProvidedByFlag(config?: ComponentConfig): Promise<ComponentConfig | undefined> {\n const userEnv = this.options.env; // env entered by the user when running `bit create --env`\n const templateEnv = config?.[EnvsAspect.id]?.env;\n if (!userEnv || userEnv === templateEnv) {\n return config;\n }\n config = config || {};\n if (templateEnv) {\n // the component template has an env and the user wants a different env.\n delete config[templateEnv];\n }\n const userEnvId = await this.workspace.resolveComponentId(userEnv);\n const userEnvIdWithPotentialVersion = await this.workspace.resolveEnvIdWithPotentialVersionForConfig(userEnvId);\n config[userEnvIdWithPotentialVersion] = {};\n config[EnvsAspect.id] = config[EnvsAspect.id] || {};\n config[EnvsAspect.id].env = userEnvId.toStringWithoutVersion();\n return config;\n }\n\n /**\n * writes the generated template files to the default directory set in the workspace config\n */\n private async writeComponentFiles(\n componentPath: string,\n templateFiles: ComponentFile[]\n ): Promise<PathOsBasedRelative[]> {\n const dataToPersist = new DataToPersist();\n const vinylFiles = templateFiles.map((templateFile) => {\n const templateFileVinyl = new Vinyl({\n base: componentPath,\n path: path.join(componentPath, templateFile.relativePath),\n contents: Buffer.from(templateFile.content),\n });\n return AbstractVinyl.fromVinyl(templateFileVinyl);\n });\n const results = vinylFiles.map((v) => v.path);\n dataToPersist.addManyFiles(vinylFiles);\n dataToPersist.addBasePath(this.workspace.path);\n await dataToPersist.persistAllToFS();\n return results;\n }\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["ComponentGenerator","constructor","workspace","componentIds","options","template","envs","newComponentHelper","tracker","aspectId","envId","generate","dirsToDeleteIfFailed","generateResults","pMapSeries","componentId","componentPath","getNewComponentPath","path","fs","existsSync","join","BitError","hasName","fullName","push","generateOneComponent","err","deleteGeneratedComponents","bitMap","write","dirs","Promise","all","map","dir","absoluteDir","remove","code","name","namePascalCase","camelcase","pascalCase","nameCamelCase","ComponentID","fromString","files","generateFiles","mainFile","find","file","isMain","writeComponentFiles","addResults","track","rootDir","relativePath","componentName","defaultScope","scope","triggerOnMultipleComponentsAdd","component","get","hasEnvConfiguredOriginally","hasEnvConfigured","envBeforeConfigChanges","getEnv","config","boundConfig","bind","toString","env","toStringWithoutVersion","templateEnv","EnvsAspect","id","Object","keys","length","undefined","configWithEnv","addEnvIfProvidedByFlag","setEntireConfig","getEnvData","envFromFlag","envFromTemplate","setBy","packageName","componentIdToPackageName","state","_consumer","envSetBy","userEnv","userEnvId","resolveComponentId","userEnvIdWithPotentialVersion","resolveEnvIdWithPotentialVersionForConfig","templateFiles","dataToPersist","DataToPersist","vinylFiles","templateFile","templateFileVinyl","Vinyl","base","contents","Buffer","from","content","AbstractVinyl","fromVinyl","results","v","addManyFiles","addBasePath","persistAllToFS"],"sources":["component-generator.ts"],"sourcesContent":["import Vinyl from 'vinyl';\nimport fs from 'fs-extra';\nimport pMapSeries from 'p-map-series';\nimport path from 'path';\nimport { Workspace } from '@teambit/workspace';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport camelcase from 'camelcase';\nimport { BitError } from '@teambit/bit-error';\nimport { TrackerMain } from '@teambit/tracker';\nimport { PathOsBasedRelative } from '@teambit/legacy/dist/utils/path';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport DataToPersist from '@teambit/legacy/dist/consumer/component/sources/data-to-persist';\nimport { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ComponentID } from '@teambit/component-id';\nimport { ComponentTemplate, ComponentFile, ComponentConfig } from './component-template';\nimport { CreateOptions } from './create.cmd';\n\nexport type GenerateResult = {\n id: ComponentID;\n dir: string;\n files: string[];\n envId: string;\n envSetBy: string;\n packageName: string;\n};\n\nexport class ComponentGenerator {\n constructor(\n private workspace: Workspace,\n private componentIds: ComponentID[],\n private options: CreateOptions,\n private template: ComponentTemplate,\n private envs: EnvsMain,\n private newComponentHelper: NewComponentHelperMain,\n private tracker: TrackerMain,\n private aspectId: string,\n private envId?: ComponentID\n ) {}\n\n async generate(): Promise<GenerateResult[]> {\n const dirsToDeleteIfFailed: string[] = [];\n const generateResults = await pMapSeries(this.componentIds, async (componentId) => {\n try {\n const componentPath = this.newComponentHelper.getNewComponentPath(componentId, this.options.path);\n if (fs.existsSync(path.join(this.workspace.path, componentPath))) {\n throw new BitError(`unable to create a component at \"${componentPath}\", this path already exist`);\n }\n if (await this.workspace.hasName(componentId.fullName)) {\n throw new BitError(\n `unable to create a component \"${componentId.fullName}\", a component with the same name already exist`\n );\n }\n dirsToDeleteIfFailed.push(componentPath);\n return await this.generateOneComponent(componentId, componentPath);\n } catch (err: any) {\n await this.deleteGeneratedComponents(dirsToDeleteIfFailed);\n throw err;\n }\n });\n\n await this.workspace.bitMap.write();\n\n return generateResults;\n }\n\n private async deleteGeneratedComponents(dirs: string[]) {\n await Promise.all(\n dirs.map(async (dir) => {\n const absoluteDir = path.join(this.workspace.path, dir);\n try {\n await fs.remove(absoluteDir);\n } catch (err: any) {\n if (err.code !== 'ENOENT') {\n // if not exist, it's fine\n throw err;\n }\n }\n })\n );\n }\n\n private async generateOneComponent(componentId: ComponentID, componentPath: string): Promise<GenerateResult> {\n const name = componentId.name;\n const namePascalCase = camelcase(name, { pascalCase: true });\n const nameCamelCase = camelcase(name);\n const aspectId = ComponentID.fromString(this.aspectId);\n\n const files = this.template.generateFiles({\n name,\n namePascalCase,\n nameCamelCase,\n componentId,\n aspectId,\n envId: this.envId,\n });\n const mainFile = files.find((file) => file.isMain);\n await this.writeComponentFiles(componentPath, files);\n const addResults = await this.tracker.track({\n rootDir: componentPath,\n mainFile: mainFile?.relativePath,\n componentName: componentId.fullName,\n defaultScope: this.options.scope,\n });\n await this.workspace.triggerOnMultipleComponentsAdd();\n const component = await this.workspace.get(componentId);\n const hasEnvConfiguredOriginally = this.envs.hasEnvConfigured(component);\n const envBeforeConfigChanges = this.envs.getEnv(component);\n let config = this.template.config;\n if (config && typeof config === 'function') {\n const boundConfig = this.template.config?.bind(this.template);\n config = boundConfig({ aspectId: this.aspectId });\n }\n\n if (!config && this.envId) {\n config = {\n [this.envId.toString()]: {},\n 'teambit.envs/envs': {\n env: this.envId.toStringWithoutVersion(),\n },\n };\n }\n\n const templateEnv = config?.[EnvsAspect.id]?.env;\n\n if (config && templateEnv && hasEnvConfiguredOriginally) {\n // remove the env we got from the template.\n delete config[templateEnv];\n delete config[EnvsAspect.id].env;\n if (Object.keys(config[EnvsAspect.id]).length === 0) delete config[EnvsAspect.id];\n if (Object.keys(config).length === 0) config = undefined;\n }\n\n const configWithEnv = await this.addEnvIfProvidedByFlag(config);\n if (configWithEnv) this.workspace.bitMap.setEntireConfig(component.id, configWithEnv);\n\n const getEnvData = () => {\n const envFromFlag = this.options.env; // env entered by the user when running `bit create --env`\n const envFromTemplate = config?.[EnvsAspect.id]?.env;\n if (envFromFlag) {\n return {\n envId: envFromFlag,\n setBy: '--env flag',\n };\n }\n if (envFromTemplate) {\n return {\n envId: envFromTemplate,\n setBy: 'template',\n };\n }\n return {\n envId: envBeforeConfigChanges.id,\n setBy: hasEnvConfiguredOriginally ? 'workspace variants' : '<default>',\n };\n };\n const { envId, setBy } = getEnvData();\n return {\n id: componentId,\n dir: componentPath,\n files: addResults.files,\n packageName: componentIdToPackageName(component.state._consumer),\n envId,\n envSetBy: setBy,\n };\n }\n\n private async addEnvIfProvidedByFlag(config?: ComponentConfig): Promise<ComponentConfig | undefined> {\n const userEnv = this.options.env; // env entered by the user when running `bit create --env`\n const templateEnv = config?.[EnvsAspect.id]?.env;\n if (!userEnv || userEnv === templateEnv) {\n return config;\n }\n config = config || {};\n if (templateEnv) {\n // the component template has an env and the user wants a different env.\n delete config[templateEnv];\n }\n const userEnvId = await this.workspace.resolveComponentId(userEnv);\n const userEnvIdWithPotentialVersion = await this.workspace.resolveEnvIdWithPotentialVersionForConfig(userEnvId);\n config[userEnvIdWithPotentialVersion] = {};\n config[EnvsAspect.id] = config[EnvsAspect.id] || {};\n config[EnvsAspect.id].env = userEnvId.toStringWithoutVersion();\n return config;\n }\n\n /**\n * writes the generated template files to the default directory set in the workspace config\n */\n private async writeComponentFiles(\n componentPath: string,\n templateFiles: ComponentFile[]\n ): Promise<PathOsBasedRelative[]> {\n const dataToPersist = new DataToPersist();\n const vinylFiles = templateFiles.map((templateFile) => {\n const templateFileVinyl = new Vinyl({\n base: componentPath,\n path: path.join(componentPath, templateFile.relativePath),\n contents: Buffer.from(templateFile.content),\n });\n return AbstractVinyl.fromVinyl(templateFileVinyl);\n });\n const results = vinylFiles.map((v) => v.path);\n dataToPersist.addManyFiles(vinylFiles);\n dataToPersist.addBasePath(this.workspace.path);\n await dataToPersist.persistAllToFS();\n return results;\n }\n}\n"],"mappings":"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"}
|
@@ -6,6 +6,7 @@ import type { CommunityMain } from '@teambit/community';
|
|
6
6
|
import type { ComponentMain, Component } from '@teambit/component';
|
7
7
|
import { SlotRegistry } from '@teambit/harmony';
|
8
8
|
import { AspectLoaderMain } from '@teambit/aspect-loader';
|
9
|
+
import { TrackerMain } from '@teambit/tracker';
|
9
10
|
import { NewComponentHelperMain } from '@teambit/new-component-helper';
|
10
11
|
import { ComponentTemplate } from './component-template';
|
11
12
|
import { CreateOptions } from './create.cmd';
|
@@ -59,8 +60,9 @@ export declare class GeneratorMain {
|
|
59
60
|
private aspectLoader;
|
60
61
|
private newComponentHelper;
|
61
62
|
private componentAspect;
|
63
|
+
private tracker;
|
62
64
|
private aspectLoaded;
|
63
|
-
constructor(componentTemplateSlot: ComponentTemplateSlot, workspaceTemplateSlot: WorkspaceTemplateSlot, config: GeneratorConfig, workspace: Workspace, envs: EnvsMain, aspectLoader: AspectLoaderMain, newComponentHelper: NewComponentHelperMain, componentAspect: ComponentMain);
|
65
|
+
constructor(componentTemplateSlot: ComponentTemplateSlot, workspaceTemplateSlot: WorkspaceTemplateSlot, config: GeneratorConfig, workspace: Workspace, envs: EnvsMain, aspectLoader: AspectLoaderMain, newComponentHelper: NewComponentHelperMain, componentAspect: ComponentMain, tracker: TrackerMain);
|
64
66
|
/**
|
65
67
|
* register a new component template.
|
66
68
|
*/
|
@@ -133,7 +135,7 @@ export declare class GeneratorMain {
|
|
133
135
|
static slots: (((registerFn: () => string) => SlotRegistry<ComponentTemplate[]>) | ((registerFn: () => string) => SlotRegistry<WorkspaceTemplate[]>))[];
|
134
136
|
static dependencies: import("@teambit/bit").Aspect[];
|
135
137
|
static runtime: import("@teambit/bit").RuntimeDefinition;
|
136
|
-
static provider([workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, componentAspect]: [
|
138
|
+
static provider([workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, componentAspect, tracker]: [
|
137
139
|
Workspace,
|
138
140
|
CLIMain,
|
139
141
|
GraphqlMain,
|
@@ -141,7 +143,8 @@ export declare class GeneratorMain {
|
|
141
143
|
AspectLoaderMain,
|
142
144
|
NewComponentHelperMain,
|
143
145
|
CommunityMain,
|
144
|
-
ComponentMain
|
146
|
+
ComponentMain,
|
147
|
+
TrackerMain
|
145
148
|
], config: GeneratorConfig, [componentTemplateSlot, workspaceTemplateSlot]: [ComponentTemplateSlot, WorkspaceTemplateSlot]): Promise<GeneratorMain>;
|
146
149
|
}
|
147
150
|
export {};
|
@@ -87,6 +87,13 @@ function _aspectLoader() {
|
|
87
87
|
};
|
88
88
|
return data;
|
89
89
|
}
|
90
|
+
function _tracker() {
|
91
|
+
const data = _interopRequireDefault(require("@teambit/tracker"));
|
92
|
+
_tracker = function () {
|
93
|
+
return data;
|
94
|
+
};
|
95
|
+
return data;
|
96
|
+
}
|
90
97
|
function _newComponentHelper() {
|
91
98
|
const data = _interopRequireDefault(require("@teambit/new-component-helper"));
|
92
99
|
_newComponentHelper = function () {
|
@@ -190,7 +197,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
190
197
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
191
198
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
192
199
|
class GeneratorMain {
|
193
|
-
constructor(componentTemplateSlot, workspaceTemplateSlot, config, workspace, envs, aspectLoader, newComponentHelper, componentAspect) {
|
200
|
+
constructor(componentTemplateSlot, workspaceTemplateSlot, config, workspace, envs, aspectLoader, newComponentHelper, componentAspect, tracker) {
|
194
201
|
this.componentTemplateSlot = componentTemplateSlot;
|
195
202
|
this.workspaceTemplateSlot = workspaceTemplateSlot;
|
196
203
|
this.config = config;
|
@@ -199,6 +206,7 @@ class GeneratorMain {
|
|
199
206
|
this.aspectLoader = aspectLoader;
|
200
207
|
this.newComponentHelper = newComponentHelper;
|
201
208
|
this.componentAspect = componentAspect;
|
209
|
+
this.tracker = tracker;
|
202
210
|
(0, _defineProperty2().default)(this, "aspectLoaded", false);
|
203
211
|
(0, _defineProperty2().default)(this, "getTemplateDescriptor", ({
|
204
212
|
id,
|
@@ -381,7 +389,7 @@ class GeneratorMain {
|
|
381
389
|
const templateWithId = await this.getComponentTemplate(templateName, aspectId);
|
382
390
|
if (!templateWithId) throw new (_bitError().BitError)(`template "${templateName}" was not found`);
|
383
391
|
const componentIds = componentNames.map(componentName => this.newComponentHelper.getNewComponentId(componentName, namespace, options.scope));
|
384
|
-
const componentGenerator = new (_componentGenerator().ComponentGenerator)(this.workspace, componentIds, options, templateWithId.template, this.envs, this.newComponentHelper, templateWithId.id, templateWithId.envName ? _component().ComponentID.fromString(templateWithId.id) : undefined);
|
392
|
+
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);
|
385
393
|
return componentGenerator.generate();
|
386
394
|
}
|
387
395
|
async generateWorkspaceTemplate(workspaceName, templateName, options) {
|
@@ -515,20 +523,20 @@ class GeneratorMain {
|
|
515
523
|
await this.workspace.loadAspects(this.config.aspects);
|
516
524
|
this.aspectLoaded = true;
|
517
525
|
}
|
518
|
-
static async provider([workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, componentAspect], config, [componentTemplateSlot, workspaceTemplateSlot]) {
|
519
|
-
const generator = new GeneratorMain(componentTemplateSlot, workspaceTemplateSlot, config, workspace, envs, aspectLoader, newComponentHelper, componentAspect);
|
526
|
+
static async provider([workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, componentAspect, tracker], config, [componentTemplateSlot, workspaceTemplateSlot]) {
|
527
|
+
const generator = new GeneratorMain(componentTemplateSlot, workspaceTemplateSlot, config, workspace, envs, aspectLoader, newComponentHelper, componentAspect, tracker);
|
520
528
|
const commands = [new (_create().CreateCmd)(generator, community.getDocsDomain()), new (_templates().TemplatesCmd)(generator), new (_new().NewCmd)(generator)];
|
521
529
|
cli.register(...commands);
|
522
530
|
graphql.register((0, _generator2().generatorSchema)(generator));
|
523
531
|
aspectLoader.registerPlugins([new (_starter2().StarterPlugin)(generator)]);
|
524
532
|
envs.registerService(new (_generator3().GeneratorService)());
|
525
|
-
generator.registerComponentTemplate([_componentGenerator2().componentGeneratorTemplate, _starter().starterTemplate, _workspaceGenerator2().workspaceGeneratorTemplate]);
|
533
|
+
if (generator) generator.registerComponentTemplate([_componentGenerator2().componentGeneratorTemplate, _starter().starterTemplate, _workspaceGenerator2().workspaceGeneratorTemplate]);
|
526
534
|
return generator;
|
527
535
|
}
|
528
536
|
}
|
529
537
|
exports.GeneratorMain = GeneratorMain;
|
530
538
|
(0, _defineProperty2().default)(GeneratorMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType()]);
|
531
|
-
(0, _defineProperty2().default)(GeneratorMain, "dependencies", [_workspace().default, _cli().CLIAspect, _graphql().GraphqlAspect, _envs().EnvsAspect, _aspectLoader().default, _newComponentHelper().default, _community().CommunityAspect, _component().default]);
|
539
|
+
(0, _defineProperty2().default)(GeneratorMain, "dependencies", [_workspace().default, _cli().CLIAspect, _graphql().GraphqlAspect, _envs().EnvsAspect, _aspectLoader().default, _newComponentHelper().default, _community().CommunityAspect, _component().default, _tracker().default]);
|
532
540
|
(0, _defineProperty2().default)(GeneratorMain, "runtime", _cli().MainRuntime);
|
533
541
|
_generator().GeneratorAspect.addRuntime(GeneratorMain);
|
534
542
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["GeneratorMain","constructor","componentTemplateSlot","workspaceTemplateSlot","config","workspace","envs","aspectLoader","newComponentHelper","componentAspect","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","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 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 ) {}\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 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 ];\n\n static runtime = MainRuntime;\n\n static async provider(\n [workspace, cli, graphql, envs, aspectLoader, newComponentHelper, community, componentAspect]: [\n Workspace,\n CLIMain,\n GraphqlMain,\n EnvsMain,\n AspectLoaderMain,\n NewComponentHelperMain,\n CommunityMain,\n ComponentMain\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 );\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 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","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,5 +1,5 @@
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.971/dist/generator.composition.js';
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.generator_generator@0.0.971/dist/generator.docs.mdx';
|
3
3
|
|
4
4
|
export const compositions = [compositions_0];
|
5
5
|
export const overview = [overview_0];
|
@@ -24,7 +24,7 @@ export class ${namePascalCase}Main {
|
|
24
24
|
* See the docs file of this component for more info
|
25
25
|
*/
|
26
26
|
|
27
|
-
generator.registerComponentTemplate([
|
27
|
+
if (generator) generator.registerComponentTemplate([
|
28
28
|
{
|
29
29
|
name: 'component1',
|
30
30
|
description: 'description for component1',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["mainRuntime","name","namePascalCase"],"sources":["main-runtime.ts"],"sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function mainRuntime({ name, namePascalCase }: ComponentContext) {\n return `import { MainRuntime } from '@teambit/cli';\nimport { GeneratorMain, GeneratorAspect, ComponentContext } from '@teambit/generator';\nimport { ${namePascalCase}Aspect } from './${name}.aspect';\n\nexport class ${namePascalCase}Main {\n static slots = [];\n static dependencies = [GeneratorAspect];\n static runtime = MainRuntime;\n static async provider([generator]: [GeneratorMain]) {\n /**\n * Array of templates. Add as many templates as you want\n * Separate the templates to multiple files if you prefer\n * Modify, add or remove files as needed\n * See the docs file of this component for more info\n */\n\n generator.registerComponentTemplate([\n {\n name: 'component1',\n description: 'description for component1',\n generateFiles: (context: ComponentContext) => {\n return [\n\n // index file\n {\n relativePath: 'index.ts',\n isMain: true,\n content: \\`export { \\${context.namePascalCase} } from './\\${context.name}';\nexport type { \\${context.namePascalCase}Props } from './\\${context.name}';\n\\`,\n },\n\n // component file\n {\n relativePath: \\`\\${context.name}.tsx\\`,\n content: \\`import React from 'react';\n\nexport type \\${context.namePascalCase}Props = {\n /**\n * a text to be rendered in the component.\n */\n text: string\n};\n\nexport function \\${context.namePascalCase}({ text }: \\${context.namePascalCase}Props) {\n return (\n <div>\n {text}\n </div>\n );\n}\\`,\n },\n\n // docs file\n {\n relativePath: \\`\\${context.name}.docs.mdx\\`,\n content: \\`---\ndescription: 'A React Component for rendering text.'\nlabels: ['text', 'ui']\n---\n\nimport { \\${context.namePascalCase} } from './\\${context.name}';\n\\`\n },\n\n // composition file\n {\n relativePath: \\`\\${context.name}.composition.tsx\\`,\n content: \\`import React from 'react';\nimport { \\${context.namePascalCase} } from './\\${context.name}';\n\nexport const Basic\\${context.namePascalCase} = () => (\n <\\${context.namePascalCase} text=\"hello from \\${context.namePascalCase} \" />\n);\n\\`\n },\n\n // test file\n {\n relativePath: \\`\\${context.name}.spec.tsx\\`,\n content: \\`import React from 'react';\nimport { render } from '@testing-library/react';\nimport { Basic\\${context.namePascalCase} } from './\\${context.name}.composition';\n\nit('should render with the correct text', () => {\n const { getByText } = render(<Basic\\${context.namePascalCase} />);\n const rendered = getByText('hello from \\${context.namePascalCase}');\n expect(rendered).toBeTruthy();\n});\n\\`\n },\n // add more files here such as css/sass\n ];\n },\n },\n\n // component 2\n {\n name: 'component2',\n description: 'description for component2',\n generateFiles: (context: ComponentContext) => {\n return [\n\n // index file\n {\n relativePath: 'index.ts',\n isMain: true,\n content: \\`export {} from '';\n\\`,\n },\n ]\n }\n }\n ]);\n\n return new ${namePascalCase}Main();\n }\n}\n\n${namePascalCase}Aspect.addRuntime(${namePascalCase}Main);\n`;\n}\n"],"mappings":";;;;;;AAEO,SAASA,WAAW,CAAC;EAAEC,IAAI;EAAEC;AAAiC,CAAC,EAAE;EACtE,OAAQ;AACV;AACA,WAAWA,cAAe,oBAAmBD,IAAK;AAClD;AACA,eAAeC,cAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBA,cAAe;AAChC;AACA;AACA;AACA,EAAEA,cAAe,qBAAoBA,cAAe;AACpD,CAAC;AACD"}
|
1
|
+
{"version":3,"names":["mainRuntime","name","namePascalCase"],"sources":["main-runtime.ts"],"sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function mainRuntime({ name, namePascalCase }: ComponentContext) {\n return `import { MainRuntime } from '@teambit/cli';\nimport { GeneratorMain, GeneratorAspect, ComponentContext } from '@teambit/generator';\nimport { ${namePascalCase}Aspect } from './${name}.aspect';\n\nexport class ${namePascalCase}Main {\n static slots = [];\n static dependencies = [GeneratorAspect];\n static runtime = MainRuntime;\n static async provider([generator]: [GeneratorMain]) {\n /**\n * Array of templates. Add as many templates as you want\n * Separate the templates to multiple files if you prefer\n * Modify, add or remove files as needed\n * See the docs file of this component for more info\n */\n\n if (generator) generator.registerComponentTemplate([\n {\n name: 'component1',\n description: 'description for component1',\n generateFiles: (context: ComponentContext) => {\n return [\n\n // index file\n {\n relativePath: 'index.ts',\n isMain: true,\n content: \\`export { \\${context.namePascalCase} } from './\\${context.name}';\nexport type { \\${context.namePascalCase}Props } from './\\${context.name}';\n\\`,\n },\n\n // component file\n {\n relativePath: \\`\\${context.name}.tsx\\`,\n content: \\`import React from 'react';\n\nexport type \\${context.namePascalCase}Props = {\n /**\n * a text to be rendered in the component.\n */\n text: string\n};\n\nexport function \\${context.namePascalCase}({ text }: \\${context.namePascalCase}Props) {\n return (\n <div>\n {text}\n </div>\n );\n}\\`,\n },\n\n // docs file\n {\n relativePath: \\`\\${context.name}.docs.mdx\\`,\n content: \\`---\ndescription: 'A React Component for rendering text.'\nlabels: ['text', 'ui']\n---\n\nimport { \\${context.namePascalCase} } from './\\${context.name}';\n\\`\n },\n\n // composition file\n {\n relativePath: \\`\\${context.name}.composition.tsx\\`,\n content: \\`import React from 'react';\nimport { \\${context.namePascalCase} } from './\\${context.name}';\n\nexport const Basic\\${context.namePascalCase} = () => (\n <\\${context.namePascalCase} text=\"hello from \\${context.namePascalCase} \" />\n);\n\\`\n },\n\n // test file\n {\n relativePath: \\`\\${context.name}.spec.tsx\\`,\n content: \\`import React from 'react';\nimport { render } from '@testing-library/react';\nimport { Basic\\${context.namePascalCase} } from './\\${context.name}.composition';\n\nit('should render with the correct text', () => {\n const { getByText } = render(<Basic\\${context.namePascalCase} />);\n const rendered = getByText('hello from \\${context.namePascalCase}');\n expect(rendered).toBeTruthy();\n});\n\\`\n },\n // add more files here such as css/sass\n ];\n },\n },\n\n // component 2\n {\n name: 'component2',\n description: 'description for component2',\n generateFiles: (context: ComponentContext) => {\n return [\n\n // index file\n {\n relativePath: 'index.ts',\n isMain: true,\n content: \\`export {} from '';\n\\`,\n },\n ]\n }\n }\n ]);\n\n return new ${namePascalCase}Main();\n }\n}\n\n${namePascalCase}Aspect.addRuntime(${namePascalCase}Main);\n`;\n}\n"],"mappings":";;;;;;AAEO,SAASA,WAAW,CAAC;EAAEC,IAAI;EAAEC;AAAiC,CAAC,EAAE;EACtE,OAAQ;AACV;AACA,WAAWA,cAAe,oBAAmBD,IAAK;AAClD;AACA,eAAeC,cAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBA,cAAe;AAChC;AACA;AACA;AACA,EAAEA,cAAe,qBAAoBA,cAAe;AACpD,CAAC;AACD"}
|
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.971",
|
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.971"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"camelcase": "6.2.0",
|
@@ -22,21 +22,22 @@
|
|
22
22
|
"@teambit/harmony": "0.4.6",
|
23
23
|
"@teambit/bit-error": "0.0.402",
|
24
24
|
"@teambit/component-id": "0.0.425",
|
25
|
-
"@teambit/envs": "0.0.
|
26
|
-
"@teambit/new-component-helper": "0.0.
|
27
|
-
"@teambit/
|
28
|
-
"@teambit/
|
29
|
-
"@teambit/
|
30
|
-
"@teambit/
|
31
|
-
"@teambit/
|
32
|
-
"@teambit/
|
33
|
-
"@teambit/
|
34
|
-
"@teambit/
|
35
|
-
"@teambit/
|
36
|
-
"@teambit/
|
37
|
-
"@teambit/
|
38
|
-
"@teambit/
|
39
|
-
"@teambit/
|
25
|
+
"@teambit/envs": "0.0.971",
|
26
|
+
"@teambit/new-component-helper": "0.0.375",
|
27
|
+
"@teambit/tracker": "0.0.2",
|
28
|
+
"@teambit/workspace": "0.0.971",
|
29
|
+
"@teambit/cli": "0.0.651",
|
30
|
+
"@teambit/graphql": "0.0.971",
|
31
|
+
"@teambit/aspect-loader": "0.0.971",
|
32
|
+
"@teambit/bit": "0.0.973",
|
33
|
+
"@teambit/community": "0.0.199",
|
34
|
+
"@teambit/component": "0.0.971",
|
35
|
+
"@teambit/compiler": "0.0.971",
|
36
|
+
"@teambit/forking": "0.0.375",
|
37
|
+
"@teambit/importer": "0.0.400",
|
38
|
+
"@teambit/install": "0.0.98",
|
39
|
+
"@teambit/logger": "0.0.744",
|
40
|
+
"@teambit/ui": "0.0.971"
|
40
41
|
},
|
41
42
|
"devDependencies": {
|
42
43
|
"@types/fs-extra": "9.0.7",
|
@@ -50,7 +51,7 @@
|
|
50
51
|
"@teambit/generator.aspect-docs.generator": "0.0.155"
|
51
52
|
},
|
52
53
|
"peerDependencies": {
|
53
|
-
"@teambit/legacy": "1.0.
|
54
|
+
"@teambit/legacy": "1.0.433",
|
54
55
|
"react": "^16.8.0 || ^17.0.0",
|
55
56
|
"react-dom": "^16.8.0 || ^17.0.0"
|
56
57
|
},
|
@@ -17,7 +17,7 @@ export class ${namePascalCase}Main {
|
|
17
17
|
* See the docs file of this component for more info
|
18
18
|
*/
|
19
19
|
|
20
|
-
generator.registerComponentTemplate([
|
20
|
+
if (generator) generator.registerComponentTemplate([
|
21
21
|
{
|
22
22
|
name: 'component1',
|
23
23
|
description: 'description for component1',
|
Binary file
|