@teambit/generator 1.0.668 → 1.0.669
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 +9 -9
- package/dist/component-generator.js.map +1 -1
- package/dist/component-template.d.ts +1 -1
- package/dist/component-template.js.map +1 -1
- package/dist/create.cmd.d.ts +3 -3
- package/dist/create.cmd.js.map +1 -1
- package/dist/generator-env-type.d.ts +3 -3
- package/dist/generator-env-type.js.map +1 -1
- package/dist/generator.graphql.d.ts +3 -3
- package/dist/generator.graphql.js.map +1 -1
- package/dist/generator.main.runtime.d.ts +17 -17
- package/dist/generator.main.runtime.js.map +1 -1
- package/dist/generator.service.d.ts +3 -3
- package/dist/generator.service.js.map +1 -1
- package/dist/new.cmd.d.ts +3 -3
- package/dist/new.cmd.js.map +1 -1
- package/dist/{preview-1753809186996.js → preview-1753833698619.js} +2 -2
- package/dist/starter-list.d.ts +2 -2
- package/dist/starter-list.js.map +1 -1
- package/dist/starter.plugin.d.ts +2 -2
- package/dist/starter.plugin.js.map +1 -1
- package/dist/template-list.d.ts +2 -2
- package/dist/template-list.js.map +1 -1
- package/dist/templates/basic/basic.starter.d.ts +1 -1
- package/dist/templates/basic/basic.starter.js.map +1 -1
- package/dist/templates/basic/template/files/workspace-config.d.ts +1 -1
- package/dist/templates/basic/template/files/workspace-config.js.map +1 -1
- package/dist/templates/component-generator/files/component-template.d.ts +1 -1
- package/dist/templates/component-generator/files/component-template.js.map +1 -1
- package/dist/templates/component-generator/files/index.d.ts +1 -1
- package/dist/templates/component-generator/files/index.js.map +1 -1
- package/dist/templates/component-generator/index.d.ts +1 -1
- package/dist/templates/component-generator/index.js.map +1 -1
- package/dist/templates/component-generator-standalone/files/aspect-file.d.ts +1 -1
- package/dist/templates/component-generator-standalone/files/aspect-file.js.map +1 -1
- package/dist/templates/component-generator-standalone/files/index.d.ts +1 -1
- package/dist/templates/component-generator-standalone/files/index.js.map +1 -1
- package/dist/templates/component-generator-standalone/files/main-runtime.d.ts +1 -1
- package/dist/templates/component-generator-standalone/files/main-runtime.js.map +1 -1
- package/dist/templates/component-generator-standalone/index.d.ts +1 -1
- package/dist/templates/component-generator-standalone/index.js.map +1 -1
- package/dist/templates/starter/files/doc-file.d.ts +1 -1
- package/dist/templates/starter/files/doc-file.js.map +1 -1
- package/dist/templates/starter/files/index.d.ts +1 -1
- package/dist/templates/starter/files/index.js.map +1 -1
- package/dist/templates/starter/files/starter.d.ts +1 -1
- package/dist/templates/starter/files/starter.js.map +1 -1
- package/dist/templates/starter/index.d.ts +1 -1
- package/dist/templates/starter/index.js.map +1 -1
- package/dist/templates/starter-standalone/files/doc-file.d.ts +1 -1
- package/dist/templates/starter-standalone/files/doc-file.js.map +1 -1
- package/dist/templates/starter-standalone/files/index.d.ts +1 -1
- package/dist/templates/starter-standalone/files/index.js.map +1 -1
- package/dist/templates/starter-standalone/files/starter.d.ts +1 -1
- package/dist/templates/starter-standalone/files/starter.js.map +1 -1
- package/dist/templates/starter-standalone/index.d.ts +1 -1
- package/dist/templates/starter-standalone/index.js.map +1 -1
- package/dist/templates.cmd.d.ts +2 -2
- package/dist/templates.cmd.js.map +1 -1
- package/dist/workspace-generator.d.ts +5 -5
- package/dist/workspace-generator.js.map +1 -1
- package/dist/workspace-template.d.ts +1 -1
- package/dist/workspace-template.js.map +1 -1
- package/generator.service.tsx +3 -3
- package/package.json +26 -26
- package/templates/basic/basic.starter.ts +1 -1
- package/templates/basic/template/files/workspace-config.ts +1 -1
- package/templates/component-generator/files/component-template.ts +1 -1
- package/templates/component-generator/files/index.ts +1 -1
- package/templates/component-generator/index.ts +1 -1
- package/templates/component-generator-standalone/files/aspect-file.ts +1 -1
- package/templates/component-generator-standalone/files/index.ts +1 -1
- package/templates/component-generator-standalone/files/main-runtime.ts +1 -1
- package/templates/component-generator-standalone/index.ts +1 -1
- package/templates/starter/files/doc-file.ts +1 -1
- package/templates/starter/files/index.ts +1 -1
- package/templates/starter/files/starter.ts +1 -1
- package/templates/starter/index.ts +1 -1
- package/templates/starter-standalone/files/doc-file.ts +1 -1
- package/templates/starter-standalone/files/index.ts +1 -1
- package/templates/starter-standalone/files/starter.ts +1 -1
- package/templates/starter-standalone/index.ts +1 -1
@@ -1,13 +1,13 @@
|
|
1
|
-
import { Workspace } from '@teambit/workspace';
|
2
|
-
import { EnvsMain } from '@teambit/envs';
|
3
|
-
import { Logger } from '@teambit/logger';
|
4
|
-
import { TrackerMain } from '@teambit/tracker';
|
5
|
-
import { NewComponentHelperMain } from '@teambit/new-component-helper';
|
1
|
+
import type { Workspace } from '@teambit/workspace';
|
2
|
+
import type { EnvsMain } from '@teambit/envs';
|
3
|
+
import type { Logger } from '@teambit/logger';
|
4
|
+
import type { TrackerMain } from '@teambit/tracker';
|
5
|
+
import type { NewComponentHelperMain } from '@teambit/new-component-helper';
|
6
6
|
import { ComponentID } from '@teambit/component-id';
|
7
|
-
import { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';
|
8
|
-
import { ComponentTemplate, PromptResults } from './component-template';
|
9
|
-
import { CreateOptions } from './create.cmd';
|
10
|
-
import { OnComponentCreateSlot } from './generator.main.runtime';
|
7
|
+
import type { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';
|
8
|
+
import type { ComponentTemplate, PromptResults } from './component-template';
|
9
|
+
import type { CreateOptions } from './create.cmd';
|
10
|
+
import type { OnComponentCreateSlot } from './generator.main.runtime';
|
11
11
|
export type GenerateResult = {
|
12
12
|
id: ComponentID;
|
13
13
|
dir: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_enquirer","_pMapSeries","_path","_envs","_camelcase","_bitError","_workspaceModules","_pkgModules","_componentId","e","__esModule","default","ComponentGenerator","constructor","workspace","componentIds","options","template","envs","newComponentHelper","tracker","wsConfigFiles","logger","onComponentCreateSlot","aspectId","envId","installOptions","promptResults","generate","force","dirsToDeleteIfFailed","generateResults","pMapSeries","componentId","componentPath","getNewComponentPath","pathFromUser","path","componentsToCreate","length","fs","existsSync","join","BitError","push","generateOneComponent","err","deleteGeneratedComponents","bitMap","write","ids","map","r","id","tryLinkToNodeModules","runOnComponentCreateHook","tryWriteConfigFiles","linkToNodeModulesByIds","consoleFailure","message","fns","values","Promise","all","fn","shouldWrite","isWorkspaceConfigWriteEnabled","clearComponentCache","writeConfigFiles","clean","silent","dedupe","throw","dirs","dir","absoluteDir","remove","code","getOptionResultFromArgs","option","args","process","argv","slice","argIndex","indexOf","name","type","argValue","Error","choices","includes","getPromptOptionResult","prompt","getPromptResults","promptOptions","undefined","fromArg","skip","optionResult","namePascalCase","camelcase","pascalCase","nameCamelCase","ComponentID","fromString","files","generateFiles","mainFile","find","file","isMain","writeComponentFiles","f","relativePath","content","addResults","track","rootDir","componentName","fullName","defaultScope","scope","component","get","hasEnvConfiguredOriginally","hasEnvConfigured","envBeforeConfigChanges","getEnv","config","boundConfig","bind","userEnv","env","isInWorkspace","hasId","ignoreVersion","toStringWithoutVersion","toString","templateEnv","EnvsAspect","Object","keys","configWithEnv","addEnvIfProvidedByFlag","setEntireConfig","getEnvData","envFromFlag","envFromTemplate","setBy","isSameAsThisEnvId","packageName","componentIdToPackageName","state","_consumer","envSetBy","isApp","isEnv","dependencies","installMissingDependencies","addEnvToConfig","exports"],"sources":["component-generator.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { prompt } from 'enquirer';\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 { Logger } from '@teambit/logger';\nimport { TrackerMain } from '@teambit/tracker';\nimport { linkToNodeModulesByIds } from '@teambit/workspace.modules.node-modules-linker';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ComponentID } from '@teambit/component-id';\nimport { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\n\nimport { ComponentTemplate, ComponentConfig, PromptOption, PromptResults } from './component-template';\nimport { CreateOptions } from './create.cmd';\nimport { OnComponentCreateSlot } from './generator.main.runtime';\n\nexport type GenerateResult = {\n id: ComponentID;\n dir: string;\n files: string[];\n envId: string;\n envSetBy: string;\n packageName: string;\n isApp?: boolean;\n isEnv?: boolean;\n dependencies?: string[];\n installMissingDependencies?: boolean;\n};\n\nexport type InstallOptions = { optimizeReportForNonTerminal?: boolean };\n\nexport type OnComponentCreateFn = (generateResults: GenerateResult[], installOptions?: InstallOptions) => Promise<void>;\n\nexport class ComponentGenerator {\n constructor(\n private workspace: Workspace,\n private componentIds: ComponentID[],\n private options: Partial<CreateOptions>,\n private template: ComponentTemplate,\n private envs: EnvsMain,\n private newComponentHelper: NewComponentHelperMain,\n private tracker: TrackerMain,\n private wsConfigFiles: WorkspaceConfigFilesMain,\n private logger: Logger,\n private onComponentCreateSlot: OnComponentCreateSlot,\n private aspectId: string,\n private envId?: ComponentID,\n private installOptions: InstallOptions = {},\n private promptResults?: PromptResults\n ) {}\n\n async generate(force = false): Promise<GenerateResult[]> {\n const dirsToDeleteIfFailed: string[] = [];\n const generateResults = await pMapSeries(this.componentIds, async (componentId) => {\n try {\n const componentPath = this.newComponentHelper.getNewComponentPath(componentId, {\n pathFromUser: this.options.path,\n componentsToCreate: this.componentIds.length,\n });\n if (!force && fs.existsSync(path.join(this.workspace.path, componentPath))) {\n throw new BitError(\n `unable to create a component at \"${componentPath}\", this path already exists, please use \"--path\" to create the component in a different path`\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(`create (${this.componentIds.length} components)`);\n\n const ids = generateResults.map((r) => r.id);\n await this.tryLinkToNodeModules(ids);\n await this.runOnComponentCreateHook(generateResults);\n // We are running this after the runOnComponentCreateHook as it require\n // the env to be installed to work properly, and the hook might install\n // the env.\n await this.tryWriteConfigFiles(ids);\n\n return generateResults;\n }\n\n private async tryLinkToNodeModules(ids: ComponentID[]) {\n try {\n await linkToNodeModulesByIds(\n this.workspace,\n ids.map((id) => id)\n );\n } catch (err: any) {\n this.logger.consoleFailure(\n `failed linking the new components to node_modules, please run \"bit link\" manually. error: ${err.message}`\n );\n }\n }\n\n private async runOnComponentCreateHook(generateResults: GenerateResult[]) {\n const fns = this.onComponentCreateSlot.values();\n if (!fns.length) return;\n await Promise.all(fns.map((fn) => fn(generateResults, this.installOptions)));\n }\n\n /**\n * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error\n * message.\n * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles`\n * function is successfully executed, nothing is being returned. If an error occurs during the execution of\n * `writeConfigFiles`, an error message is being returned.\n */\n private async tryWriteConfigFiles(ids: ComponentID[]) {\n const shouldWrite = this.wsConfigFiles.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return;\n ids.map((id) => this.workspace.clearComponentCache(id));\n const { err } = await this.wsConfigFiles.writeConfigFiles({\n clean: true,\n silent: true,\n dedupe: true,\n throw: false,\n });\n if (err) {\n this.logger.consoleFailure(\n `failed generating workspace config files, please run \"bit ws-config write\" manually. error: ${err.message}`\n );\n }\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 getOptionResultFromArgs(option: PromptOption): string | boolean | undefined {\n const args = process.argv.slice(2);\n const argIndex = args.indexOf(`--${option.name}`);\n if (argIndex === -1) {\n return;\n }\n if (option.type === 'confirm') {\n return true;\n }\n const argValue = args[argIndex + 1];\n if (!argValue) {\n throw new Error(`Missing value for ${option.name}`);\n }\n if (option.type === 'select' && !option.choices?.includes(argValue)) {\n throw new Error(\n `Invalid value for ${option.name}. Please use one of the following values: ${option.choices?.join(', ')}`\n );\n }\n return argValue;\n }\n\n private async getPromptOptionResult(option: PromptOption): Promise<Record<string, string | boolean>> {\n switch (option.type) {\n case 'input':\n return prompt({\n type: 'input',\n name: option.name,\n message: option.message,\n });\n case 'confirm':\n return prompt({\n type: 'confirm',\n name: option.name,\n message: option.message,\n });\n case 'select':\n return prompt({\n type: 'select',\n name: option.name,\n message: option.message,\n choices: option.choices,\n });\n default:\n throw new Error(`unexpected prompt type ${option.type}`);\n }\n }\n\n private async getPromptResults(): Promise<PromptResults | undefined> {\n if (this.promptResults) {\n return this.promptResults;\n }\n const promptOptions = this.template.promptOptions?.();\n if (!promptOptions) {\n return undefined;\n }\n const promptResults: PromptResults = {};\n for await (const option of promptOptions) {\n const fromArg = this.getOptionResultFromArgs(option);\n if (fromArg) {\n promptResults[option.name] = fromArg;\n continue;\n }\n if (option.skip && option.skip(promptResults)) {\n continue;\n }\n try {\n const optionResult = await this.getPromptOptionResult(option);\n promptResults[option.name] = optionResult[option.name];\n } catch (err: any) {\n if (!err) {\n // for some reason, when the user clicks Ctrl+C, the error is an empty string\n throw new Error(`The prompt has been canceled`);\n }\n throw err;\n }\n }\n return promptResults;\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 const promptResults = await this.getPromptResults();\n\n const files = await this.template.generateFiles({\n name,\n namePascalCase,\n nameCamelCase,\n componentId,\n aspectId,\n envId: this.envId,\n promptResults,\n });\n const mainFile = files.find((file) => file.isMain);\n await this.newComponentHelper.writeComponentFiles(\n componentPath,\n files.map((f) => ({ path: f.relativePath, content: f.content }))\n );\n const addResults = await this.tracker.track({\n rootDir: componentPath,\n mainFile: mainFile?.relativePath,\n componentName: componentId.fullName,\n defaultScope: this.options.scope || componentId.scope,\n });\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 const userEnv = this.options.env;\n\n if (!config && this.envId && !userEnv) {\n const isInWorkspace = this.workspace.hasId(this.envId, { ignoreVersion: true });\n config = {\n [isInWorkspace ? this.envId.toStringWithoutVersion() : 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 // eslint-disable-next-line prefer-const\n let { envId, setBy } = getEnvData();\n if (envId) {\n const isInWorkspace = this.workspace.hasId(envId, { ignoreVersion: true });\n const isSameAsThisEnvId = envId === this.envId?.toString() || envId === this.envId?.toStringWithoutVersion();\n if (isSameAsThisEnvId && this.envId) {\n envId = isInWorkspace ? this.envId.toStringWithoutVersion() : this.envId.toString();\n }\n }\n return {\n id: componentId,\n dir: componentPath,\n files: addResults.files,\n packageName: componentIdToPackageName(component.state._consumer),\n envId,\n envSetBy: setBy,\n isApp: this.template.isApp,\n isEnv: this.template.isEnv,\n dependencies: this.template.dependencies,\n installMissingDependencies: this.template.installMissingDependencies,\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 await this.tracker.addEnvToConfig(userEnv, config);\n\n return config;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_fsExtra","data","_interopRequireDefault","require","_enquirer","_pMapSeries","_path","_envs","_camelcase","_bitError","_workspaceModules","_pkgModules","_componentId","e","__esModule","default","ComponentGenerator","constructor","workspace","componentIds","options","template","envs","newComponentHelper","tracker","wsConfigFiles","logger","onComponentCreateSlot","aspectId","envId","installOptions","promptResults","generate","force","dirsToDeleteIfFailed","generateResults","pMapSeries","componentId","componentPath","getNewComponentPath","pathFromUser","path","componentsToCreate","length","fs","existsSync","join","BitError","push","generateOneComponent","err","deleteGeneratedComponents","bitMap","write","ids","map","r","id","tryLinkToNodeModules","runOnComponentCreateHook","tryWriteConfigFiles","linkToNodeModulesByIds","consoleFailure","message","fns","values","Promise","all","fn","shouldWrite","isWorkspaceConfigWriteEnabled","clearComponentCache","writeConfigFiles","clean","silent","dedupe","throw","dirs","dir","absoluteDir","remove","code","getOptionResultFromArgs","option","args","process","argv","slice","argIndex","indexOf","name","type","argValue","Error","choices","includes","getPromptOptionResult","prompt","getPromptResults","promptOptions","undefined","fromArg","skip","optionResult","namePascalCase","camelcase","pascalCase","nameCamelCase","ComponentID","fromString","files","generateFiles","mainFile","find","file","isMain","writeComponentFiles","f","relativePath","content","addResults","track","rootDir","componentName","fullName","defaultScope","scope","component","get","hasEnvConfiguredOriginally","hasEnvConfigured","envBeforeConfigChanges","getEnv","config","boundConfig","bind","userEnv","env","isInWorkspace","hasId","ignoreVersion","toStringWithoutVersion","toString","templateEnv","EnvsAspect","Object","keys","configWithEnv","addEnvIfProvidedByFlag","setEntireConfig","getEnvData","envFromFlag","envFromTemplate","setBy","isSameAsThisEnvId","packageName","componentIdToPackageName","state","_consumer","envSetBy","isApp","isEnv","dependencies","installMissingDependencies","addEnvToConfig","exports"],"sources":["component-generator.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { prompt } from 'enquirer';\nimport pMapSeries from 'p-map-series';\nimport path from 'path';\nimport type { Workspace } from '@teambit/workspace';\nimport type { EnvsMain } from '@teambit/envs';\nimport { EnvsAspect } from '@teambit/envs';\nimport camelcase from 'camelcase';\nimport { BitError } from '@teambit/bit-error';\nimport type { Logger } from '@teambit/logger';\nimport type { TrackerMain } from '@teambit/tracker';\nimport { linkToNodeModulesByIds } from '@teambit/workspace.modules.node-modules-linker';\nimport { componentIdToPackageName } from '@teambit/pkg.modules.component-package-name';\nimport type { NewComponentHelperMain } from '@teambit/new-component-helper';\nimport { ComponentID } from '@teambit/component-id';\nimport type { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';\n\nimport type { ComponentTemplate, ComponentConfig, PromptOption, PromptResults } from './component-template';\nimport type { CreateOptions } from './create.cmd';\nimport type { OnComponentCreateSlot } from './generator.main.runtime';\n\nexport type GenerateResult = {\n id: ComponentID;\n dir: string;\n files: string[];\n envId: string;\n envSetBy: string;\n packageName: string;\n isApp?: boolean;\n isEnv?: boolean;\n dependencies?: string[];\n installMissingDependencies?: boolean;\n};\n\nexport type InstallOptions = { optimizeReportForNonTerminal?: boolean };\n\nexport type OnComponentCreateFn = (generateResults: GenerateResult[], installOptions?: InstallOptions) => Promise<void>;\n\nexport class ComponentGenerator {\n constructor(\n private workspace: Workspace,\n private componentIds: ComponentID[],\n private options: Partial<CreateOptions>,\n private template: ComponentTemplate,\n private envs: EnvsMain,\n private newComponentHelper: NewComponentHelperMain,\n private tracker: TrackerMain,\n private wsConfigFiles: WorkspaceConfigFilesMain,\n private logger: Logger,\n private onComponentCreateSlot: OnComponentCreateSlot,\n private aspectId: string,\n private envId?: ComponentID,\n private installOptions: InstallOptions = {},\n private promptResults?: PromptResults\n ) {}\n\n async generate(force = false): Promise<GenerateResult[]> {\n const dirsToDeleteIfFailed: string[] = [];\n const generateResults = await pMapSeries(this.componentIds, async (componentId) => {\n try {\n const componentPath = this.newComponentHelper.getNewComponentPath(componentId, {\n pathFromUser: this.options.path,\n componentsToCreate: this.componentIds.length,\n });\n if (!force && fs.existsSync(path.join(this.workspace.path, componentPath))) {\n throw new BitError(\n `unable to create a component at \"${componentPath}\", this path already exists, please use \"--path\" to create the component in a different path`\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(`create (${this.componentIds.length} components)`);\n\n const ids = generateResults.map((r) => r.id);\n await this.tryLinkToNodeModules(ids);\n await this.runOnComponentCreateHook(generateResults);\n // We are running this after the runOnComponentCreateHook as it require\n // the env to be installed to work properly, and the hook might install\n // the env.\n await this.tryWriteConfigFiles(ids);\n\n return generateResults;\n }\n\n private async tryLinkToNodeModules(ids: ComponentID[]) {\n try {\n await linkToNodeModulesByIds(\n this.workspace,\n ids.map((id) => id)\n );\n } catch (err: any) {\n this.logger.consoleFailure(\n `failed linking the new components to node_modules, please run \"bit link\" manually. error: ${err.message}`\n );\n }\n }\n\n private async runOnComponentCreateHook(generateResults: GenerateResult[]) {\n const fns = this.onComponentCreateSlot.values();\n if (!fns.length) return;\n await Promise.all(fns.map((fn) => fn(generateResults, this.installOptions)));\n }\n\n /**\n * The function `tryWriteConfigFiles` attempts to write workspace config files, and if it fails, it logs an error\n * message.\n * @returns If the condition `!shouldWrite` is true, then nothing is being returned. Otherwise, if the `writeConfigFiles`\n * function is successfully executed, nothing is being returned. If an error occurs during the execution of\n * `writeConfigFiles`, an error message is being returned.\n */\n private async tryWriteConfigFiles(ids: ComponentID[]) {\n const shouldWrite = this.wsConfigFiles.isWorkspaceConfigWriteEnabled();\n if (!shouldWrite) return;\n ids.map((id) => this.workspace.clearComponentCache(id));\n const { err } = await this.wsConfigFiles.writeConfigFiles({\n clean: true,\n silent: true,\n dedupe: true,\n throw: false,\n });\n if (err) {\n this.logger.consoleFailure(\n `failed generating workspace config files, please run \"bit ws-config write\" manually. error: ${err.message}`\n );\n }\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 getOptionResultFromArgs(option: PromptOption): string | boolean | undefined {\n const args = process.argv.slice(2);\n const argIndex = args.indexOf(`--${option.name}`);\n if (argIndex === -1) {\n return;\n }\n if (option.type === 'confirm') {\n return true;\n }\n const argValue = args[argIndex + 1];\n if (!argValue) {\n throw new Error(`Missing value for ${option.name}`);\n }\n if (option.type === 'select' && !option.choices?.includes(argValue)) {\n throw new Error(\n `Invalid value for ${option.name}. Please use one of the following values: ${option.choices?.join(', ')}`\n );\n }\n return argValue;\n }\n\n private async getPromptOptionResult(option: PromptOption): Promise<Record<string, string | boolean>> {\n switch (option.type) {\n case 'input':\n return prompt({\n type: 'input',\n name: option.name,\n message: option.message,\n });\n case 'confirm':\n return prompt({\n type: 'confirm',\n name: option.name,\n message: option.message,\n });\n case 'select':\n return prompt({\n type: 'select',\n name: option.name,\n message: option.message,\n choices: option.choices,\n });\n default:\n throw new Error(`unexpected prompt type ${option.type}`);\n }\n }\n\n private async getPromptResults(): Promise<PromptResults | undefined> {\n if (this.promptResults) {\n return this.promptResults;\n }\n const promptOptions = this.template.promptOptions?.();\n if (!promptOptions) {\n return undefined;\n }\n const promptResults: PromptResults = {};\n for await (const option of promptOptions) {\n const fromArg = this.getOptionResultFromArgs(option);\n if (fromArg) {\n promptResults[option.name] = fromArg;\n continue;\n }\n if (option.skip && option.skip(promptResults)) {\n continue;\n }\n try {\n const optionResult = await this.getPromptOptionResult(option);\n promptResults[option.name] = optionResult[option.name];\n } catch (err: any) {\n if (!err) {\n // for some reason, when the user clicks Ctrl+C, the error is an empty string\n throw new Error(`The prompt has been canceled`);\n }\n throw err;\n }\n }\n return promptResults;\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 const promptResults = await this.getPromptResults();\n\n const files = await this.template.generateFiles({\n name,\n namePascalCase,\n nameCamelCase,\n componentId,\n aspectId,\n envId: this.envId,\n promptResults,\n });\n const mainFile = files.find((file) => file.isMain);\n await this.newComponentHelper.writeComponentFiles(\n componentPath,\n files.map((f) => ({ path: f.relativePath, content: f.content }))\n );\n const addResults = await this.tracker.track({\n rootDir: componentPath,\n mainFile: mainFile?.relativePath,\n componentName: componentId.fullName,\n defaultScope: this.options.scope || componentId.scope,\n });\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 const userEnv = this.options.env;\n\n if (!config && this.envId && !userEnv) {\n const isInWorkspace = this.workspace.hasId(this.envId, { ignoreVersion: true });\n config = {\n [isInWorkspace ? this.envId.toStringWithoutVersion() : 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 // eslint-disable-next-line prefer-const\n let { envId, setBy } = getEnvData();\n if (envId) {\n const isInWorkspace = this.workspace.hasId(envId, { ignoreVersion: true });\n const isSameAsThisEnvId = envId === this.envId?.toString() || envId === this.envId?.toStringWithoutVersion();\n if (isSameAsThisEnvId && this.envId) {\n envId = isInWorkspace ? this.envId.toStringWithoutVersion() : this.envId.toString();\n }\n }\n return {\n id: componentId,\n dir: componentPath,\n files: addResults.files,\n packageName: componentIdToPackageName(component.state._consumer),\n envId,\n envSetBy: setBy,\n isApp: this.template.isApp,\n isEnv: this.template.isEnv,\n dependencies: this.template.dependencies,\n installMissingDependencies: this.template.installMissingDependencies,\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 await this.tracker.addEnvToConfig(userEnv, config);\n\n return config;\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,UAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,SAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,MAAA;EAAA,MAAAL,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAG,KAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAM,MAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,WAAA;EAAA,MAAAP,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAK,UAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAS,kBAAA;EAAA,MAAAT,IAAA,GAAAE,OAAA;EAAAO,iBAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,YAAA;EAAA,MAAAV,IAAA,GAAAE,OAAA;EAAAQ,WAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAW,aAAA;EAAA,MAAAX,IAAA,GAAAE,OAAA;EAAAS,YAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAoD,SAAAC,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAwB7C,MAAMG,kBAAkB,CAAC;EAC9BC,WAAWA,CACDC,SAAoB,EACpBC,YAA2B,EAC3BC,OAA+B,EAC/BC,QAA2B,EAC3BC,IAAc,EACdC,kBAA0C,EAC1CC,OAAoB,EACpBC,aAAuC,EACvCC,MAAc,EACdC,qBAA4C,EAC5CC,QAAgB,EAChBC,KAAmB,EACnBC,cAA8B,GAAG,CAAC,CAAC,EACnCC,aAA6B,EACrC;IAAA,KAdQb,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,YAA2B,GAA3BA,YAA2B;IAAA,KAC3BC,OAA+B,GAA/BA,OAA+B;IAAA,KAC/BC,QAA2B,GAA3BA,QAA2B;IAAA,KAC3BC,IAAc,GAAdA,IAAc;IAAA,KACdC,kBAA0C,GAA1CA,kBAA0C;IAAA,KAC1CC,OAAoB,GAApBA,OAAoB;IAAA,KACpBC,aAAuC,GAAvCA,aAAuC;IAAA,KACvCC,MAAc,GAAdA,MAAc;IAAA,KACdC,qBAA4C,GAA5CA,qBAA4C;IAAA,KAC5CC,QAAgB,GAAhBA,QAAgB;IAAA,KAChBC,KAAmB,GAAnBA,KAAmB;IAAA,KACnBC,cAA8B,GAA9BA,cAA8B;IAAA,KAC9BC,aAA6B,GAA7BA,aAA6B;EACpC;EAEH,MAAMC,QAAQA,CAACC,KAAK,GAAG,KAAK,EAA6B;IACvD,MAAMC,oBAA8B,GAAG,EAAE;IACzC,MAAMC,eAAe,GAAG,MAAM,IAAAC,qBAAU,EAAC,IAAI,CAACjB,YAAY,EAAE,MAAOkB,WAAW,IAAK;MACjF,IAAI;QACF,MAAMC,aAAa,GAAG,IAAI,CAACf,kBAAkB,CAACgB,mBAAmB,CAACF,WAAW,EAAE;UAC7EG,YAAY,EAAE,IAAI,CAACpB,OAAO,CAACqB,IAAI;UAC/BC,kBAAkB,EAAE,IAAI,CAACvB,YAAY,CAACwB;QACxC,CAAC,CAAC;QACF,IAAI,CAACV,KAAK,IAAIW,kBAAE,CAACC,UAAU,CAACJ,eAAI,CAACK,IAAI,CAAC,IAAI,CAAC5B,SAAS,CAACuB,IAAI,EAAEH,aAAa,CAAC,CAAC,EAAE;UAC1E,MAAM,KAAIS,oBAAQ,EAChB,oCAAoCT,aAAa,8FACnD,CAAC;QACH;QACAJ,oBAAoB,CAACc,IAAI,CAACV,aAAa,CAAC;QACxC,OAAO,MAAM,IAAI,CAACW,oBAAoB,CAACZ,WAAW,EAAEC,aAAa,CAAC;MACpE,CAAC,CAAC,OAAOY,GAAQ,EAAE;QACjB,MAAM,IAAI,CAACC,yBAAyB,CAACjB,oBAAoB,CAAC;QAC1D,MAAMgB,GAAG;MACX;IACF,CAAC,CAAC;IAEF,MAAM,IAAI,CAAChC,SAAS,CAACkC,MAAM,CAACC,KAAK,CAAC,WAAW,IAAI,CAAClC,YAAY,CAACwB,MAAM,cAAc,CAAC;IAEpF,MAAMW,GAAG,GAAGnB,eAAe,CAACoB,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,CAAC;IAC5C,MAAM,IAAI,CAACC,oBAAoB,CAACJ,GAAG,CAAC;IACpC,MAAM,IAAI,CAACK,wBAAwB,CAACxB,eAAe,CAAC;IACpD;IACA;IACA;IACA,MAAM,IAAI,CAACyB,mBAAmB,CAACN,GAAG,CAAC;IAEnC,OAAOnB,eAAe;EACxB;EAEA,MAAcuB,oBAAoBA,CAACJ,GAAkB,EAAE;IACrD,IAAI;MACF,MAAM,IAAAO,0CAAsB,EAC1B,IAAI,CAAC3C,SAAS,EACdoC,GAAG,CAACC,GAAG,CAAEE,EAAE,IAAKA,EAAE,CACpB,CAAC;IACH,CAAC,CAAC,OAAOP,GAAQ,EAAE;MACjB,IAAI,CAACxB,MAAM,CAACoC,cAAc,CACxB,6FAA6FZ,GAAG,CAACa,OAAO,EAC1G,CAAC;IACH;EACF;EAEA,MAAcJ,wBAAwBA,CAACxB,eAAiC,EAAE;IACxE,MAAM6B,GAAG,GAAG,IAAI,CAACrC,qBAAqB,CAACsC,MAAM,CAAC,CAAC;IAC/C,IAAI,CAACD,GAAG,CAACrB,MAAM,EAAE;IACjB,MAAMuB,OAAO,CAACC,GAAG,CAACH,GAAG,CAACT,GAAG,CAAEa,EAAE,IAAKA,EAAE,CAACjC,eAAe,EAAE,IAAI,CAACL,cAAc,CAAC,CAAC,CAAC;EAC9E;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAc8B,mBAAmBA,CAACN,GAAkB,EAAE;IACpD,MAAMe,WAAW,GAAG,IAAI,CAAC5C,aAAa,CAAC6C,6BAA6B,CAAC,CAAC;IACtE,IAAI,CAACD,WAAW,EAAE;IAClBf,GAAG,CAACC,GAAG,CAAEE,EAAE,IAAK,IAAI,CAACvC,SAAS,CAACqD,mBAAmB,CAACd,EAAE,CAAC,CAAC;IACvD,MAAM;MAAEP;IAAI,CAAC,GAAG,MAAM,IAAI,CAACzB,aAAa,CAAC+C,gBAAgB,CAAC;MACxDC,KAAK,EAAE,IAAI;MACXC,MAAM,EAAE,IAAI;MACZC,MAAM,EAAE,IAAI;MACZC,KAAK,EAAE;IACT,CAAC,CAAC;IACF,IAAI1B,GAAG,EAAE;MACP,IAAI,CAACxB,MAAM,CAACoC,cAAc,CACxB,+FAA+FZ,GAAG,CAACa,OAAO,EAC5G,CAAC;IACH;EACF;EAEA,MAAcZ,yBAAyBA,CAAC0B,IAAc,EAAE;IACtD,MAAMX,OAAO,CAACC,GAAG,CACfU,IAAI,CAACtB,GAAG,CAAC,MAAOuB,GAAG,IAAK;MACtB,MAAMC,WAAW,GAAGtC,eAAI,CAACK,IAAI,CAAC,IAAI,CAAC5B,SAAS,CAACuB,IAAI,EAAEqC,GAAG,CAAC;MACvD,IAAI;QACF,MAAMlC,kBAAE,CAACoC,MAAM,CAACD,WAAW,CAAC;MAC9B,CAAC,CAAC,OAAO7B,GAAQ,EAAE;QACjB,IAAIA,GAAG,CAAC+B,IAAI,KAAK,QAAQ,EAAE;UACzB;UACA,MAAM/B,GAAG;QACX;MACF;IACF,CAAC,CACH,CAAC;EACH;EAEQgC,uBAAuBA,CAACC,MAAoB,EAAgC;IAClF,MAAMC,IAAI,GAAGC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;IAClC,MAAMC,QAAQ,GAAGJ,IAAI,CAACK,OAAO,CAAC,KAAKN,MAAM,CAACO,IAAI,EAAE,CAAC;IACjD,IAAIF,QAAQ,KAAK,CAAC,CAAC,EAAE;MACnB;IACF;IACA,IAAIL,MAAM,CAACQ,IAAI,KAAK,SAAS,EAAE;MAC7B,OAAO,IAAI;IACb;IACA,MAAMC,QAAQ,GAAGR,IAAI,CAACI,QAAQ,GAAG,CAAC,CAAC;IACnC,IAAI,CAACI,QAAQ,EAAE;MACb,MAAM,IAAIC,KAAK,CAAC,qBAAqBV,MAAM,CAACO,IAAI,EAAE,CAAC;IACrD;IACA,IAAIP,MAAM,CAACQ,IAAI,KAAK,QAAQ,IAAI,CAACR,MAAM,CAACW,OAAO,EAAEC,QAAQ,CAACH,QAAQ,CAAC,EAAE;MACnE,MAAM,IAAIC,KAAK,CACb,qBAAqBV,MAAM,CAACO,IAAI,6CAA6CP,MAAM,CAACW,OAAO,EAAEhD,IAAI,CAAC,IAAI,CAAC,EACzG,CAAC;IACH;IACA,OAAO8C,QAAQ;EACjB;EAEA,MAAcI,qBAAqBA,CAACb,MAAoB,EAA6C;IACnG,QAAQA,MAAM,CAACQ,IAAI;MACjB,KAAK,OAAO;QACV,OAAO,IAAAM,kBAAM,EAAC;UACZN,IAAI,EAAE,OAAO;UACbD,IAAI,EAAEP,MAAM,CAACO,IAAI;UACjB3B,OAAO,EAAEoB,MAAM,CAACpB;QAClB,CAAC,CAAC;MACJ,KAAK,SAAS;QACZ,OAAO,IAAAkC,kBAAM,EAAC;UACZN,IAAI,EAAE,SAAS;UACfD,IAAI,EAAEP,MAAM,CAACO,IAAI;UACjB3B,OAAO,EAAEoB,MAAM,CAACpB;QAClB,CAAC,CAAC;MACJ,KAAK,QAAQ;QACX,OAAO,IAAAkC,kBAAM,EAAC;UACZN,IAAI,EAAE,QAAQ;UACdD,IAAI,EAAEP,MAAM,CAACO,IAAI;UACjB3B,OAAO,EAAEoB,MAAM,CAACpB,OAAO;UACvB+B,OAAO,EAAEX,MAAM,CAACW;QAClB,CAAC,CAAC;MACJ;QACE,MAAM,IAAID,KAAK,CAAC,0BAA0BV,MAAM,CAACQ,IAAI,EAAE,CAAC;IAC5D;EACF;EAEA,MAAcO,gBAAgBA,CAAA,EAAuC;IACnE,IAAI,IAAI,CAACnE,aAAa,EAAE;MACtB,OAAO,IAAI,CAACA,aAAa;IAC3B;IACA,MAAMoE,aAAa,GAAG,IAAI,CAAC9E,QAAQ,CAAC8E,aAAa,GAAG,CAAC;IACrD,IAAI,CAACA,aAAa,EAAE;MAClB,OAAOC,SAAS;IAClB;IACA,MAAMrE,aAA4B,GAAG,CAAC,CAAC;IACvC,WAAW,MAAMoD,MAAM,IAAIgB,aAAa,EAAE;MACxC,MAAME,OAAO,GAAG,IAAI,CAACnB,uBAAuB,CAACC,MAAM,CAAC;MACpD,IAAIkB,OAAO,EAAE;QACXtE,aAAa,CAACoD,MAAM,CAACO,IAAI,CAAC,GAAGW,OAAO;QACpC;MACF;MACA,IAAIlB,MAAM,CAACmB,IAAI,IAAInB,MAAM,CAACmB,IAAI,CAACvE,aAAa,CAAC,EAAE;QAC7C;MACF;MACA,IAAI;QACF,MAAMwE,YAAY,GAAG,MAAM,IAAI,CAACP,qBAAqB,CAACb,MAAM,CAAC;QAC7DpD,aAAa,CAACoD,MAAM,CAACO,IAAI,CAAC,GAAGa,YAAY,CAACpB,MAAM,CAACO,IAAI,CAAC;MACxD,CAAC,CAAC,OAAOxC,GAAQ,EAAE;QACjB,IAAI,CAACA,GAAG,EAAE;UACR;UACA,MAAM,IAAI2C,KAAK,CAAC,8BAA8B,CAAC;QACjD;QACA,MAAM3C,GAAG;MACX;IACF;IACA,OAAOnB,aAAa;EACtB;EAEA,MAAckB,oBAAoBA,CAACZ,WAAwB,EAAEC,aAAqB,EAA2B;IAC3G,MAAMoD,IAAI,GAAGrD,WAAW,CAACqD,IAAI;IAC7B,MAAMc,cAAc,GAAG,IAAAC,oBAAS,EAACf,IAAI,EAAE;MAAEgB,UAAU,EAAE;IAAK,CAAC,CAAC;IAC5D,MAAMC,aAAa,GAAG,IAAAF,oBAAS,EAACf,IAAI,CAAC;IACrC,MAAM9D,QAAQ,GAAGgF,0BAAW,CAACC,UAAU,CAAC,IAAI,CAACjF,QAAQ,CAAC;IACtD,MAAMG,aAAa,GAAG,MAAM,IAAI,CAACmE,gBAAgB,CAAC,CAAC;IAEnD,MAAMY,KAAK,GAAG,MAAM,IAAI,CAACzF,QAAQ,CAAC0F,aAAa,CAAC;MAC9CrB,IAAI;MACJc,cAAc;MACdG,aAAa;MACbtE,WAAW;MACXT,QAAQ;MACRC,KAAK,EAAE,IAAI,CAACA,KAAK;MACjBE;IACF,CAAC,CAAC;IACF,MAAMiF,QAAQ,GAAGF,KAAK,CAACG,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACC,MAAM,CAAC;IAClD,MAAM,IAAI,CAAC5F,kBAAkB,CAAC6F,mBAAmB,CAC/C9E,aAAa,EACbwE,KAAK,CAACvD,GAAG,CAAE8D,CAAC,KAAM;MAAE5E,IAAI,EAAE4E,CAAC,CAACC,YAAY;MAAEC,OAAO,EAAEF,CAAC,CAACE;IAAQ,CAAC,CAAC,CACjE,CAAC;IACD,MAAMC,UAAU,GAAG,MAAM,IAAI,CAAChG,OAAO,CAACiG,KAAK,CAAC;MAC1CC,OAAO,EAAEpF,aAAa;MACtB0E,QAAQ,EAAEA,QAAQ,EAAEM,YAAY;MAChCK,aAAa,EAAEtF,WAAW,CAACuF,QAAQ;MACnCC,YAAY,EAAE,IAAI,CAACzG,OAAO,CAAC0G,KAAK,IAAIzF,WAAW,CAACyF;IAClD,CAAC,CAAC;IACF,MAAMC,SAAS,GAAG,MAAM,IAAI,CAAC7G,SAAS,CAAC8G,GAAG,CAAC3F,WAAW,CAAC;IACvD,MAAM4F,0BAA0B,GAAG,IAAI,CAAC3G,IAAI,CAAC4G,gBAAgB,CAACH,SAAS,CAAC;IACxE,MAAMI,sBAAsB,GAAG,IAAI,CAAC7G,IAAI,CAAC8G,MAAM,CAACL,SAAS,CAAC;IAC1D,IAAIM,MAAM,GAAG,IAAI,CAAChH,QAAQ,CAACgH,MAAM;IACjC,IAAIA,MAAM,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE;MAC1C,MAAMC,WAAW,GAAG,IAAI,CAACjH,QAAQ,CAACgH,MAAM,EAAEE,IAAI,CAAC,IAAI,CAAClH,QAAQ,CAAC;MAC7DgH,MAAM,GAAGC,WAAW,CAAC;QAAE1G,QAAQ,EAAE,IAAI,CAACA;MAAS,CAAC,CAAC;IACnD;IAEA,MAAM4G,OAAO,GAAG,IAAI,CAACpH,OAAO,CAACqH,GAAG;IAEhC,IAAI,CAACJ,MAAM,IAAI,IAAI,CAACxG,KAAK,IAAI,CAAC2G,OAAO,EAAE;MACrC,MAAME,aAAa,GAAG,IAAI,CAACxH,SAAS,CAACyH,KAAK,CAAC,IAAI,CAAC9G,KAAK,EAAE;QAAE+G,aAAa,EAAE;MAAK,CAAC,CAAC;MAC/EP,MAAM,GAAG;QACP,CAACK,aAAa,GAAG,IAAI,CAAC7G,KAAK,CAACgH,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAAChH,KAAK,CAACiH,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;QACjF,mBAAmB,EAAE;UACnBL,GAAG,EAAE,IAAI,CAAC5G,KAAK,CAACgH,sBAAsB,CAAC;QACzC;MACF,CAAC;IACH;IAEA,MAAME,WAAW,GAAGV,MAAM,GAAGW,kBAAU,CAACvF,EAAE,CAAC,EAAEgF,GAAG;IAEhD,IAAIJ,MAAM,IAAIU,WAAW,IAAId,0BAA0B,EAAE;MACvD;MACA,OAAOI,MAAM,CAACU,WAAW,CAAC;MAC1B,OAAOV,MAAM,CAACW,kBAAU,CAACvF,EAAE,CAAC,CAACgF,GAAG;MAChC,IAAIQ,MAAM,CAACC,IAAI,CAACb,MAAM,CAACW,kBAAU,CAACvF,EAAE,CAAC,CAAC,CAACd,MAAM,KAAK,CAAC,EAAE,OAAO0F,MAAM,CAACW,kBAAU,CAACvF,EAAE,CAAC;MACjF,IAAIwF,MAAM,CAACC,IAAI,CAACb,MAAM,CAAC,CAAC1F,MAAM,KAAK,CAAC,EAAE0F,MAAM,GAAGjC,SAAS;IAC1D;IAEA,MAAM+C,aAAa,GAAG,MAAM,IAAI,CAACC,sBAAsB,CAACf,MAAM,CAAC;IAC/D,IAAIc,aAAa,EAAE,IAAI,CAACjI,SAAS,CAACkC,MAAM,CAACiG,eAAe,CAACtB,SAAS,CAACtE,EAAE,EAAE0F,aAAa,CAAC;IAErF,MAAMG,UAAU,GAAGA,CAAA,KAAM;MACvB,MAAMC,WAAW,GAAG,IAAI,CAACnI,OAAO,CAACqH,GAAG,CAAC,CAAC;MACtC,MAAMe,eAAe,GAAGnB,MAAM,GAAGW,kBAAU,CAACvF,EAAE,CAAC,EAAEgF,GAAG;MACpD,IAAIc,WAAW,EAAE;QACf,OAAO;UACL1H,KAAK,EAAE0H,WAAW;UAClBE,KAAK,EAAE;QACT,CAAC;MACH;MACA,IAAID,eAAe,EAAE;QACnB,OAAO;UACL3H,KAAK,EAAE2H,eAAe;UACtBC,KAAK,EAAE;QACT,CAAC;MACH;MACA,OAAO;QACL5H,KAAK,EAAEsG,sBAAsB,CAAC1E,EAAE;QAChCgG,KAAK,EAAExB,0BAA0B,GAAG,oBAAoB,GAAG;MAC7D,CAAC;IACH,CAAC;IACD;IACA,IAAI;MAAEpG,KAAK;MAAE4H;IAAM,CAAC,GAAGH,UAAU,CAAC,CAAC;IACnC,IAAIzH,KAAK,EAAE;MACT,MAAM6G,aAAa,GAAG,IAAI,CAACxH,SAAS,CAACyH,KAAK,CAAC9G,KAAK,EAAE;QAAE+G,aAAa,EAAE;MAAK,CAAC,CAAC;MAC1E,MAAMc,iBAAiB,GAAG7H,KAAK,KAAK,IAAI,CAACA,KAAK,EAAEiH,QAAQ,CAAC,CAAC,IAAIjH,KAAK,KAAK,IAAI,CAACA,KAAK,EAAEgH,sBAAsB,CAAC,CAAC;MAC5G,IAAIa,iBAAiB,IAAI,IAAI,CAAC7H,KAAK,EAAE;QACnCA,KAAK,GAAG6G,aAAa,GAAG,IAAI,CAAC7G,KAAK,CAACgH,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAAChH,KAAK,CAACiH,QAAQ,CAAC,CAAC;MACrF;IACF;IACA,OAAO;MACLrF,EAAE,EAAEpB,WAAW;MACfyC,GAAG,EAAExC,aAAa;MAClBwE,KAAK,EAAEU,UAAU,CAACV,KAAK;MACvB6C,WAAW,EAAE,IAAAC,sCAAwB,EAAC7B,SAAS,CAAC8B,KAAK,CAACC,SAAS,CAAC;MAChEjI,KAAK;MACLkI,QAAQ,EAAEN,KAAK;MACfO,KAAK,EAAE,IAAI,CAAC3I,QAAQ,CAAC2I,KAAK;MAC1BC,KAAK,EAAE,IAAI,CAAC5I,QAAQ,CAAC4I,KAAK;MAC1BC,YAAY,EAAE,IAAI,CAAC7I,QAAQ,CAAC6I,YAAY;MACxCC,0BAA0B,EAAE,IAAI,CAAC9I,QAAQ,CAAC8I;IAC5C,CAAC;EACH;EAEA,MAAcf,sBAAsBA,CAACf,MAAwB,EAAwC;IACnG,MAAMG,OAAO,GAAG,IAAI,CAACpH,OAAO,CAACqH,GAAG,CAAC,CAAC;IAClC,MAAMM,WAAW,GAAGV,MAAM,GAAGW,kBAAU,CAACvF,EAAE,CAAC,EAAEgF,GAAG;IAChD,IAAI,CAACD,OAAO,IAAIA,OAAO,KAAKO,WAAW,EAAE;MACvC,OAAOV,MAAM;IACf;IACAA,MAAM,GAAGA,MAAM,IAAI,CAAC,CAAC;IACrB,IAAIU,WAAW,EAAE;MACf;MACA,OAAOV,MAAM,CAACU,WAAW,CAAC;IAC5B;IACA,MAAM,IAAI,CAACvH,OAAO,CAAC4I,cAAc,CAAC5B,OAAO,EAAEH,MAAM,CAAC;IAElD,OAAOA,MAAM;EACf;AACF;AAACgC,OAAA,CAAArJ,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["component-template.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component';\n\n/**\n * BaseComponentTemplateOptions describes the foundational properties for components.\n */\nexport interface BaseComponentTemplateOptions {\n /**\n * component-name as entered by the user, e.g. `use-date`.\n * without the scope and the namespace.\n */\n name: string;\n\n /**\n * component-name as upper camel case, e.g. `use-date` becomes `UseDate`.\n * useful when generating the file content, for example for a class name.\n */\n namePascalCase: string;\n\n /**\n * component-name as lower camel case, e.g. `use-date` becomes `useDate`.\n * useful when generating the file content, for example for a function/variable name.\n */\n nameCamelCase: string;\n\n /**\n * component id.\n * the name is the name+namespace. the scope is the scope entered by --scope flag or the defaultScope\n */\n componentId: ComponentID;\n\n /**\n * aspect id of the aspect that register the template itself\n */\n aspectId: ComponentID | string;\n\n /**\n * env id of the env that register the template itself.\n * This will be usually identical to the aspectId but aspectId will always exist,\n * while envId will be undefined if the template is not registered by an env.\n */\n envId?: ComponentID;\n\n /**\n * path of the component.\n */\n path?: string;\n /**\n * scope of the component.\n */\n scope?: string;\n /**\n * namespace of the component.\n */\n namespace?: string;\n /**\n * when a template implements the promptOptions function, this object will be populated with the user responses.\n */\n promptResults?: PromptResults;\n}\n\n/**\n * ComponentContext represents foundational properties for a component context.\n */\nexport type ComponentContext = BaseComponentTemplateOptions;\n\nexport interface ComponentFile {\n /**\n * relative path of the file within the component.\n */\n relativePath: string;\n\n /**\n * file content\n */\n content: string;\n\n /**\n * whether this file will be tracked as the main file\n */\n isMain?: boolean;\n}\n\nexport interface ConfigContext {\n /**\n * Aspect id of the aspect that register the template itself\n */\n aspectId: string;\n}\n\nexport type ComponentConfig = { [aspectName: string]: any };\n\nexport interface ComponentTemplateOptions {\n /**\n * name of the component template. for example: `hook`, `react-component` or `module`.\n */\n name?: string;\n\n /**\n * display name of the template.\n */\n displayName?: string;\n\n /**\n * example name for the component template.\n */\n exampleComponentName?: string;\n\n /**\n * short description of the template. shown in the `bit templates` command.\n */\n description?: string;\n\n /**\n * hide this template so that it is not listed with `bit templates`\n */\n hidden?: boolean;\n\n /**\n * env to use for the generated component.\n */\n env?: string;\n\n /**\n * adds a metadata that the component that this template creates is of type env.\n * This will be used later to do further configuration for example:\n * - ensure to create the .bit_root for it\n */\n isEnv?: boolean;\n\n /**\n * adds a metadata that the component that this template creates is of type app.\n * This will be used later to do further configuration for example:\n * - add it to the workspace.jsonc as app\n * - ensure to create the .bit_root for it\n */\n isApp?: boolean;\n\n /**\n * list of dependencies to install when the component is created.\n */\n dependencies?: string[];\n\n /**\n * Perform installation of missing dependencies after component generation.\n * This is the same as of running `bit install --add-missing-deps` after component generation.\n */\n installMissingDependencies?: boolean;\n}\n\n/**\n * PromptOption is shown to the user before calling the generateFiles function.\n * The prompt is using enquirer under the hood. see https://www.npmjs.com/package/enquirer.\n * Examples:\n * - input: {name: 'name', message: 'enter your name', type: 'input'}\n * - confirm: {name: 'isHappy', message: 'are you happy?', type: 'confirm'}\n * - select: {name: 'color', message: 'pick a color', type: 'select', choices: ['red', 'blue', 'green']}\n */\nexport type PromptOption = {\n name: string;\n message: string;\n type: 'input' | 'confirm' | 'select';\n choices?: string[]; // for select type\n skip?: (previousResults: PromptResults) => boolean; // skip this prompt if this function returns true\n};\n\n/**\n * PromptResults is the result of the user input received from the promptOptions.\n * The key is the name of the prompt option and the value is the user input.\n * in case the prompt-option is of type 'confirm', the value will be a boolean.\n */\nexport type PromptResults = Record<string, string | boolean>;\n\nexport interface ComponentTemplate extends ComponentTemplateOptions {\n name: string;\n\n /**\n * in case the template requires user input, this function will be called to prompt the user.\n * the results will be passed to the generateFiles function.\n */\n promptOptions?: () => PromptOption[];\n\n /**\n * template function for generating the file of a certain component.,\n */\n generateFiles(context: ComponentContext): Promise<ComponentFile[]> | ComponentFile[];\n\n /**\n * component config. gets saved in the .bitmap file and it overrides the workspace.jsonc config.\n * for example, you can set the env that will be used for this component as follows:\n * \"teambit.envs/envs\": {\n * \"env\": \"teambit.harmony/aspect\"\n * },\n */\n config?: ComponentConfig | ((context: ConfigContext) => ComponentConfig);\n}\n\nexport type GetComponentTemplates = () => ComponentTemplate[];\n"],"mappings":"","ignoreList":[]}
|
1
|
+
{"version":3,"names":[],"sources":["component-template.ts"],"sourcesContent":["import type { ComponentID } from '@teambit/component';\n\n/**\n * BaseComponentTemplateOptions describes the foundational properties for components.\n */\nexport interface BaseComponentTemplateOptions {\n /**\n * component-name as entered by the user, e.g. `use-date`.\n * without the scope and the namespace.\n */\n name: string;\n\n /**\n * component-name as upper camel case, e.g. `use-date` becomes `UseDate`.\n * useful when generating the file content, for example for a class name.\n */\n namePascalCase: string;\n\n /**\n * component-name as lower camel case, e.g. `use-date` becomes `useDate`.\n * useful when generating the file content, for example for a function/variable name.\n */\n nameCamelCase: string;\n\n /**\n * component id.\n * the name is the name+namespace. the scope is the scope entered by --scope flag or the defaultScope\n */\n componentId: ComponentID;\n\n /**\n * aspect id of the aspect that register the template itself\n */\n aspectId: ComponentID | string;\n\n /**\n * env id of the env that register the template itself.\n * This will be usually identical to the aspectId but aspectId will always exist,\n * while envId will be undefined if the template is not registered by an env.\n */\n envId?: ComponentID;\n\n /**\n * path of the component.\n */\n path?: string;\n /**\n * scope of the component.\n */\n scope?: string;\n /**\n * namespace of the component.\n */\n namespace?: string;\n /**\n * when a template implements the promptOptions function, this object will be populated with the user responses.\n */\n promptResults?: PromptResults;\n}\n\n/**\n * ComponentContext represents foundational properties for a component context.\n */\nexport type ComponentContext = BaseComponentTemplateOptions;\n\nexport interface ComponentFile {\n /**\n * relative path of the file within the component.\n */\n relativePath: string;\n\n /**\n * file content\n */\n content: string;\n\n /**\n * whether this file will be tracked as the main file\n */\n isMain?: boolean;\n}\n\nexport interface ConfigContext {\n /**\n * Aspect id of the aspect that register the template itself\n */\n aspectId: string;\n}\n\nexport type ComponentConfig = { [aspectName: string]: any };\n\nexport interface ComponentTemplateOptions {\n /**\n * name of the component template. for example: `hook`, `react-component` or `module`.\n */\n name?: string;\n\n /**\n * display name of the template.\n */\n displayName?: string;\n\n /**\n * example name for the component template.\n */\n exampleComponentName?: string;\n\n /**\n * short description of the template. shown in the `bit templates` command.\n */\n description?: string;\n\n /**\n * hide this template so that it is not listed with `bit templates`\n */\n hidden?: boolean;\n\n /**\n * env to use for the generated component.\n */\n env?: string;\n\n /**\n * adds a metadata that the component that this template creates is of type env.\n * This will be used later to do further configuration for example:\n * - ensure to create the .bit_root for it\n */\n isEnv?: boolean;\n\n /**\n * adds a metadata that the component that this template creates is of type app.\n * This will be used later to do further configuration for example:\n * - add it to the workspace.jsonc as app\n * - ensure to create the .bit_root for it\n */\n isApp?: boolean;\n\n /**\n * list of dependencies to install when the component is created.\n */\n dependencies?: string[];\n\n /**\n * Perform installation of missing dependencies after component generation.\n * This is the same as of running `bit install --add-missing-deps` after component generation.\n */\n installMissingDependencies?: boolean;\n}\n\n/**\n * PromptOption is shown to the user before calling the generateFiles function.\n * The prompt is using enquirer under the hood. see https://www.npmjs.com/package/enquirer.\n * Examples:\n * - input: {name: 'name', message: 'enter your name', type: 'input'}\n * - confirm: {name: 'isHappy', message: 'are you happy?', type: 'confirm'}\n * - select: {name: 'color', message: 'pick a color', type: 'select', choices: ['red', 'blue', 'green']}\n */\nexport type PromptOption = {\n name: string;\n message: string;\n type: 'input' | 'confirm' | 'select';\n choices?: string[]; // for select type\n skip?: (previousResults: PromptResults) => boolean; // skip this prompt if this function returns true\n};\n\n/**\n * PromptResults is the result of the user input received from the promptOptions.\n * The key is the name of the prompt option and the value is the user input.\n * in case the prompt-option is of type 'confirm', the value will be a boolean.\n */\nexport type PromptResults = Record<string, string | boolean>;\n\nexport interface ComponentTemplate extends ComponentTemplateOptions {\n name: string;\n\n /**\n * in case the template requires user input, this function will be called to prompt the user.\n * the results will be passed to the generateFiles function.\n */\n promptOptions?: () => PromptOption[];\n\n /**\n * template function for generating the file of a certain component.,\n */\n generateFiles(context: ComponentContext): Promise<ComponentFile[]> | ComponentFile[];\n\n /**\n * component config. gets saved in the .bitmap file and it overrides the workspace.jsonc config.\n * for example, you can set the env that will be used for this component as follows:\n * \"teambit.envs/envs\": {\n * \"env\": \"teambit.harmony/aspect\"\n * },\n */\n config?: ComponentConfig | ((context: ConfigContext) => ComponentConfig);\n}\n\nexport type GetComponentTemplates = () => ComponentTemplate[];\n"],"mappings":"","ignoreList":[]}
|
package/dist/create.cmd.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Command, CommandOptions } from '@teambit/cli';
|
2
|
-
import { ComponentID } from '@teambit/component';
|
3
|
-
import { GeneratorMain } from './generator.main.runtime';
|
1
|
+
import type { Command, CommandOptions } from '@teambit/cli';
|
2
|
+
import type { ComponentID } from '@teambit/component';
|
3
|
+
import type { GeneratorMain } from './generator.main.runtime';
|
4
4
|
import type { BaseComponentTemplateOptions } from './component-template';
|
5
5
|
/**
|
6
6
|
* CreateOptions combines foundational properties with additional options for creating a component.
|
package/dist/create.cmd.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CreateCmd","constructor","generator","name","description","cmd","report","templateName","componentNames","options","aspectId","template","results","generateComponentTemplate","title","length","componentsData","map","result","chalk","bold","id","toString","dir","envId","envSetBy","packageName","join","footer","green","exports"],"sources":["create.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { ComponentID } from '@teambit/component';\nimport chalk from 'chalk';\nimport { GeneratorMain } from './generator.main.runtime';\nimport type { BaseComponentTemplateOptions } from './component-template';\n\n/**\n * CreateOptions combines foundational properties with additional options for creating a component.\n */\nexport type CreateOptions = BaseComponentTemplateOptions & {\n env?: string;\n aspect?: string;\n force?: boolean;\n};\n\nexport class CreateCmd implements Command {\n name = 'create <template-name> <component-names...>';\n description = 'create a new component (source files and config) using a template.';\n alias = '';\n loader = true;\n helpUrl = 'reference/starters/create-starter';\n arguments = [\n {\n name: 'template-name',\n description:\n \"the template for generating the component \\n(run 'bit templates' for a list of available templates)\",\n },\n {\n name: 'component-names...',\n description: 'a list of component names to generate',\n },\n ];\n examples = [\n {\n cmd: 'bit create react ui/button --aspect teambit.react/react-env',\n description: \"creates a component named 'ui/button' using the 'react' template\",\n },\n {\n cmd: 'bit create module utils/is-string utils/is-number --aspect teambit.node/node',\n description:\n \"creates two components, 'utils/is-string' and 'utils/is-number' using the 'node' template from the 'node' aspect(env)\",\n },\n {\n cmd: 'bit create mdx docs/create-components --aspect teambit.mdx/mdx-env --scope my-org.my-scope',\n description:\n \"creates an mdx component named 'docs/create-components' and sets it scope to 'my-org.my-scope'. \\nby default, the scope is the `defaultScope` value, configured in your `workspace.jsonc`.\",\n },\n {\n cmd: 'bit create react ui/button --aspect teambit.react/react-env --env teambit.community/envs/community-react@3.0.3',\n description:\n \"creates a component named 'ui/button' from the teambit.react/react-env env and sets it to use the 'community-react' env. \\n(the template's default env is 'teambit.react/react-env').\",\n },\n ];\n group = 'component-development';\n options = [\n ['n', 'namespace <string>', `sets the component's namespace and nested dirs inside the scope`],\n ['s', 'scope <string>', `sets the component's scope-name. if not entered, the default-scope will be used`],\n ['a', 'aspect <string>', 'aspect-id of the template. helpful when multiple aspects use the same template name'],\n ['t', 'template <string>', 'env-id of the template. alias for --aspect.'],\n ['p', 'path <string>', 'relative path in the workspace. by default the path is `<scope>/<namespace>/<name>`'],\n ['e', 'env <string>', \"set the component's environment. (overrides the env from variants and the template)\"],\n ['f', 'force', 'replace existing files at the target location'],\n ] as CommandOptions;\n\n constructor(private generator: GeneratorMain) {}\n\n async report(\n [templateName, componentNames]: [string, string[]],\n options: Partial<CreateOptions> & {\n template?: string | ComponentID;\n force?: boolean;\n }\n ) {\n options.aspectId = options.aspectId ?? options.template;\n const results = await this.generator.generateComponentTemplate(componentNames, templateName, options);\n const title = `${results.length} component(s) were created`;\n\n const componentsData = results\n .map((result) => {\n return `${chalk.bold(result.id.toString())}\n location: ${result.dir}\n env: ${result.envId} (set by ${result.envSetBy})\n package: ${result.packageName}\n`;\n })\n .join('\\n');\n const footer = `env configuration is according to workspace variants, template config or --env flag.`;\n\n return `${chalk.green(title)}\\n\\n${componentsData}\\n\\n${footer}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CreateCmd","constructor","generator","name","description","cmd","report","templateName","componentNames","options","aspectId","template","results","generateComponentTemplate","title","length","componentsData","map","result","chalk","bold","id","toString","dir","envId","envSetBy","packageName","join","footer","green","exports"],"sources":["create.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { ComponentID } from '@teambit/component';\nimport chalk from 'chalk';\nimport type { GeneratorMain } from './generator.main.runtime';\nimport type { BaseComponentTemplateOptions } from './component-template';\n\n/**\n * CreateOptions combines foundational properties with additional options for creating a component.\n */\nexport type CreateOptions = BaseComponentTemplateOptions & {\n env?: string;\n aspect?: string;\n force?: boolean;\n};\n\nexport class CreateCmd implements Command {\n name = 'create <template-name> <component-names...>';\n description = 'create a new component (source files and config) using a template.';\n alias = '';\n loader = true;\n helpUrl = 'reference/starters/create-starter';\n arguments = [\n {\n name: 'template-name',\n description:\n \"the template for generating the component \\n(run 'bit templates' for a list of available templates)\",\n },\n {\n name: 'component-names...',\n description: 'a list of component names to generate',\n },\n ];\n examples = [\n {\n cmd: 'bit create react ui/button --aspect teambit.react/react-env',\n description: \"creates a component named 'ui/button' using the 'react' template\",\n },\n {\n cmd: 'bit create module utils/is-string utils/is-number --aspect teambit.node/node',\n description:\n \"creates two components, 'utils/is-string' and 'utils/is-number' using the 'node' template from the 'node' aspect(env)\",\n },\n {\n cmd: 'bit create mdx docs/create-components --aspect teambit.mdx/mdx-env --scope my-org.my-scope',\n description:\n \"creates an mdx component named 'docs/create-components' and sets it scope to 'my-org.my-scope'. \\nby default, the scope is the `defaultScope` value, configured in your `workspace.jsonc`.\",\n },\n {\n cmd: 'bit create react ui/button --aspect teambit.react/react-env --env teambit.community/envs/community-react@3.0.3',\n description:\n \"creates a component named 'ui/button' from the teambit.react/react-env env and sets it to use the 'community-react' env. \\n(the template's default env is 'teambit.react/react-env').\",\n },\n ];\n group = 'component-development';\n options = [\n ['n', 'namespace <string>', `sets the component's namespace and nested dirs inside the scope`],\n ['s', 'scope <string>', `sets the component's scope-name. if not entered, the default-scope will be used`],\n ['a', 'aspect <string>', 'aspect-id of the template. helpful when multiple aspects use the same template name'],\n ['t', 'template <string>', 'env-id of the template. alias for --aspect.'],\n ['p', 'path <string>', 'relative path in the workspace. by default the path is `<scope>/<namespace>/<name>`'],\n ['e', 'env <string>', \"set the component's environment. (overrides the env from variants and the template)\"],\n ['f', 'force', 'replace existing files at the target location'],\n ] as CommandOptions;\n\n constructor(private generator: GeneratorMain) {}\n\n async report(\n [templateName, componentNames]: [string, string[]],\n options: Partial<CreateOptions> & {\n template?: string | ComponentID;\n force?: boolean;\n }\n ) {\n options.aspectId = options.aspectId ?? options.template;\n const results = await this.generator.generateComponentTemplate(componentNames, templateName, options);\n const title = `${results.length} component(s) were created`;\n\n const componentsData = results\n .map((result) => {\n return `${chalk.bold(result.id.toString())}\n location: ${result.dir}\n env: ${result.envId} (set by ${result.envSetBy})\n package: ${result.packageName}\n`;\n })\n .join('\\n');\n const footer = `env configuration is according to workspace variants, template config or --env flag.`;\n\n return `${chalk.green(title)}\\n\\n${componentsData}\\n\\n${footer}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { EnvHandler } from '@teambit/envs';
|
2
|
-
import { TemplateList } from './template-list';
|
3
|
-
import { StarterList } from './starter-list';
|
1
|
+
import type { EnvHandler } from '@teambit/envs';
|
2
|
+
import type { TemplateList } from './template-list';
|
3
|
+
import type { StarterList } from './starter-list';
|
4
4
|
export interface GeneratorEnv {
|
5
5
|
/**
|
6
6
|
* return a template list instance.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["generator-env-type.ts"],"sourcesContent":["import { EnvHandler } from '@teambit/envs';\nimport { TemplateList } from './template-list';\nimport { StarterList } from './starter-list';\n\nexport interface GeneratorEnv {\n /**\n * return a template list instance.\n */\n generators(): EnvHandler<TemplateList>;\n /**\n * return a starter list instance.\n */\n starters(): EnvHandler<StarterList>;\n}\n"],"mappings":"","ignoreList":[]}
|
1
|
+
{"version":3,"names":[],"sources":["generator-env-type.ts"],"sourcesContent":["import type { EnvHandler } from '@teambit/envs';\nimport type { TemplateList } from './template-list';\nimport type { StarterList } from './starter-list';\n\nexport interface GeneratorEnv {\n /**\n * return a template list instance.\n */\n generators(): EnvHandler<TemplateList>;\n /**\n * return a starter list instance.\n */\n starters(): EnvHandler<StarterList>;\n}\n"],"mappings":"","ignoreList":[]}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Schema } from '@teambit/graphql';
|
2
|
-
import { GeneratorMain } from './generator.main.runtime';
|
3
|
-
import { CreateOptions } from './create.cmd';
|
1
|
+
import type { Schema } from '@teambit/graphql';
|
2
|
+
import type { GeneratorMain } from './generator.main.runtime';
|
3
|
+
import type { CreateOptions } from './create.cmd';
|
4
4
|
export type CreateQueryOptions = CreateOptions & {
|
5
5
|
templateName: string;
|
6
6
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_graphqlTag","data","require","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","generatorSchema","generator","typeDefs","gql","resolvers","Mutation","createComponent","req","_ref","name","templateName","options","res","generateComponentTemplate","map","component","id","toString","dir","files","Generator","templates","listTemplates","Query"],"sources":["generator.graphql.ts"],"sourcesContent":["import { Schema } from '@teambit/graphql';\nimport { gql } from 'graphql-tag';\nimport { GeneratorMain } from './generator.main.runtime';\nimport { CreateOptions } from './create.cmd';\n\nexport type CreateQueryOptions = CreateOptions & { templateName: string };\n\nexport function generatorSchema(generator: GeneratorMain): Schema {\n return {\n typeDefs: gql`\n type GenerateResult {\n id: String\n dir: String\n files: [String]\n }\n\n type Mutation {\n # create Component by template\n createComponent(\n name: String!\n templateName: String!\n scope: String\n namespace: String\n aspect: String\n ): [GenerateResult]\n }\n\n type TemplateDescriptor {\n aspectId: String!\n name: String!\n }\n\n type Generator {\n templates: [TemplateDescriptor]\n }\n\n type Query {\n generator: Generator\n }\n `,\n resolvers: {\n Mutation: {\n createComponent: async (req: any, { name, templateName, ...options }: CreateQueryOptions) => {\n const res = await generator.generateComponentTemplate([name], templateName, { name, ...options });\n return res.map((component) => ({\n id: component.id.toString(),\n dir: component.dir,\n files: component.files,\n }));\n },\n },\n Generator: {\n templates: async () => {\n return generator.listTemplates();\n },\n },\n Query: {\n generator: () => generator,\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_graphqlTag","data","require","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","generatorSchema","generator","typeDefs","gql","resolvers","Mutation","createComponent","req","_ref","name","templateName","options","res","generateComponentTemplate","map","component","id","toString","dir","files","Generator","templates","listTemplates","Query"],"sources":["generator.graphql.ts"],"sourcesContent":["import type { Schema } from '@teambit/graphql';\nimport { gql } from 'graphql-tag';\nimport type { GeneratorMain } from './generator.main.runtime';\nimport type { CreateOptions } from './create.cmd';\n\nexport type CreateQueryOptions = CreateOptions & { templateName: string };\n\nexport function generatorSchema(generator: GeneratorMain): Schema {\n return {\n typeDefs: gql`\n type GenerateResult {\n id: String\n dir: String\n files: [String]\n }\n\n type Mutation {\n # create Component by template\n createComponent(\n name: String!\n templateName: String!\n scope: String\n namespace: String\n aspect: String\n ): [GenerateResult]\n }\n\n type TemplateDescriptor {\n aspectId: String!\n name: String!\n }\n\n type Generator {\n templates: [TemplateDescriptor]\n }\n\n type Query {\n generator: Generator\n }\n `,\n resolvers: {\n Mutation: {\n createComponent: async (req: any, { name, templateName, ...options }: CreateQueryOptions) => {\n const res = await generator.generateComponentTemplate([name], templateName, { name, ...options });\n return res.map((component) => ({\n id: component.id.toString(),\n dir: component.dir,\n files: component.files,\n }));\n },\n },\n Generator: {\n templates: async () => {\n return generator.listTemplates();\n },\n },\n Query: {\n generator: () => generator,\n },\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,21 +1,21 @@
|
|
1
|
-
import { GraphqlMain } from '@teambit/graphql';
|
2
|
-
import { CLIMain } from '@teambit/cli';
|
3
|
-
import { Workspace } from '@teambit/workspace';
|
4
|
-
import { EnvDefinition, EnvsMain } from '@teambit/envs';
|
5
|
-
import { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';
|
1
|
+
import type { GraphqlMain } from '@teambit/graphql';
|
2
|
+
import type { CLIMain } from '@teambit/cli';
|
3
|
+
import type { Workspace } from '@teambit/workspace';
|
4
|
+
import type { EnvDefinition, EnvsMain } from '@teambit/envs';
|
5
|
+
import type { WorkspaceConfigFilesMain } from '@teambit/workspace-config-files';
|
6
6
|
import type { ComponentMain, Component } from '@teambit/component';
|
7
|
-
import { Harmony, SlotRegistry } from '@teambit/harmony';
|
8
|
-
import { GitMain } from '@teambit/git';
|
9
|
-
import { AspectLoaderMain } from '@teambit/aspect-loader';
|
10
|
-
import { TrackerMain } from '@teambit/tracker';
|
11
|
-
import { NewComponentHelperMain } from '@teambit/new-component-helper';
|
12
|
-
import { Logger, LoggerMain } from '@teambit/logger';
|
13
|
-
import { DeprecationMain } from '@teambit/deprecation';
|
14
|
-
import { ComponentTemplate, GetComponentTemplates, PromptResults } from './component-template';
|
15
|
-
import { CreateOptions } from './create.cmd';
|
16
|
-
import { GenerateResult, InstallOptions, OnComponentCreateFn } from './component-generator';
|
17
|
-
import { WorkspaceTemplate } from './workspace-template';
|
18
|
-
import { NewOptions } from './new.cmd';
|
7
|
+
import type { Harmony, SlotRegistry } from '@teambit/harmony';
|
8
|
+
import type { GitMain } from '@teambit/git';
|
9
|
+
import type { AspectLoaderMain } from '@teambit/aspect-loader';
|
10
|
+
import type { TrackerMain } from '@teambit/tracker';
|
11
|
+
import type { NewComponentHelperMain } from '@teambit/new-component-helper';
|
12
|
+
import type { Logger, LoggerMain } from '@teambit/logger';
|
13
|
+
import type { DeprecationMain } from '@teambit/deprecation';
|
14
|
+
import type { ComponentTemplate, GetComponentTemplates, PromptResults } from './component-template';
|
15
|
+
import type { CreateOptions } from './create.cmd';
|
16
|
+
import type { GenerateResult, InstallOptions, OnComponentCreateFn } from './component-generator';
|
17
|
+
import type { WorkspaceTemplate } from './workspace-template';
|
18
|
+
import type { NewOptions } from './new.cmd';
|
19
19
|
export type ComponentTemplateSlot = SlotRegistry<ComponentTemplate[] | GetComponentTemplates>;
|
20
20
|
export type WorkspaceTemplateSlot = SlotRegistry<WorkspaceTemplate[]>;
|
21
21
|
export type OnComponentCreateSlot = SlotRegistry<OnComponentCreateFn>;
|