@teambit/envs 0.0.881 → 0.0.883
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/components/env-console/env-console.js +1 -10
- package/dist/components/env-console/env-console.js.map +1 -1
- package/dist/components/env-console/index.js +0 -3
- package/dist/components/env-console/index.js.map +1 -1
- package/dist/components/env-overview/env-overview.js +0 -8
- package/dist/components/env-overview/env-overview.js.map +1 -1
- package/dist/components/env-overview/index.js +0 -3
- package/dist/components/env-overview/index.js.map +1 -1
- package/dist/components/index.js +0 -3
- package/dist/components/index.js.map +1 -1
- package/dist/context/context.js +1 -17
- package/dist/context/context.js.map +1 -1
- package/dist/context/index.js +0 -3
- package/dist/context/index.js.map +1 -1
- package/dist/env-definition.js +3 -11
- package/dist/env-definition.js.map +1 -1
- package/dist/env-service-list.js +0 -6
- package/dist/env-service-list.js.map +1 -1
- package/dist/env.composition.js +0 -6
- package/dist/env.composition.js.map +1 -1
- package/dist/env.fragment.js +0 -11
- package/dist/env.fragment.js.map +1 -1
- package/dist/environment.js +1 -1
- package/dist/environment.js.map +1 -1
- package/dist/environments.aspect.js +0 -5
- package/dist/environments.aspect.js.map +1 -1
- package/dist/environments.graphql.js +0 -5
- package/dist/environments.graphql.js.map +1 -1
- package/dist/environments.main.runtime.js +52 -194
- package/dist/environments.main.runtime.js.map +1 -1
- package/dist/envs.cmd.js +7 -46
- package/dist/envs.cmd.js.map +1 -1
- package/dist/exceptions/env-not-configured-for-component.js +0 -6
- package/dist/exceptions/env-not-configured-for-component.js.map +1 -1
- package/dist/exceptions/env-not-found-in-runtime.js +0 -6
- package/dist/exceptions/env-not-found-in-runtime.js.map +1 -1
- package/dist/exceptions/env-not-found.js +0 -7
- package/dist/exceptions/env-not-found.js.map +1 -1
- package/dist/exceptions/index.js +0 -9
- package/dist/exceptions/index.js.map +1 -1
- package/dist/index.js +0 -25
- package/dist/index.js.map +1 -1
- package/dist/runtime/env-runtime.js +0 -3
- package/dist/runtime/env-runtime.js.map +1 -1
- package/dist/runtime/envs-execution-result.js +2 -13
- package/dist/runtime/envs-execution-result.js.map +1 -1
- package/dist/runtime/index.js +0 -6
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/runtime.js +3 -29
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/services/index.js +0 -9
- package/dist/services/index.js.map +1 -1
- package/package-tar/teambit-envs-0.0.883.tgz +0 -0
- package/package.json +18 -18
- package/{preview-1666409808293.js → preview-1666582798766.js} +2 -2
- package/package-tar/teambit-envs-0.0.881.tgz +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["DEFAULT_ENV","EnvsMain","icon","constructor","config","context","envSlot","logger","serviceSlot","componentMain","createEnvironment","components","createRuntime","getDefaultEnv","defaultEnv","get","Error","EnvDefinition","getCoreEnvsIds","compose","targetEnv","envTransformers","a","reduce","acc","transformer","override","propsToOverride","env","merge","sourceEnv","allNames","Set","keys","o","Object","prototype","getPrototypeOf","name","getOwnPropertyNames","add","forEach","key","fn","includes","bind","getEnvData","component","envsData","state","aspects","EnvsAspect","id","toString","data","getEnvIdFromEnvsData","ignoreVersion","undefined","rawEnvId","envIdWithoutVersion","ComponentID","fromString","toStringWithoutVersion","getEnvId","envIdFromEnvData","withVersion","resolveEnv","withVersionMatch","toArray","find","envId","withVersionMatchId","exactMatch","exactMatchId","EnvNotConfiguredForComponent","isUsingCoreEnv","isCoreEnv","getEnv","envDef","getEnvDefinitionByStringId","EnvNotFound","getEnvComponent","getEnvComponentByEnvId","requesting","host","getHost","newId","resolveComponentId","envComponent","BitError","getOrCalculateEnv","err","calculateEnv","getDescriptor","services","matchedEntry","entries","aspectEntry","envIdFromEnvsConfig","getEnvIdFromEnvsConfig","envIdFromEnvsConfigWithoutVersion","getEnvDefinitionById","printWarningIfFirstTime","errMsg","message","envDefFromList","getAllEnvsConfiguredOnComponent","getEnvFromEnvsConfig","getEnvsNotFromEnvsConfig","hasEnvConfigured","Boolean","length","getAllRegisteredEnvs","map","envData","push","calculateEnvFromExtensions","extensions","envsAspect","findCoreExtension","getEnvDefinitionByLegacyExtension","extension","newExtensionId","stringId","getEnvDefinitionByLegacyId","getEnvFromComponent","getEnvsEnvDefinition","alreadyShownWarning","consoleWarning","isEnvRegistered","isUsingAspectEnv","type","isUsingEnvEnv","isEnv","registerService","envServices","register","getServices","allServices","currentServices","service","implements","EnvServiceList","registerEnv","Runtime","aggregateByDefs","throwForDuplicateComponents","envsMap","Promise","all","envAspectDef","getEnvAspectDef","EnvRuntime","def","resolveAspects","MainRuntime","requestedOnly","idsStr","c","duplications","findDuplications","join","provider","graphql","loggerAspect","cli","createLogger","envs","registerShowFragments","EnvFragment","envsCmd","EnvsCmd","commands","ListEnvsCmd","GetEnvCmd","environmentsSchema","Slot","withType","GraphqlAspect","LoggerAspect","ComponentAspect","CLIAspect","addRuntime"],"sources":["environments.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain, ComponentID, AspectData } from '@teambit/component';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { BitError } from '@teambit/bit-error';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { EnvService } from './services';\nimport { Environment } from './environment';\nimport { EnvsAspect } from './environments.aspect';\nimport { environmentsSchema } from './environments.graphql';\nimport { EnvRuntime, Runtime } from './runtime';\nimport { EnvDefinition } from './env-definition';\nimport { EnvServiceList } from './env-service-list';\nimport { EnvsCmd, GetEnvCmd, ListEnvsCmd } from './envs.cmd';\nimport { EnvFragment } from './env.fragment';\nimport { EnvNotFound, EnvNotConfiguredForComponent } from './exceptions';\n\nexport type EnvsRegistry = SlotRegistry<Environment>;\n\nexport type EnvsConfig = {\n env: string;\n options: EnvOptions;\n};\n\nexport type EnvOptions = {};\n\nexport type EnvTransformer = (env: Environment) => Environment;\n\nexport type ServiceSlot = SlotRegistry<Array<EnvService<any>>>;\n\nexport type Descriptor = {\n id: string;\n icon: string;\n services?: [];\n};\n\nexport const DEFAULT_ENV = 'teambit.harmony/node';\n\nexport class EnvsMain {\n static runtime = MainRuntime;\n\n private alreadyShownWarning = {};\n\n /**\n * icon of the extension.\n */\n icon() {\n return `<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"25\" cy=\"25\" r=\"20\"/>\n </svg>`;\n }\n\n constructor(\n /**\n * environments extension configuration.\n */\n readonly config: EnvsConfig,\n\n /**\n * harmony context.\n */\n private context: Harmony,\n\n /**\n * slot for allowing extensions to register new environment.\n */\n private envSlot: EnvsRegistry,\n\n private logger: Logger,\n\n private serviceSlot: ServiceSlot,\n\n private componentMain: ComponentMain\n ) {}\n\n /**\n * creates a new runtime environments for a set of components.\n */\n async createEnvironment(components: Component[]): Promise<Runtime> {\n return this.createRuntime(components);\n }\n\n /**\n * get the configured default env.\n */\n getDefaultEnv(): EnvDefinition {\n const defaultEnv = this.envSlot.get(DEFAULT_ENV);\n if (!defaultEnv) throw new Error('default env must be set.');\n\n return new EnvDefinition(DEFAULT_ENV, defaultEnv);\n }\n\n getCoreEnvsIds(): string[] {\n return [\n 'teambit.harmony/aspect',\n 'teambit.react/react',\n 'teambit.harmony/node',\n 'teambit.react/react-native',\n 'teambit.html/html',\n 'teambit.mdx/mdx',\n 'teambit.envs/env',\n 'teambit.mdx/readme',\n ];\n }\n\n /**\n * compose a new environment from a list of environment transformers.\n */\n compose(targetEnv: Environment, envTransformers: EnvTransformer[]) {\n const a = envTransformers.reduce((acc, transformer) => {\n acc = transformer(acc);\n return acc;\n }, targetEnv);\n\n return a;\n }\n\n /**\n * create an env transformer which overrides specific env properties.\n */\n override(propsToOverride: Environment): EnvTransformer {\n return (env: Environment) => {\n return this.merge(propsToOverride, env);\n };\n }\n\n /**\n * compose two environments into one.\n */\n merge<T extends Environment, S extends Environment>(targetEnv: Environment, sourceEnv: Environment): T & S {\n const allNames = new Set<string>();\n const keys = ['icon', 'name', 'description'];\n for (let o = sourceEnv; o !== Object.prototype; o = Object.getPrototypeOf(o)) {\n for (const name of Object.getOwnPropertyNames(o)) {\n allNames.add(name);\n }\n }\n\n allNames.forEach((key: string) => {\n const fn = sourceEnv[key];\n if (targetEnv[key]) return;\n if (keys.includes(key)) targetEnv[key] = fn;\n if (!fn || !fn.bind) {\n return;\n }\n targetEnv[key] = fn.bind(sourceEnv);\n });\n\n return targetEnv as T & S;\n }\n\n getEnvData(component: Component): AspectData {\n let envsData = component.state.aspects.get(EnvsAspect.id);\n if (!envsData) {\n // TODO: remove this once we re-export old components used to store the data here\n envsData = component.state.aspects.get('teambit.workspace/workspace');\n }\n if (!envsData) throw new Error(`env was not configured on component ${component.id.toString()}`);\n return envsData.data;\n }\n\n /**\n * Return the id of the env as configured in the envs data (without version by default)\n * The reason it's not contain version by default is that we want to take the version from the aspect defined on the component itself\n * As this version is stay up to date during tagging the env along with the component\n * @param component\n * @param ignoreVersion\n */\n private getEnvIdFromEnvsData(component: Component, ignoreVersion = true): string | undefined {\n const envsData = this.getEnvData(component);\n if (!envsData) return undefined;\n const rawEnvId = envsData.id;\n if (!rawEnvId) return undefined;\n if (!ignoreVersion) return rawEnvId;\n const envIdWithoutVersion = ComponentID.fromString(rawEnvId).toStringWithoutVersion();\n return envIdWithoutVersion;\n }\n\n /**\n * get the env id of the given component.\n */\n getEnvId(component: Component): string {\n const envIdFromEnvData = this.getEnvIdFromEnvsData(component);\n if (!envIdFromEnvData) {\n // This should never happen\n throw new Error(`no env found for ${component.id.toString()}`);\n }\n const withVersion = this.resolveEnv(component, envIdFromEnvData);\n const withVersionMatch = this.envSlot.toArray().find(([envId]) => {\n return withVersion?.toString() === envId;\n });\n const withVersionMatchId = withVersionMatch?.[0];\n if (withVersionMatchId) return withVersionMatchId;\n\n // Handle core envs\n const exactMatch = this.envSlot.toArray().find(([envId]) => {\n return envIdFromEnvData === envId;\n });\n\n const exactMatchId = exactMatch?.[0];\n if (exactMatchId) return exactMatchId;\n\n if (!withVersion) throw new EnvNotConfiguredForComponent(envIdFromEnvData, component.id.toString());\n return withVersion.toString();\n }\n\n isUsingCoreEnv(component: Component): boolean {\n const envId = this.getEnvId(component);\n return this.isCoreEnv(envId);\n }\n\n isCoreEnv(envId: string): boolean {\n return this.getCoreEnvsIds().includes(envId);\n }\n\n /**\n * get the env of the given component.\n * In case you are asking for the env during on load you should use calculateEnv instead\n */\n getEnv(component: Component): EnvDefinition {\n const id = this.getEnvId(component);\n const envDef = this.getEnvDefinitionByStringId(id);\n if (envDef) {\n return envDef;\n }\n // Do not allow a non existing env\n throw new EnvNotFound(id, component.id.toString());\n }\n\n /**\n * get the env component of the given component.\n */\n async getEnvComponent(component: Component): Promise<Component> {\n const envId = this.getEnvId(component);\n return this.getEnvComponentByEnvId(envId, component.id.toString());\n }\n\n /**\n * get the env component by the env id.\n */\n async getEnvComponentByEnvId(envId: string, requesting: string): Promise<Component> {\n const host = this.componentMain.getHost();\n const newId = await host.resolveComponentId(envId);\n const envComponent = await host.get(newId);\n if (!envComponent) {\n throw new BitError(`can't load env. env id is ${envId} used by component ${requesting}`);\n }\n return envComponent;\n }\n\n /**\n * get the env of the given component.\n * This will try to use the regular getEnv but fallback to the calculate env (in case you are using it during on load)\n * This is safe to be used on onLoad as well\n */\n getOrCalculateEnv(component: Component): EnvDefinition {\n try {\n return this.getEnv(component);\n } catch (err) {\n return this.calculateEnv(component);\n }\n }\n\n /**\n * get an environment Descriptor.\n */\n getDescriptor(component: Component): Descriptor | null {\n const envsData = this.getEnvData(component);\n return {\n id: envsData.id,\n icon: envsData.icon,\n services: envsData.services,\n };\n }\n\n resolveEnv(component: Component, id: string) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return id === aspectEntry.id.toString() || id === aspectEntry.id.toString({ ignoreVersion: true });\n });\n\n return matchedEntry?.id;\n }\n\n /**\n * This used to calculate the actual env during the component load.\n * Do not use it to get the env (use getEnv instead)\n * This should be used only during on load\n */\n calculateEnv(component: Component): EnvDefinition {\n // Search first for env configured via envs aspect itself\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n let envIdFromEnvsConfigWithoutVersion;\n if (envIdFromEnvsConfig) {\n envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n if (envDef) {\n return envDef;\n }\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return (\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString() ||\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString({ ignoreVersion: true })\n );\n });\n if (matchedEntry) {\n // during the tag process, the version in the aspect-entry-id is changed and is not the\n // same as it was when it registered to the slot.\n const envDef = this.getEnvDefinitionById(matchedEntry.id);\n if (envDef) {\n return envDef;\n }\n // Do not allow a non existing env\n this.printWarningIfFirstTime(\n matchedEntry.id.toString(),\n `environment with ID: ${matchedEntry.id.toString()} configured on component ${component.id.toString()} was not found`\n );\n }\n // Do not allow configure teambit.envs/envs on the component without configure the env aspect itself\n const errMsg = new EnvNotConfiguredForComponent(envIdFromEnvsConfig as string, component.id.toString()).message;\n this.printWarningIfFirstTime(envIdFromEnvsConfig as string, errMsg);\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n let envDefFromList;\n component.state.aspects.entries.find((aspectEntry) => {\n const envDef = this.getEnvDefinitionById(aspectEntry.id);\n if (envDef) {\n envDefFromList = envDef;\n }\n return !!envDef;\n });\n\n if (envDefFromList) {\n return envDefFromList;\n }\n return this.getDefaultEnv();\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns #1 if exists, otherwise, #2.\n */\n getAllEnvsConfiguredOnComponent(component: Component): EnvDefinition[] {\n // if a component has \"envs\" config, use it and ignore other components that are set up\n // in this components which happen to be envs.\n const envDef = this.getEnvFromEnvsConfig(component);\n if (envDef) {\n return [envDef];\n }\n\n return this.getEnvsNotFromEnvsConfig(component);\n }\n\n /**\n * whether a component has an env configured (either by variant or .bitmap).\n */\n hasEnvConfigured(component: Component): boolean {\n return Boolean(this.getAllEnvsConfiguredOnComponent(component).length);\n }\n\n getAllRegisteredEnvs(): string[] {\n return this.envSlot.toArray().map((envData) => envData[0]);\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns only #1\n */\n getEnvFromEnvsConfig(component: Component): EnvDefinition | undefined {\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n if (!envIdFromEnvsConfig) {\n return undefined;\n }\n const envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n return envDef;\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns only #2\n */\n getEnvsNotFromEnvsConfig(component: Component): EnvDefinition[] {\n return component.state.aspects.entries.reduce((acc: EnvDefinition[], aspectEntry) => {\n const envDef = this.getEnvDefinitionById(aspectEntry.id);\n if (envDef) acc.push(envDef);\n return acc;\n }, []);\n }\n\n /**\n * @deprecated DO NOT USE THIS METHOD ANYMORE!!! (PLEASE USE .calculateEnv() instead!)\n */\n calculateEnvFromExtensions(extensions: ExtensionDataList): EnvDefinition {\n // Search first for env configured via envs aspect itself\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id);\n const envIdFromEnvsConfig = envsAspect?.config.env;\n let envIdFromEnvsConfigWithoutVersion;\n\n if (envIdFromEnvsConfig) {\n envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n if (envDef) {\n return envDef;\n }\n }\n\n const getEnvDefinitionByLegacyExtension = (extension: ExtensionDataEntry): EnvDefinition | undefined => {\n const envDef = extension.newExtensionId\n ? this.getEnvDefinitionById(extension.newExtensionId)\n : this.getEnvDefinitionByStringId(extension.stringId);\n return envDef;\n };\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = extensions.find((extension) => {\n if (extension.newExtensionId) {\n return (\n envIdFromEnvsConfigWithoutVersion === extension.newExtensionId.toString() ||\n envIdFromEnvsConfigWithoutVersion === extension.newExtensionId.toString({ ignoreVersion: true })\n );\n }\n return envIdFromEnvsConfigWithoutVersion === extension.stringId;\n });\n if (matchedEntry) {\n // during the tag process, the version in the aspect-entry-id is changed and is not the\n // same as it was when it registered to the slot.\n const envDef = getEnvDefinitionByLegacyExtension(matchedEntry);\n if (envDef) {\n return envDef;\n }\n // Do not allow a non existing env\n this.printWarningIfFirstTime(\n matchedEntry.id.toString(),\n `environment with ID: ${matchedEntry.id.toString()} was not found`\n );\n }\n // Do not allow configure teambit.envs/envs on the component without configure the env aspect itself\n const errMsg = new EnvNotConfiguredForComponent(envIdFromEnvsConfig).message;\n this.printWarningIfFirstTime(envIdFromEnvsConfig, errMsg);\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n let envDefFromList;\n extensions.find((extension: ExtensionDataEntry) => {\n const envDef = getEnvDefinitionByLegacyExtension(extension);\n if (envDef) {\n envDefFromList = envDef;\n }\n return !!envDef;\n });\n\n if (envDefFromList) {\n return envDefFromList;\n }\n return this.getDefaultEnv();\n }\n\n private getEnvIdFromEnvsConfig(component: Component): string | undefined {\n const envsAspect = component.state.aspects.get(EnvsAspect.id);\n return envsAspect?.config.env;\n }\n\n getEnvDefinitionById(id: ComponentID): EnvDefinition | undefined {\n const envDef =\n this.getEnvDefinitionByStringId(id.toString()) ||\n this.getEnvDefinitionByStringId(id.toString({ ignoreVersion: true }));\n return envDef;\n }\n\n async getEnvDefinitionByLegacyId(id: BitId): Promise<EnvDefinition | undefined> {\n const host = this.componentMain.getHost();\n const newId = await host.resolveComponentId(id);\n return this.getEnvDefinitionById(newId);\n }\n\n private getEnvDefinitionByStringId(envId: string): EnvDefinition | undefined {\n const env = this.envSlot.get(envId);\n if (env) {\n return new EnvDefinition(envId, env as Environment);\n }\n return undefined;\n }\n\n getEnvFromComponent(envComponent: Component): EnvDefinition | undefined {\n const env = this.getEnvDefinitionById(envComponent.id);\n return env;\n }\n\n /**\n * Return the env definition of teambit.envs/env\n */\n getEnvsEnvDefinition(): EnvDefinition {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.getEnvDefinitionByStringId('teambit.envs/env')!;\n }\n\n private printWarningIfFirstTime(envId: string, message: string) {\n if (!this.alreadyShownWarning[envId]) {\n this.alreadyShownWarning[envId] = true;\n this.logger.consoleWarning(message);\n }\n }\n\n /**\n * determines whether an env is registered.\n */\n isEnvRegistered(id: string) {\n return Boolean(this.envSlot.get(id));\n }\n\n isUsingAspectEnv(component: Component): boolean {\n const data = this.getEnvData(component);\n if (!data) return false;\n return data.type === 'aspect';\n }\n\n isUsingEnvEnv(component: Component): boolean {\n const data = this.getEnvData(component);\n if (!data) return false;\n return data.type === 'env';\n }\n\n /**\n * Check if the given component is an env component.\n * @param component\n * @returns\n */\n isEnv(component: Component): boolean {\n return this.isUsingEnvEnv(component) || this.isEnvRegistered(component.id.toString());\n }\n\n /**\n * register a new environment service.\n */\n registerService(...envServices: EnvService<any>[]) {\n this.serviceSlot.register(envServices);\n return this;\n }\n\n /**\n * get list of services enabled on an env.\n */\n getServices(env: EnvDefinition): EnvServiceList {\n const allServices = this.serviceSlot.toArray();\n const services: [string, EnvService<any>][] = [];\n allServices.forEach(([id, currentServices]) => {\n currentServices.forEach((service) => {\n if (this.implements(env, service)) {\n services.push([id, service]);\n }\n });\n });\n return new EnvServiceList(env, services);\n }\n\n implements(env: EnvDefinition, service: EnvService<any>) {\n // TODO: remove this after refactoring everything and remove getDescriptor from being optional.\n if (!service.getDescriptor) return false;\n return !!service.getDescriptor(env);\n }\n\n /**\n * register an environment.\n */\n registerEnv(env: Environment) {\n return this.envSlot.register(env);\n }\n\n // refactor here\n private async createRuntime(components: Component[]): Promise<Runtime> {\n return new Runtime(await this.aggregateByDefs(components), this.logger);\n }\n\n // :TODO can be refactored to few utilities who will make repeating this very easy.\n private async aggregateByDefs(components: Component[]): Promise<EnvRuntime[]> {\n this.throwForDuplicateComponents(components);\n const envsMap = {};\n components.forEach((component: Component) => {\n const envDef = this.getEnv(component);\n const envId = envDef.id;\n const env = envDef.env;\n // handle config as well when aggregating envs.\n if (envsMap[envId]) envsMap[envId].components.push(component);\n else\n envsMap[envId] = {\n components: [component],\n env,\n };\n });\n\n return Promise.all(\n Object.keys(envsMap).map(async (key) => {\n const envAspectDef = await this.getEnvAspectDef(key);\n return new EnvRuntime(key, envsMap[key].env, envsMap[key].components, envAspectDef);\n })\n );\n }\n\n private async getEnvAspectDef(envId: string): Promise<AspectDefinition> {\n const host = this.componentMain.getHost();\n const id = await host.resolveComponentId(envId);\n const def = (await host.resolveAspects(MainRuntime.name, [id], { requestedOnly: true }))[0];\n return def;\n }\n\n private throwForDuplicateComponents(components: Component[]) {\n const idsStr = components.map((c) => c.id.toString());\n const duplications = findDuplications(idsStr);\n if (duplications.length) {\n throw new Error(`found duplicated components: ${duplications.join(', ')}`);\n }\n }\n\n static slots = [Slot.withType<Environment>(), Slot.withType<EnvService<any>>()];\n\n static dependencies = [GraphqlAspect, LoggerAspect, ComponentAspect, CLIAspect];\n\n static async provider(\n [graphql, loggerAspect, component, cli]: [GraphqlMain, LoggerMain, ComponentMain, CLIMain],\n config: EnvsConfig,\n [envSlot, serviceSlot]: [EnvsRegistry, ServiceSlot],\n context: Harmony\n ) {\n const logger = loggerAspect.createLogger(EnvsAspect.id);\n const envs = new EnvsMain(config, context, envSlot, logger, serviceSlot, component);\n component.registerShowFragments([new EnvFragment(envs)]);\n const envsCmd = new EnvsCmd(envs, component);\n envsCmd.commands = [new ListEnvsCmd(envs, component), new GetEnvCmd(envs, component)];\n cli.register(envsCmd);\n graphql.register(environmentsSchema(envs));\n return envs;\n }\n}\n\nEnvsAspect.addRuntime(EnvsMain);\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["DEFAULT_ENV","EnvsMain","icon","constructor","config","context","envSlot","logger","serviceSlot","componentMain","createEnvironment","components","createRuntime","getDefaultEnv","defaultEnv","get","Error","EnvDefinition","getCoreEnvsIds","compose","targetEnv","envTransformers","a","reduce","acc","transformer","override","propsToOverride","env","merge","sourceEnv","allNames","Set","keys","o","Object","prototype","getPrototypeOf","name","getOwnPropertyNames","add","forEach","key","fn","includes","bind","getEnvData","component","envsData","state","aspects","EnvsAspect","id","toString","data","getEnvIdFromEnvsData","ignoreVersion","undefined","rawEnvId","envIdWithoutVersion","ComponentID","fromString","toStringWithoutVersion","getEnvId","envIdFromEnvData","withVersion","resolveEnv","withVersionMatch","toArray","find","envId","withVersionMatchId","exactMatch","exactMatchId","EnvNotConfiguredForComponent","isUsingCoreEnv","isCoreEnv","getEnv","envDef","getEnvDefinitionByStringId","EnvNotFound","getEnvComponent","getEnvComponentByEnvId","requesting","host","getHost","newId","resolveComponentId","envComponent","BitError","getOrCalculateEnv","err","calculateEnv","getDescriptor","services","matchedEntry","entries","aspectEntry","envIdFromEnvsConfig","getEnvIdFromEnvsConfig","envIdFromEnvsConfigWithoutVersion","getEnvDefinitionById","printWarningIfFirstTime","errMsg","message","envDefFromList","getAllEnvsConfiguredOnComponent","getEnvFromEnvsConfig","getEnvsNotFromEnvsConfig","hasEnvConfigured","Boolean","length","getAllRegisteredEnvs","map","envData","push","calculateEnvFromExtensions","extensions","envsAspect","findCoreExtension","getEnvDefinitionByLegacyExtension","extension","newExtensionId","stringId","getEnvDefinitionByLegacyId","getEnvFromComponent","getEnvsEnvDefinition","alreadyShownWarning","consoleWarning","isEnvRegistered","isUsingAspectEnv","type","isUsingEnvEnv","isEnv","registerService","envServices","register","getServices","allServices","currentServices","service","implements","EnvServiceList","registerEnv","Runtime","aggregateByDefs","throwForDuplicateComponents","envsMap","Promise","all","envAspectDef","getEnvAspectDef","EnvRuntime","def","resolveAspects","MainRuntime","requestedOnly","idsStr","c","duplications","findDuplications","join","provider","graphql","loggerAspect","cli","createLogger","envs","registerShowFragments","EnvFragment","envsCmd","EnvsCmd","commands","ListEnvsCmd","GetEnvCmd","environmentsSchema","Slot","withType","GraphqlAspect","LoggerAspect","ComponentAspect","CLIAspect","addRuntime"],"sources":["environments.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentAspect, ComponentMain, ComponentID, AspectData } from '@teambit/component';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Harmony, Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport { ExtensionDataList, ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { BitError } from '@teambit/bit-error';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { EnvService } from './services';\nimport { Environment } from './environment';\nimport { EnvsAspect } from './environments.aspect';\nimport { environmentsSchema } from './environments.graphql';\nimport { EnvRuntime, Runtime } from './runtime';\nimport { EnvDefinition } from './env-definition';\nimport { EnvServiceList } from './env-service-list';\nimport { EnvsCmd, GetEnvCmd, ListEnvsCmd } from './envs.cmd';\nimport { EnvFragment } from './env.fragment';\nimport { EnvNotFound, EnvNotConfiguredForComponent } from './exceptions';\n\nexport type EnvsRegistry = SlotRegistry<Environment>;\n\nexport type EnvsConfig = {\n env: string;\n options: EnvOptions;\n};\n\nexport type EnvOptions = {};\n\nexport type EnvTransformer = (env: Environment) => Environment;\n\nexport type ServiceSlot = SlotRegistry<Array<EnvService<any>>>;\n\nexport type Descriptor = {\n id: string;\n icon: string;\n services?: [];\n};\n\nexport const DEFAULT_ENV = 'teambit.harmony/node';\n\nexport class EnvsMain {\n static runtime = MainRuntime;\n\n private alreadyShownWarning = {};\n\n /**\n * icon of the extension.\n */\n icon() {\n return `<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"25\" cy=\"25\" r=\"20\"/>\n </svg>`;\n }\n\n constructor(\n /**\n * environments extension configuration.\n */\n readonly config: EnvsConfig,\n\n /**\n * harmony context.\n */\n private context: Harmony,\n\n /**\n * slot for allowing extensions to register new environment.\n */\n private envSlot: EnvsRegistry,\n\n private logger: Logger,\n\n private serviceSlot: ServiceSlot,\n\n private componentMain: ComponentMain\n ) {}\n\n /**\n * creates a new runtime environments for a set of components.\n */\n async createEnvironment(components: Component[]): Promise<Runtime> {\n return this.createRuntime(components);\n }\n\n /**\n * get the configured default env.\n */\n getDefaultEnv(): EnvDefinition {\n const defaultEnv = this.envSlot.get(DEFAULT_ENV);\n if (!defaultEnv) throw new Error('default env must be set.');\n\n return new EnvDefinition(DEFAULT_ENV, defaultEnv);\n }\n\n getCoreEnvsIds(): string[] {\n return [\n 'teambit.harmony/aspect',\n 'teambit.react/react',\n 'teambit.harmony/node',\n 'teambit.react/react-native',\n 'teambit.html/html',\n 'teambit.mdx/mdx',\n 'teambit.envs/env',\n 'teambit.mdx/readme',\n ];\n }\n\n /**\n * compose a new environment from a list of environment transformers.\n */\n compose(targetEnv: Environment, envTransformers: EnvTransformer[]) {\n const a = envTransformers.reduce((acc, transformer) => {\n acc = transformer(acc);\n return acc;\n }, targetEnv);\n\n return a;\n }\n\n /**\n * create an env transformer which overrides specific env properties.\n */\n override(propsToOverride: Environment): EnvTransformer {\n return (env: Environment) => {\n return this.merge(propsToOverride, env);\n };\n }\n\n /**\n * compose two environments into one.\n */\n merge<T extends Environment, S extends Environment>(targetEnv: Environment, sourceEnv: Environment): T & S {\n const allNames = new Set<string>();\n const keys = ['icon', 'name', 'description'];\n for (let o = sourceEnv; o !== Object.prototype; o = Object.getPrototypeOf(o)) {\n for (const name of Object.getOwnPropertyNames(o)) {\n allNames.add(name);\n }\n }\n\n allNames.forEach((key: string) => {\n const fn = sourceEnv[key];\n if (targetEnv[key]) return;\n if (keys.includes(key)) targetEnv[key] = fn;\n if (!fn || !fn.bind) {\n return;\n }\n targetEnv[key] = fn.bind(sourceEnv);\n });\n\n return targetEnv as T & S;\n }\n\n getEnvData(component: Component): AspectData {\n let envsData = component.state.aspects.get(EnvsAspect.id);\n if (!envsData) {\n // TODO: remove this once we re-export old components used to store the data here\n envsData = component.state.aspects.get('teambit.workspace/workspace');\n }\n if (!envsData) throw new Error(`env was not configured on component ${component.id.toString()}`);\n return envsData.data;\n }\n\n /**\n * Return the id of the env as configured in the envs data (without version by default)\n * The reason it's not contain version by default is that we want to take the version from the aspect defined on the component itself\n * As this version is stay up to date during tagging the env along with the component\n * @param component\n * @param ignoreVersion\n */\n private getEnvIdFromEnvsData(component: Component, ignoreVersion = true): string | undefined {\n const envsData = this.getEnvData(component);\n if (!envsData) return undefined;\n const rawEnvId = envsData.id;\n if (!rawEnvId) return undefined;\n if (!ignoreVersion) return rawEnvId;\n const envIdWithoutVersion = ComponentID.fromString(rawEnvId).toStringWithoutVersion();\n return envIdWithoutVersion;\n }\n\n /**\n * get the env id of the given component.\n */\n getEnvId(component: Component): string {\n const envIdFromEnvData = this.getEnvIdFromEnvsData(component);\n if (!envIdFromEnvData) {\n // This should never happen\n throw new Error(`no env found for ${component.id.toString()}`);\n }\n const withVersion = this.resolveEnv(component, envIdFromEnvData);\n const withVersionMatch = this.envSlot.toArray().find(([envId]) => {\n return withVersion?.toString() === envId;\n });\n const withVersionMatchId = withVersionMatch?.[0];\n if (withVersionMatchId) return withVersionMatchId;\n\n // Handle core envs\n const exactMatch = this.envSlot.toArray().find(([envId]) => {\n return envIdFromEnvData === envId;\n });\n\n const exactMatchId = exactMatch?.[0];\n if (exactMatchId) return exactMatchId;\n\n if (!withVersion) throw new EnvNotConfiguredForComponent(envIdFromEnvData, component.id.toString());\n return withVersion.toString();\n }\n\n isUsingCoreEnv(component: Component): boolean {\n const envId = this.getEnvId(component);\n return this.isCoreEnv(envId);\n }\n\n isCoreEnv(envId: string): boolean {\n return this.getCoreEnvsIds().includes(envId);\n }\n\n /**\n * get the env of the given component.\n * In case you are asking for the env during on load you should use calculateEnv instead\n */\n getEnv(component: Component): EnvDefinition {\n const id = this.getEnvId(component);\n const envDef = this.getEnvDefinitionByStringId(id);\n if (envDef) {\n return envDef;\n }\n // Do not allow a non existing env\n throw new EnvNotFound(id, component.id.toString());\n }\n\n /**\n * get the env component of the given component.\n */\n async getEnvComponent(component: Component): Promise<Component> {\n const envId = this.getEnvId(component);\n return this.getEnvComponentByEnvId(envId, component.id.toString());\n }\n\n /**\n * get the env component by the env id.\n */\n async getEnvComponentByEnvId(envId: string, requesting: string): Promise<Component> {\n const host = this.componentMain.getHost();\n const newId = await host.resolveComponentId(envId);\n const envComponent = await host.get(newId);\n if (!envComponent) {\n throw new BitError(`can't load env. env id is ${envId} used by component ${requesting}`);\n }\n return envComponent;\n }\n\n /**\n * get the env of the given component.\n * This will try to use the regular getEnv but fallback to the calculate env (in case you are using it during on load)\n * This is safe to be used on onLoad as well\n */\n getOrCalculateEnv(component: Component): EnvDefinition {\n try {\n return this.getEnv(component);\n } catch (err) {\n return this.calculateEnv(component);\n }\n }\n\n /**\n * get an environment Descriptor.\n */\n getDescriptor(component: Component): Descriptor | null {\n const envsData = this.getEnvData(component);\n return {\n id: envsData.id,\n icon: envsData.icon,\n services: envsData.services,\n };\n }\n\n resolveEnv(component: Component, id: string) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return id === aspectEntry.id.toString() || id === aspectEntry.id.toString({ ignoreVersion: true });\n });\n\n return matchedEntry?.id;\n }\n\n /**\n * This used to calculate the actual env during the component load.\n * Do not use it to get the env (use getEnv instead)\n * This should be used only during on load\n */\n calculateEnv(component: Component): EnvDefinition {\n // Search first for env configured via envs aspect itself\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n let envIdFromEnvsConfigWithoutVersion;\n if (envIdFromEnvsConfig) {\n envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n if (envDef) {\n return envDef;\n }\n }\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = component.state.aspects.entries.find((aspectEntry) => {\n return (\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString() ||\n envIdFromEnvsConfigWithoutVersion === aspectEntry.id.toString({ ignoreVersion: true })\n );\n });\n if (matchedEntry) {\n // during the tag process, the version in the aspect-entry-id is changed and is not the\n // same as it was when it registered to the slot.\n const envDef = this.getEnvDefinitionById(matchedEntry.id);\n if (envDef) {\n return envDef;\n }\n // Do not allow a non existing env\n this.printWarningIfFirstTime(\n matchedEntry.id.toString(),\n `environment with ID: ${matchedEntry.id.toString()} configured on component ${component.id.toString()} was not found`\n );\n }\n // Do not allow configure teambit.envs/envs on the component without configure the env aspect itself\n const errMsg = new EnvNotConfiguredForComponent(envIdFromEnvsConfig as string, component.id.toString()).message;\n this.printWarningIfFirstTime(envIdFromEnvsConfig as string, errMsg);\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n let envDefFromList;\n component.state.aspects.entries.find((aspectEntry) => {\n const envDef = this.getEnvDefinitionById(aspectEntry.id);\n if (envDef) {\n envDefFromList = envDef;\n }\n return !!envDef;\n });\n\n if (envDefFromList) {\n return envDefFromList;\n }\n return this.getDefaultEnv();\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns #1 if exists, otherwise, #2.\n */\n getAllEnvsConfiguredOnComponent(component: Component): EnvDefinition[] {\n // if a component has \"envs\" config, use it and ignore other components that are set up\n // in this components which happen to be envs.\n const envDef = this.getEnvFromEnvsConfig(component);\n if (envDef) {\n return [envDef];\n }\n\n return this.getEnvsNotFromEnvsConfig(component);\n }\n\n /**\n * whether a component has an env configured (either by variant or .bitmap).\n */\n hasEnvConfigured(component: Component): boolean {\n return Boolean(this.getAllEnvsConfiguredOnComponent(component).length);\n }\n\n getAllRegisteredEnvs(): string[] {\n return this.envSlot.toArray().map((envData) => envData[0]);\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns only #1\n */\n getEnvFromEnvsConfig(component: Component): EnvDefinition | undefined {\n const envIdFromEnvsConfig = this.getEnvIdFromEnvsConfig(component);\n if (!envIdFromEnvsConfig) {\n return undefined;\n }\n const envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n return envDef;\n }\n\n /**\n * an env can be configured on a component in two ways:\n * 1) explicitly inside \"teambit.envs/envs\". `{ \"teambit.envs/envs\": { \"env\": \"my-env\" } }`\n * 2) the env aspect is set on the variant as any other aspect, e.g. `{ \"my-env\": {} }`\n *\n * this method returns only #2\n */\n getEnvsNotFromEnvsConfig(component: Component): EnvDefinition[] {\n return component.state.aspects.entries.reduce((acc: EnvDefinition[], aspectEntry) => {\n const envDef = this.getEnvDefinitionById(aspectEntry.id);\n if (envDef) acc.push(envDef);\n return acc;\n }, []);\n }\n\n /**\n * @deprecated DO NOT USE THIS METHOD ANYMORE!!! (PLEASE USE .calculateEnv() instead!)\n */\n calculateEnvFromExtensions(extensions: ExtensionDataList): EnvDefinition {\n // Search first for env configured via envs aspect itself\n const envsAspect = extensions.findCoreExtension(EnvsAspect.id);\n const envIdFromEnvsConfig = envsAspect?.config.env;\n let envIdFromEnvsConfigWithoutVersion;\n\n if (envIdFromEnvsConfig) {\n envIdFromEnvsConfigWithoutVersion = ComponentID.fromString(envIdFromEnvsConfig).toStringWithoutVersion();\n const envDef = this.getEnvDefinitionByStringId(envIdFromEnvsConfigWithoutVersion);\n if (envDef) {\n return envDef;\n }\n }\n\n const getEnvDefinitionByLegacyExtension = (extension: ExtensionDataEntry): EnvDefinition | undefined => {\n const envDef = extension.newExtensionId\n ? this.getEnvDefinitionById(extension.newExtensionId)\n : this.getEnvDefinitionByStringId(extension.stringId);\n return envDef;\n };\n\n // in some cases we have the id configured in the teambit.envs/envs but without the version\n // in such cases we won't find it in the slot\n // we search in the component aspect list a matching aspect which is match the id from the teambit.envs/envs\n if (envIdFromEnvsConfigWithoutVersion) {\n const matchedEntry = extensions.find((extension) => {\n if (extension.newExtensionId) {\n return (\n envIdFromEnvsConfigWithoutVersion === extension.newExtensionId.toString() ||\n envIdFromEnvsConfigWithoutVersion === extension.newExtensionId.toString({ ignoreVersion: true })\n );\n }\n return envIdFromEnvsConfigWithoutVersion === extension.stringId;\n });\n if (matchedEntry) {\n // during the tag process, the version in the aspect-entry-id is changed and is not the\n // same as it was when it registered to the slot.\n const envDef = getEnvDefinitionByLegacyExtension(matchedEntry);\n if (envDef) {\n return envDef;\n }\n // Do not allow a non existing env\n this.printWarningIfFirstTime(\n matchedEntry.id.toString(),\n `environment with ID: ${matchedEntry.id.toString()} was not found`\n );\n }\n // Do not allow configure teambit.envs/envs on the component without configure the env aspect itself\n const errMsg = new EnvNotConfiguredForComponent(envIdFromEnvsConfig).message;\n this.printWarningIfFirstTime(envIdFromEnvsConfig, errMsg);\n }\n\n // in case there is no config in teambit.envs/envs search the aspects for the first env that registered as env\n let envDefFromList;\n extensions.find((extension: ExtensionDataEntry) => {\n const envDef = getEnvDefinitionByLegacyExtension(extension);\n if (envDef) {\n envDefFromList = envDef;\n }\n return !!envDef;\n });\n\n if (envDefFromList) {\n return envDefFromList;\n }\n return this.getDefaultEnv();\n }\n\n private getEnvIdFromEnvsConfig(component: Component): string | undefined {\n const envsAspect = component.state.aspects.get(EnvsAspect.id);\n return envsAspect?.config.env;\n }\n\n getEnvDefinitionById(id: ComponentID): EnvDefinition | undefined {\n const envDef =\n this.getEnvDefinitionByStringId(id.toString()) ||\n this.getEnvDefinitionByStringId(id.toString({ ignoreVersion: true }));\n return envDef;\n }\n\n async getEnvDefinitionByLegacyId(id: BitId): Promise<EnvDefinition | undefined> {\n const host = this.componentMain.getHost();\n const newId = await host.resolveComponentId(id);\n return this.getEnvDefinitionById(newId);\n }\n\n private getEnvDefinitionByStringId(envId: string): EnvDefinition | undefined {\n const env = this.envSlot.get(envId);\n if (env) {\n return new EnvDefinition(envId, env as Environment);\n }\n return undefined;\n }\n\n getEnvFromComponent(envComponent: Component): EnvDefinition | undefined {\n const env = this.getEnvDefinitionById(envComponent.id);\n return env;\n }\n\n /**\n * Return the env definition of teambit.envs/env\n */\n getEnvsEnvDefinition(): EnvDefinition {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.getEnvDefinitionByStringId('teambit.envs/env')!;\n }\n\n private printWarningIfFirstTime(envId: string, message: string) {\n if (!this.alreadyShownWarning[envId]) {\n this.alreadyShownWarning[envId] = true;\n this.logger.consoleWarning(message);\n }\n }\n\n /**\n * determines whether an env is registered.\n */\n isEnvRegistered(id: string) {\n return Boolean(this.envSlot.get(id));\n }\n\n isUsingAspectEnv(component: Component): boolean {\n const data = this.getEnvData(component);\n if (!data) return false;\n return data.type === 'aspect';\n }\n\n isUsingEnvEnv(component: Component): boolean {\n const data = this.getEnvData(component);\n if (!data) return false;\n return data.type === 'env';\n }\n\n /**\n * Check if the given component is an env component.\n * @param component\n * @returns\n */\n isEnv(component: Component): boolean {\n return this.isUsingEnvEnv(component) || this.isEnvRegistered(component.id.toString());\n }\n\n /**\n * register a new environment service.\n */\n registerService(...envServices: EnvService<any>[]) {\n this.serviceSlot.register(envServices);\n return this;\n }\n\n /**\n * get list of services enabled on an env.\n */\n getServices(env: EnvDefinition): EnvServiceList {\n const allServices = this.serviceSlot.toArray();\n const services: [string, EnvService<any>][] = [];\n allServices.forEach(([id, currentServices]) => {\n currentServices.forEach((service) => {\n if (this.implements(env, service)) {\n services.push([id, service]);\n }\n });\n });\n return new EnvServiceList(env, services);\n }\n\n implements(env: EnvDefinition, service: EnvService<any>) {\n // TODO: remove this after refactoring everything and remove getDescriptor from being optional.\n if (!service.getDescriptor) return false;\n return !!service.getDescriptor(env);\n }\n\n /**\n * register an environment.\n */\n registerEnv(env: Environment) {\n return this.envSlot.register(env);\n }\n\n // refactor here\n private async createRuntime(components: Component[]): Promise<Runtime> {\n return new Runtime(await this.aggregateByDefs(components), this.logger);\n }\n\n // :TODO can be refactored to few utilities who will make repeating this very easy.\n private async aggregateByDefs(components: Component[]): Promise<EnvRuntime[]> {\n this.throwForDuplicateComponents(components);\n const envsMap = {};\n components.forEach((component: Component) => {\n const envDef = this.getEnv(component);\n const envId = envDef.id;\n const env = envDef.env;\n // handle config as well when aggregating envs.\n if (envsMap[envId]) envsMap[envId].components.push(component);\n else\n envsMap[envId] = {\n components: [component],\n env,\n };\n });\n\n return Promise.all(\n Object.keys(envsMap).map(async (key) => {\n const envAspectDef = await this.getEnvAspectDef(key);\n return new EnvRuntime(key, envsMap[key].env, envsMap[key].components, envAspectDef);\n })\n );\n }\n\n private async getEnvAspectDef(envId: string): Promise<AspectDefinition> {\n const host = this.componentMain.getHost();\n const id = await host.resolveComponentId(envId);\n const def = (await host.resolveAspects(MainRuntime.name, [id], { requestedOnly: true }))[0];\n return def;\n }\n\n private throwForDuplicateComponents(components: Component[]) {\n const idsStr = components.map((c) => c.id.toString());\n const duplications = findDuplications(idsStr);\n if (duplications.length) {\n throw new Error(`found duplicated components: ${duplications.join(', ')}`);\n }\n }\n\n static slots = [Slot.withType<Environment>(), Slot.withType<EnvService<any>>()];\n\n static dependencies = [GraphqlAspect, LoggerAspect, ComponentAspect, CLIAspect];\n\n static async provider(\n [graphql, loggerAspect, component, cli]: [GraphqlMain, LoggerMain, ComponentMain, CLIMain],\n config: EnvsConfig,\n [envSlot, serviceSlot]: [EnvsRegistry, ServiceSlot],\n context: Harmony\n ) {\n const logger = loggerAspect.createLogger(EnvsAspect.id);\n const envs = new EnvsMain(config, context, envSlot, logger, serviceSlot, component);\n component.registerShowFragments([new EnvFragment(envs)]);\n const envsCmd = new EnvsCmd(envs, component);\n envsCmd.commands = [new ListEnvsCmd(envs, component), new GetEnvCmd(envs, component)];\n cli.register(envsCmd);\n graphql.register(environmentsSchema(envs));\n return envs;\n }\n}\n\nEnvsAspect.addRuntime(EnvsMain);\n"],"mappings":"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"}
|
package/dist/envs.cmd.js
CHANGED
@@ -1,79 +1,57 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
4
|
require("core-js/modules/es.array.iterator.js");
|
6
|
-
|
7
5
|
require("core-js/modules/es.array.sort.js");
|
8
|
-
|
9
6
|
require("core-js/modules/es.promise.js");
|
10
|
-
|
11
7
|
Object.defineProperty(exports, "__esModule", {
|
12
8
|
value: true
|
13
9
|
});
|
14
10
|
exports.ListEnvsCmd = exports.GetEnvCmd = exports.EnvsCmd = void 0;
|
15
|
-
|
16
11
|
function _defineProperty2() {
|
17
12
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
18
|
-
|
19
13
|
_defineProperty2 = function () {
|
20
14
|
return data;
|
21
15
|
};
|
22
|
-
|
23
16
|
return data;
|
24
17
|
}
|
25
|
-
|
26
18
|
function _react() {
|
27
19
|
const data = _interopRequireDefault(require("react"));
|
28
|
-
|
29
20
|
_react = function () {
|
30
21
|
return data;
|
31
22
|
};
|
32
|
-
|
33
23
|
return data;
|
34
24
|
}
|
35
|
-
|
36
25
|
function _ink() {
|
37
26
|
const data = require("ink");
|
38
|
-
|
39
27
|
_ink = function () {
|
40
28
|
return data;
|
41
29
|
};
|
42
|
-
|
43
30
|
return data;
|
44
31
|
}
|
45
|
-
|
46
32
|
function _chalk() {
|
47
33
|
const data = _interopRequireDefault(require("chalk"));
|
48
|
-
|
49
34
|
_chalk = function () {
|
50
35
|
return data;
|
51
36
|
};
|
52
|
-
|
53
37
|
return data;
|
54
38
|
}
|
55
|
-
|
56
39
|
function _cliTable() {
|
57
40
|
const data = require("@teambit/cli-table");
|
58
|
-
|
59
41
|
_cliTable = function () {
|
60
42
|
return data;
|
61
43
|
};
|
62
|
-
|
63
44
|
return data;
|
64
45
|
}
|
65
|
-
|
66
46
|
function _envOverview() {
|
67
47
|
const data = require("./components/env-overview");
|
68
|
-
|
69
48
|
_envOverview = function () {
|
70
49
|
return data;
|
71
50
|
};
|
72
|
-
|
73
51
|
return data;
|
74
52
|
}
|
75
|
-
|
76
53
|
// eslint-disable-next-line max-classes-per-file
|
54
|
+
|
77
55
|
class ListEnvsCmd {
|
78
56
|
constructor(envs, componentAspect) {
|
79
57
|
this.envs = envs;
|
@@ -83,19 +61,13 @@ class ListEnvsCmd {
|
|
83
61
|
(0, _defineProperty2().default)(this, "options", []);
|
84
62
|
(0, _defineProperty2().default)(this, "group", 'development');
|
85
63
|
}
|
86
|
-
|
87
64
|
async report() {
|
88
65
|
const allEnvs = this.envs.getAllRegisteredEnvs().join('\n');
|
89
|
-
|
90
66
|
const title = _chalk().default.green('the following envs are available in the workspace:');
|
91
|
-
|
92
67
|
return `${title}\n${allEnvs}`;
|
93
68
|
}
|
94
|
-
|
95
69
|
}
|
96
|
-
|
97
70
|
exports.ListEnvsCmd = ListEnvsCmd;
|
98
|
-
|
99
71
|
class GetEnvCmd {
|
100
72
|
constructor(envs, componentAspect) {
|
101
73
|
this.envs = envs;
|
@@ -110,7 +82,6 @@ class GetEnvCmd {
|
|
110
82
|
(0, _defineProperty2().default)(this, "options", []);
|
111
83
|
(0, _defineProperty2().default)(this, "group", 'development');
|
112
84
|
}
|
113
|
-
|
114
85
|
async showEnv(id, host) {
|
115
86
|
const component = await host.get(await host.resolveComponentId(id));
|
116
87
|
if (!component) throw new Error(`component for env ${id} was not found`);
|
@@ -136,18 +107,14 @@ class GetEnvCmd {
|
|
136
107
|
envDef: env
|
137
108
|
}), all.map(item => item));
|
138
109
|
}
|
139
|
-
|
140
110
|
async render([name]) {
|
141
|
-
const host = this.componentAspect.getHost();
|
142
|
-
|
111
|
+
const host = this.componentAspect.getHost();
|
112
|
+
// TODO: think what to do re this line with gilad.
|
143
113
|
if (!host) throw new Error('error: workspace not found');
|
144
114
|
return this.showEnv(name, host);
|
145
115
|
}
|
146
|
-
|
147
116
|
}
|
148
|
-
|
149
117
|
exports.GetEnvCmd = GetEnvCmd;
|
150
|
-
|
151
118
|
class EnvsCmd {
|
152
119
|
constructor(envs, componentAspect) {
|
153
120
|
this.envs = envs;
|
@@ -159,16 +126,14 @@ class EnvsCmd {
|
|
159
126
|
(0, _defineProperty2().default)(this, "group", 'development');
|
160
127
|
(0, _defineProperty2().default)(this, "commands", []);
|
161
128
|
}
|
162
|
-
|
163
129
|
async render() {
|
164
|
-
const host = this.componentAspect.getHost();
|
165
|
-
|
130
|
+
const host = this.componentAspect.getHost();
|
131
|
+
// TODO: think what to do re this line with gilad.
|
166
132
|
if (!host) throw new Error('error: workspace not found');
|
167
|
-
const components = await host.list();
|
168
|
-
|
133
|
+
const components = await host.list();
|
134
|
+
// TODO: refactor to a react table
|
169
135
|
return /*#__PURE__*/_react().default.createElement(_ink().Text, null, this.getTable(components));
|
170
136
|
}
|
171
|
-
|
172
137
|
getTable(components) {
|
173
138
|
const tableData = components.map(component => {
|
174
139
|
const envId = this.envs.getEnvId(component);
|
@@ -182,15 +147,11 @@ class EnvsCmd {
|
|
182
147
|
}, {
|
183
148
|
value: 'env'
|
184
149
|
}];
|
185
|
-
|
186
150
|
const table = _cliTable().CLITable.fromObject(header, tableData);
|
187
|
-
|
188
151
|
table.sort();
|
189
152
|
return table.render();
|
190
153
|
}
|
191
|
-
|
192
154
|
}
|
193
|
-
|
194
155
|
exports.EnvsCmd = EnvsCmd;
|
195
156
|
|
196
157
|
//# sourceMappingURL=envs.cmd.js.map
|
package/dist/envs.cmd.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["ListEnvsCmd","constructor","envs","componentAspect","report","allEnvs","getAllRegisteredEnvs","join","title","chalk","green","GetEnvCmd","name","description","showEnv","id","host","component","get","resolveComponentId","Error","env","getEnv","envRuntime","createEnvironment","envExecutionContext","getEnvExecutionContext","services","getServices","allP","map","serviceId","service","render","all","Promise","item","getHost","EnvsCmd","components","list","getTable","tableData","envId","getEnvId","toString","header","value","table","CLITable","fromObject","sort"],"sources":["envs.cmd.tsx"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport React from 'react';\nimport { Text, Newline } from 'ink';\nimport chalk from 'chalk';\nimport { CLITable } from '@teambit/cli-table';\nimport { Command } from '@teambit/cli';\nimport { ComponentMain, ComponentFactory, Component } from '@teambit/component';\nimport { EnvsMain } from './environments.main.runtime';\nimport { EnvOverview } from './components/env-overview';\n\nexport class ListEnvsCmd implements Command {\n name = 'list';\n description = 'list all envs available in the workspace';\n options = [];\n group = 'development';\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async report() {\n const allEnvs = this.envs.getAllRegisteredEnvs().join('\\n');\n const title = chalk.green('the following envs are available in the workspace:');\n return `${title}\\n${allEnvs}`;\n }\n}\n\nexport class GetEnvCmd implements Command {\n name = 'get <component-name>';\n description = \"show information about a component's env\";\n arguments = [\n {\n name: 'component-name',\n description: \"the 'component name' or 'component id' of the component its env you'd like to inspect\",\n },\n ];\n examples: [{ cmd: 'get ui/button'; description: 'show information about the env configured for ui/button' }];\n options = [];\n group = 'development';\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async showEnv(id: string, host: ComponentFactory) {\n const component = await host.get(await host.resolveComponentId(id));\n if (!component) throw new Error(`component for env ${id} was not found`);\n const env = this.envs.getEnv(component);\n const envRuntime = await this.envs.createEnvironment([component]);\n const envExecutionContext = envRuntime.getEnvExecutionContext();\n const services = this.envs.getServices(env);\n const allP = services.services.map(async ([serviceId, service]) => {\n if (service.render)\n return (\n <Text>\n <Text bold underline color=\"cyan\">\n {serviceId}\n </Text>\n <Newline />\n <Newline />\n {await service.render(env, envExecutionContext)}\n </Text>\n );\n return (\n <Text key={serviceId}>\n <Text bold underline>\n {serviceId}\n </Text>\n </Text>\n );\n });\n\n const all = await Promise.all(allP);\n\n return (\n <Text>\n <EnvOverview envDef={env} />\n {all.map((item) => item)}\n </Text>\n );\n }\n\n async render([name]: [string]): Promise<JSX.Element> {\n const host = this.componentAspect.getHost();\n // TODO: think what to do re this line with gilad.\n if (!host) throw new Error('error: workspace not found');\n return this.showEnv(name, host);\n }\n}\n\nexport class EnvsCmd implements Command {\n name = 'envs';\n alias = 'env';\n description = 'list all components maintained by the workspace and their corresponding envs';\n options = [];\n group = 'development';\n commands: Command[] = [];\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async render(): Promise<JSX.Element> {\n const host = this.componentAspect.getHost();\n // TODO: think what to do re this line with gilad.\n if (!host) throw new Error('error: workspace not found');\n const components = await host.list();\n // TODO: refactor to a react table\n return <Text>{this.getTable(components)}</Text>;\n }\n\n private getTable(components: Component[]) {\n const tableData = components.map((component) => {\n const envId = this.envs.getEnvId(component);\n return {\n component: component.id.toString(),\n env: envId,\n };\n });\n\n const header = [\n {\n value: 'component',\n },\n {\n value: 'env',\n },\n ];\n const table = CLITable.fromObject(header, tableData);\n table.sort();\n return table.render();\n }\n}\n"],"mappings":"
|
1
|
+
{"version":3,"names":["ListEnvsCmd","constructor","envs","componentAspect","report","allEnvs","getAllRegisteredEnvs","join","title","chalk","green","GetEnvCmd","name","description","showEnv","id","host","component","get","resolveComponentId","Error","env","getEnv","envRuntime","createEnvironment","envExecutionContext","getEnvExecutionContext","services","getServices","allP","map","serviceId","service","render","all","Promise","item","getHost","EnvsCmd","components","list","getTable","tableData","envId","getEnvId","toString","header","value","table","CLITable","fromObject","sort"],"sources":["envs.cmd.tsx"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport React from 'react';\nimport { Text, Newline } from 'ink';\nimport chalk from 'chalk';\nimport { CLITable } from '@teambit/cli-table';\nimport { Command } from '@teambit/cli';\nimport { ComponentMain, ComponentFactory, Component } from '@teambit/component';\nimport { EnvsMain } from './environments.main.runtime';\nimport { EnvOverview } from './components/env-overview';\n\nexport class ListEnvsCmd implements Command {\n name = 'list';\n description = 'list all envs available in the workspace';\n options = [];\n group = 'development';\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async report() {\n const allEnvs = this.envs.getAllRegisteredEnvs().join('\\n');\n const title = chalk.green('the following envs are available in the workspace:');\n return `${title}\\n${allEnvs}`;\n }\n}\n\nexport class GetEnvCmd implements Command {\n name = 'get <component-name>';\n description = \"show information about a component's env\";\n arguments = [\n {\n name: 'component-name',\n description: \"the 'component name' or 'component id' of the component its env you'd like to inspect\",\n },\n ];\n examples: [{ cmd: 'get ui/button'; description: 'show information about the env configured for ui/button' }];\n options = [];\n group = 'development';\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async showEnv(id: string, host: ComponentFactory) {\n const component = await host.get(await host.resolveComponentId(id));\n if (!component) throw new Error(`component for env ${id} was not found`);\n const env = this.envs.getEnv(component);\n const envRuntime = await this.envs.createEnvironment([component]);\n const envExecutionContext = envRuntime.getEnvExecutionContext();\n const services = this.envs.getServices(env);\n const allP = services.services.map(async ([serviceId, service]) => {\n if (service.render)\n return (\n <Text>\n <Text bold underline color=\"cyan\">\n {serviceId}\n </Text>\n <Newline />\n <Newline />\n {await service.render(env, envExecutionContext)}\n </Text>\n );\n return (\n <Text key={serviceId}>\n <Text bold underline>\n {serviceId}\n </Text>\n </Text>\n );\n });\n\n const all = await Promise.all(allP);\n\n return (\n <Text>\n <EnvOverview envDef={env} />\n {all.map((item) => item)}\n </Text>\n );\n }\n\n async render([name]: [string]): Promise<JSX.Element> {\n const host = this.componentAspect.getHost();\n // TODO: think what to do re this line with gilad.\n if (!host) throw new Error('error: workspace not found');\n return this.showEnv(name, host);\n }\n}\n\nexport class EnvsCmd implements Command {\n name = 'envs';\n alias = 'env';\n description = 'list all components maintained by the workspace and their corresponding envs';\n options = [];\n group = 'development';\n commands: Command[] = [];\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async render(): Promise<JSX.Element> {\n const host = this.componentAspect.getHost();\n // TODO: think what to do re this line with gilad.\n if (!host) throw new Error('error: workspace not found');\n const components = await host.list();\n // TODO: refactor to a react table\n return <Text>{this.getTable(components)}</Text>;\n }\n\n private getTable(components: Component[]) {\n const tableData = components.map((component) => {\n const envId = this.envs.getEnvId(component);\n return {\n component: component.id.toString(),\n env: envId,\n };\n });\n\n const header = [\n {\n value: 'component',\n },\n {\n value: 'env',\n },\n ];\n const table = CLITable.fromObject(header, tableData);\n table.sort();\n return table.render();\n }\n}\n"],"mappings":"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"}
|
@@ -4,17 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.EnvNotConfiguredForComponent = void 0;
|
7
|
-
|
8
7
|
function _bitError() {
|
9
8
|
const data = require("@teambit/bit-error");
|
10
|
-
|
11
9
|
_bitError = function () {
|
12
10
|
return data;
|
13
11
|
};
|
14
|
-
|
15
12
|
return data;
|
16
13
|
}
|
17
|
-
|
18
14
|
class EnvNotConfiguredForComponent extends _bitError().BitError {
|
19
15
|
constructor(id, componentId) {
|
20
16
|
const suffix = componentId ? ` for the component ${componentId}` : '';
|
@@ -22,9 +18,7 @@ class EnvNotConfiguredForComponent extends _bitError().BitError {
|
|
22
18
|
you probably need to add this environment as a key to your variant in the workspace.jsonc. for example, "your-variant": { "${id}": {} }
|
23
19
|
`);
|
24
20
|
}
|
25
|
-
|
26
21
|
}
|
27
|
-
|
28
22
|
exports.EnvNotConfiguredForComponent = EnvNotConfiguredForComponent;
|
29
23
|
|
30
24
|
//# sourceMappingURL=env-not-configured-for-component.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["EnvNotConfiguredForComponent","BitError","constructor","id","componentId","suffix"],"sources":["env-not-configured-for-component.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotConfiguredForComponent extends BitError {\n constructor(id: string, componentId?: string) {\n const suffix = componentId ? ` for the component ${componentId}` : '';\n super(`environment with ID: \"${id}\" is not configured as extension${suffix}.\nyou probably need to add this environment as a key to your variant in the workspace.jsonc. for example, \"your-variant\": { \"${id}\": {} }\n`);\n }\n}\n"],"mappings":"
|
1
|
+
{"version":3,"names":["EnvNotConfiguredForComponent","BitError","constructor","id","componentId","suffix"],"sources":["env-not-configured-for-component.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotConfiguredForComponent extends BitError {\n constructor(id: string, componentId?: string) {\n const suffix = componentId ? ` for the component ${componentId}` : '';\n super(`environment with ID: \"${id}\" is not configured as extension${suffix}.\nyou probably need to add this environment as a key to your variant in the workspace.jsonc. for example, \"your-variant\": { \"${id}\": {} }\n`);\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,4BAA4B,SAASC,oBAAQ,CAAC;EACzDC,WAAW,CAACC,EAAU,EAAEC,WAAoB,EAAE;IAC5C,MAAMC,MAAM,GAAGD,WAAW,GAAI,sBAAqBA,WAAY,EAAC,GAAG,EAAE;IACrE,KAAK,CAAE,yBAAwBD,EAAG,mCAAkCE,MAAO;AAC/E,6HAA6HF,EAAG;AAChI,CAAC,CAAC;EACA;AACF;AAAC"}
|
@@ -4,25 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.EnvNotFoundInRuntime = void 0;
|
7
|
-
|
8
7
|
function _bitError() {
|
9
8
|
const data = require("@teambit/bit-error");
|
10
|
-
|
11
9
|
_bitError = function () {
|
12
10
|
return data;
|
13
11
|
};
|
14
|
-
|
15
12
|
return data;
|
16
13
|
}
|
17
|
-
|
18
14
|
class EnvNotFoundInRuntime extends _bitError().BitError {
|
19
15
|
constructor(id) {
|
20
16
|
super(`environment with ID: ${id} was not found configured to any of your components`);
|
21
17
|
this.id = id;
|
22
18
|
}
|
23
|
-
|
24
19
|
}
|
25
|
-
|
26
20
|
exports.EnvNotFoundInRuntime = EnvNotFoundInRuntime;
|
27
21
|
|
28
22
|
//# sourceMappingURL=env-not-found-in-runtime.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["EnvNotFoundInRuntime","BitError","constructor","id"],"sources":["env-not-found-in-runtime.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotFoundInRuntime extends BitError {\n constructor(private id: string) {\n super(`environment with ID: ${id} was not found configured to any of your components`);\n }\n}\n"],"mappings":"
|
1
|
+
{"version":3,"names":["EnvNotFoundInRuntime","BitError","constructor","id"],"sources":["env-not-found-in-runtime.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotFoundInRuntime extends BitError {\n constructor(private id: string) {\n super(`environment with ID: ${id} was not found configured to any of your components`);\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,oBAAoB,SAASC,oBAAQ,CAAC;EACjDC,WAAW,CAASC,EAAU,EAAE;IAC9B,KAAK,CAAE,wBAAuBA,EAAG,qDAAoD,CAAC;IAAC,KADrEA,EAAU,GAAVA,EAAU;EAE9B;AACF;AAAC"}
|
@@ -4,28 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.EnvNotFound = void 0;
|
7
|
-
|
8
7
|
function _bitError() {
|
9
8
|
const data = require("@teambit/bit-error");
|
10
|
-
|
11
9
|
_bitError = function () {
|
12
10
|
return data;
|
13
11
|
};
|
14
|
-
|
15
12
|
return data;
|
16
13
|
}
|
17
|
-
|
18
14
|
class EnvNotFound extends _bitError().BitError {
|
19
15
|
constructor(id, componentId) {
|
20
16
|
super(getMessage(id, componentId));
|
21
17
|
this.id = id;
|
22
18
|
this.componentId = componentId;
|
23
19
|
}
|
24
|
-
|
25
20
|
}
|
26
|
-
|
27
21
|
exports.EnvNotFound = EnvNotFound;
|
28
|
-
|
29
22
|
function getMessage(id, componentId) {
|
30
23
|
const compIdDetails = componentId ? `configured on component ${componentId}` : '';
|
31
24
|
return `environment with ID: ${id} ${compIdDetails} was not found`;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["EnvNotFound","BitError","constructor","id","componentId","getMessage","compIdDetails"],"sources":["env-not-found.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotFound extends BitError {\n constructor(private id: string, private componentId?: string) {\n super(getMessage(id, componentId));\n }\n}\n\nfunction getMessage(id: string, componentId?: string): string {\n const compIdDetails = componentId ? `configured on component ${componentId}` : '';\n return `environment with ID: ${id} ${compIdDetails} was not found`;\n}\n"],"mappings":"
|
1
|
+
{"version":3,"names":["EnvNotFound","BitError","constructor","id","componentId","getMessage","compIdDetails"],"sources":["env-not-found.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class EnvNotFound extends BitError {\n constructor(private id: string, private componentId?: string) {\n super(getMessage(id, componentId));\n }\n}\n\nfunction getMessage(id: string, componentId?: string): string {\n const compIdDetails = componentId ? `configured on component ${componentId}` : '';\n return `environment with ID: ${id} ${compIdDetails} was not found`;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,WAAW,SAASC,oBAAQ,CAAC;EACxCC,WAAW,CAASC,EAAU,EAAUC,WAAoB,EAAE;IAC5D,KAAK,CAACC,UAAU,CAACF,EAAE,EAAEC,WAAW,CAAC,CAAC;IAAC,KADjBD,EAAU,GAAVA,EAAU;IAAA,KAAUC,WAAoB,GAApBA,WAAoB;EAE5D;AACF;AAAC;AAED,SAASC,UAAU,CAACF,EAAU,EAAEC,WAAoB,EAAU;EAC5D,MAAME,aAAa,GAAGF,WAAW,GAAI,2BAA0BA,WAAY,EAAC,GAAG,EAAE;EACjF,OAAQ,wBAAuBD,EAAG,IAAGG,aAAc,gBAAe;AACpE"}
|
package/dist/exceptions/index.js
CHANGED
@@ -21,34 +21,25 @@ Object.defineProperty(exports, "EnvNotFoundInRuntime", {
|
|
21
21
|
return _envNotFoundInRuntime().EnvNotFoundInRuntime;
|
22
22
|
}
|
23
23
|
});
|
24
|
-
|
25
24
|
function _envNotFoundInRuntime() {
|
26
25
|
const data = require("./env-not-found-in-runtime");
|
27
|
-
|
28
26
|
_envNotFoundInRuntime = function () {
|
29
27
|
return data;
|
30
28
|
};
|
31
|
-
|
32
29
|
return data;
|
33
30
|
}
|
34
|
-
|
35
31
|
function _envNotFound() {
|
36
32
|
const data = require("./env-not-found");
|
37
|
-
|
38
33
|
_envNotFound = function () {
|
39
34
|
return data;
|
40
35
|
};
|
41
|
-
|
42
36
|
return data;
|
43
37
|
}
|
44
|
-
|
45
38
|
function _envNotConfiguredForComponent() {
|
46
39
|
const data = require("./env-not-configured-for-component");
|
47
|
-
|
48
40
|
_envNotConfiguredForComponent = function () {
|
49
41
|
return data;
|
50
42
|
};
|
51
|
-
|
52
43
|
return data;
|
53
44
|
}
|
54
45
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { EnvNotFoundInRuntime } from './env-not-found-in-runtime';\nexport { EnvNotFound } from './env-not-found';\nexport { EnvNotConfiguredForComponent } from './env-not-configured-for-component';\n"],"mappings":"
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { EnvNotFoundInRuntime } from './env-not-found-in-runtime';\nexport { EnvNotFound } from './env-not-found';\nexport { EnvNotConfiguredForComponent } from './env-not-configured-for-component';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
|