@teambit/envs 0.0.963 → 0.0.965

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.
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { Command } from '@teambit/cli';
2
+ import { Command, CommandOptions } from '@teambit/cli';
3
3
  import { ComponentMain, ComponentFactory } from '@teambit/component';
4
4
  import { EnvsMain } from './environments.main.runtime';
5
5
  export declare class ListEnvsCmd implements Command {
@@ -12,6 +12,9 @@ export declare class ListEnvsCmd implements Command {
12
12
  constructor(envs: EnvsMain, componentAspect: ComponentMain);
13
13
  report(): Promise<string>;
14
14
  }
15
+ declare type GetEnvOpts = {
16
+ services: string;
17
+ };
15
18
  export declare class GetEnvCmd implements Command {
16
19
  private envs;
17
20
  private componentAspect;
@@ -25,11 +28,11 @@ export declare class GetEnvCmd implements Command {
25
28
  cmd: 'get ui/button';
26
29
  description: 'show information about the env configured for ui/button';
27
30
  }];
28
- options: never[];
31
+ options: CommandOptions;
29
32
  group: string;
30
33
  constructor(envs: EnvsMain, componentAspect: ComponentMain);
31
- showEnv(id: string, host: ComponentFactory): Promise<JSX.Element>;
32
- render([name]: [string]): Promise<JSX.Element>;
34
+ showEnv(id: string, host: ComponentFactory, servicesArr: string[] | undefined): Promise<JSX.Element>;
35
+ render([name]: [string], { services }: GetEnvOpts): Promise<JSX.Element>;
33
36
  }
34
37
  export declare class EnvsCmd implements Command {
35
38
  private envs;
@@ -44,3 +47,4 @@ export declare class EnvsCmd implements Command {
44
47
  render(): Promise<JSX.Element>;
45
48
  private getTable;
46
49
  }
50
+ export {};
package/dist/envs.cmd.js CHANGED
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  require("core-js/modules/es.array.iterator.js");
5
5
  require("core-js/modules/es.array.sort.js");
6
6
  require("core-js/modules/es.promise.js");
7
+ require("core-js/modules/es.regexp.exec.js");
7
8
  Object.defineProperty(exports, "__esModule", {
8
9
  value: true
9
10
  });
@@ -43,6 +44,13 @@ function _cliTable() {
43
44
  };
44
45
  return data;
45
46
  }
47
+ function _lodash() {
48
+ const data = require("lodash");
49
+ _lodash = function () {
50
+ return data;
51
+ };
52
+ return data;
53
+ }
46
54
  function _envOverview() {
47
55
  const data = require("./components/env-overview");
48
56
  _envOverview = function () {
@@ -79,10 +87,10 @@ class GetEnvCmd {
79
87
  description: "the 'component name' or 'component id' of the component its env you'd like to inspect"
80
88
  }]);
81
89
  (0, _defineProperty2().default)(this, "examples", void 0);
82
- (0, _defineProperty2().default)(this, "options", []);
90
+ (0, _defineProperty2().default)(this, "options", [['', 'services <string>', 'show information about the specific services only. for multiple services, separate by a comma and wrap with quotes']]);
83
91
  (0, _defineProperty2().default)(this, "group", 'development');
84
92
  }
85
- async showEnv(id, host) {
93
+ async showEnv(id, host, servicesArr) {
86
94
  const component = await host.get(await host.resolveComponentId(id));
87
95
  if (!component) throw new Error(`component for env ${id} was not found`);
88
96
  const env = this.envs.getEnv(component);
@@ -90,6 +98,7 @@ class GetEnvCmd {
90
98
  const envExecutionContext = envRuntime.getEnvExecutionContext();
91
99
  const services = this.envs.getServices(env);
92
100
  const allP = services.services.map(async ([serviceId, service]) => {
101
+ if (servicesArr && !servicesArr.includes(serviceId)) return null;
93
102
  if (service.render) return /*#__PURE__*/_react().default.createElement(_ink().Text, null, /*#__PURE__*/_react().default.createElement(_ink().Text, {
94
103
  bold: true,
95
104
  underline: true,
@@ -102,16 +111,20 @@ class GetEnvCmd {
102
111
  underline: true
103
112
  }, serviceId));
104
113
  });
105
- const all = await Promise.all(allP);
114
+ const all = (0, _lodash().compact)(await Promise.all(allP));
106
115
  return /*#__PURE__*/_react().default.createElement(_ink().Text, null, /*#__PURE__*/_react().default.createElement(_envOverview().EnvOverview, {
107
116
  envDef: env
108
117
  }), all.map(item => item));
109
118
  }
110
- async render([name]) {
119
+ async render([name], {
120
+ services
121
+ }) {
111
122
  const host = this.componentAspect.getHost();
123
+ const servicesArr = services ? services.split(',') : undefined;
124
+
112
125
  // TODO: think what to do re this line with gilad.
113
126
  if (!host) throw new Error('error: workspace not found');
114
- return this.showEnv(name, host);
127
+ return this.showEnv(name, host, servicesArr);
115
128
  }
116
129
  }
117
130
  exports.GetEnvCmd = GetEnvCmd;
@@ -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":"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"}
1
+ {"version":3,"names":["ListEnvsCmd","constructor","envs","componentAspect","report","allEnvs","getAllRegisteredEnvs","join","title","chalk","green","GetEnvCmd","name","description","showEnv","id","host","servicesArr","component","get","resolveComponentId","Error","env","getEnv","envRuntime","createEnvironment","envExecutionContext","getEnvExecutionContext","services","getServices","allP","map","serviceId","service","includes","render","all","compact","Promise","item","getHost","split","undefined","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, CommandOptions } from '@teambit/cli';\nimport { compact } from 'lodash';\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\ntype GetEnvOpts = {\n services: string;\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 [\n '',\n 'services <string>',\n 'show information about the specific services only. for multiple services, separate by a comma and wrap with quotes',\n ],\n ] as CommandOptions;\n group = 'development';\n\n constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}\n\n async showEnv(id: string, host: ComponentFactory, servicesArr: string[] | undefined) {\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 (servicesArr && !servicesArr.includes(serviceId)) return null;\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 = compact(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], { services }: GetEnvOpts): Promise<JSX.Element> {\n const host = this.componentAspect.getHost();\n const servicesArr = services ? services.split(',') : undefined;\n\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, servicesArr);\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":";;;;;;;;;;;;;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AATA;;AAWO,MAAMA,WAAW,CAAoB;EAM1CC,WAAW,CAASC,IAAc,EAAUC,eAA8B,EAAE;IAAA,KAAxDD,IAAc,GAAdA,IAAc;IAAA,KAAUC,eAA8B,GAA9BA,eAA8B;IAAA,8CALnE,MAAM;IAAA,qDACC,0CAA0C;IAAA,iDAC9C,EAAE;IAAA,+CACJ,aAAa;EAEwD;EAE7E,MAAMC,MAAM,GAAG;IACb,MAAMC,OAAO,GAAG,IAAI,CAACH,IAAI,CAACI,oBAAoB,EAAE,CAACC,IAAI,CAAC,IAAI,CAAC;IAC3D,MAAMC,KAAK,GAAGC,gBAAK,CAACC,KAAK,CAAC,oDAAoD,CAAC;IAC/E,OAAQ,GAAEF,KAAM,KAAIH,OAAQ,EAAC;EAC/B;AACF;AAAC;AAMM,MAAMM,SAAS,CAAoB;EAmBxCV,WAAW,CAASC,IAAc,EAAUC,eAA8B,EAAE;IAAA,KAAxDD,IAAc,GAAdA,IAAc;IAAA,KAAUC,eAA8B,GAA9BA,eAA8B;IAAA,8CAlBnE,sBAAsB;IAAA,qDACf,0CAA0C;IAAA,mDAC5C,CACV;MACES,IAAI,EAAE,gBAAgB;MACtBC,WAAW,EAAE;IACf,CAAC,CACF;IAAA;IAAA,iDAES,CACR,CACE,EAAE,EACF,mBAAmB,EACnB,oHAAoH,CACrH,CACF;IAAA,+CACO,aAAa;EAEwD;EAE7E,MAAMC,OAAO,CAACC,EAAU,EAAEC,IAAsB,EAAEC,WAAiC,EAAE;IACnF,MAAMC,SAAS,GAAG,MAAMF,IAAI,CAACG,GAAG,CAAC,MAAMH,IAAI,CAACI,kBAAkB,CAACL,EAAE,CAAC,CAAC;IACnE,IAAI,CAACG,SAAS,EAAE,MAAM,IAAIG,KAAK,CAAE,qBAAoBN,EAAG,gBAAe,CAAC;IACxE,MAAMO,GAAG,GAAG,IAAI,CAACpB,IAAI,CAACqB,MAAM,CAACL,SAAS,CAAC;IACvC,MAAMM,UAAU,GAAG,MAAM,IAAI,CAACtB,IAAI,CAACuB,iBAAiB,CAAC,CAACP,SAAS,CAAC,CAAC;IACjE,MAAMQ,mBAAmB,GAAGF,UAAU,CAACG,sBAAsB,EAAE;IAC/D,MAAMC,QAAQ,GAAG,IAAI,CAAC1B,IAAI,CAAC2B,WAAW,CAACP,GAAG,CAAC;IAC3C,MAAMQ,IAAI,GAAGF,QAAQ,CAACA,QAAQ,CAACG,GAAG,CAAC,OAAO,CAACC,SAAS,EAAEC,OAAO,CAAC,KAAK;MACjE,IAAIhB,WAAW,IAAI,CAACA,WAAW,CAACiB,QAAQ,CAACF,SAAS,CAAC,EAAE,OAAO,IAAI;MAChE,IAAIC,OAAO,CAACE,MAAM,EAChB,oBACE,+BAAC,WAAI,qBACH,+BAAC,WAAI;QAAC,IAAI;QAAC,SAAS;QAAC,KAAK,EAAC;MAAM,GAC9BH,SAAS,CACL,eACP,+BAAC,cAAO,OAAG,eACX,+BAAC,cAAO,OAAG,EACV,MAAMC,OAAO,CAACE,MAAM,CAACb,GAAG,EAAEI,mBAAmB,CAAC,CAC1C;MAEX,oBACE,+BAAC,WAAI;QAAC,GAAG,EAAEM;MAAU,gBACnB,+BAAC,WAAI;QAAC,IAAI;QAAC,SAAS;MAAA,GACjBA,SAAS,CACL,CACF;IAEX,CAAC,CAAC;IAEF,MAAMI,GAAG,GAAG,IAAAC,iBAAO,EAAC,MAAMC,OAAO,CAACF,GAAG,CAACN,IAAI,CAAC,CAAC;IAE5C,oBACE,+BAAC,WAAI,qBACH,+BAAC,0BAAW;MAAC,MAAM,EAAER;IAAI,EAAG,EAC3Bc,GAAG,CAACL,GAAG,CAAEQ,IAAI,IAAKA,IAAI,CAAC,CACnB;EAEX;EAEA,MAAMJ,MAAM,CAAC,CAACvB,IAAI,CAAW,EAAE;IAAEgB;EAAqB,CAAC,EAAwB;IAC7E,MAAMZ,IAAI,GAAG,IAAI,CAACb,eAAe,CAACqC,OAAO,EAAE;IAC3C,MAAMvB,WAAW,GAAGW,QAAQ,GAAGA,QAAQ,CAACa,KAAK,CAAC,GAAG,CAAC,GAAGC,SAAS;;IAE9D;IACA,IAAI,CAAC1B,IAAI,EAAE,MAAM,IAAIK,KAAK,CAAC,4BAA4B,CAAC;IACxD,OAAO,IAAI,CAACP,OAAO,CAACF,IAAI,EAAEI,IAAI,EAAEC,WAAW,CAAC;EAC9C;AACF;AAAC;AAEM,MAAM0B,OAAO,CAAoB;EAQtC1C,WAAW,CAASC,IAAc,EAAUC,eAA8B,EAAE;IAAA,KAAxDD,IAAc,GAAdA,IAAc;IAAA,KAAUC,eAA8B,GAA9BA,eAA8B;IAAA,8CAPnE,MAAM;IAAA,+CACL,KAAK;IAAA,qDACC,8EAA8E;IAAA,iDAClF,EAAE;IAAA,+CACJ,aAAa;IAAA,kDACC,EAAE;EAEqD;EAE7E,MAAMgC,MAAM,GAAyB;IACnC,MAAMnB,IAAI,GAAG,IAAI,CAACb,eAAe,CAACqC,OAAO,EAAE;IAC3C;IACA,IAAI,CAACxB,IAAI,EAAE,MAAM,IAAIK,KAAK,CAAC,4BAA4B,CAAC;IACxD,MAAMuB,UAAU,GAAG,MAAM5B,IAAI,CAAC6B,IAAI,EAAE;IACpC;IACA,oBAAO,+BAAC,WAAI,QAAE,IAAI,CAACC,QAAQ,CAACF,UAAU,CAAC,CAAQ;EACjD;EAEQE,QAAQ,CAACF,UAAuB,EAAE;IACxC,MAAMG,SAAS,GAAGH,UAAU,CAACb,GAAG,CAAEb,SAAS,IAAK;MAC9C,MAAM8B,KAAK,GAAG,IAAI,CAAC9C,IAAI,CAAC+C,QAAQ,CAAC/B,SAAS,CAAC;MAC3C,OAAO;QACLA,SAAS,EAAEA,SAAS,CAACH,EAAE,CAACmC,QAAQ,EAAE;QAClC5B,GAAG,EAAE0B;MACP,CAAC;IACH,CAAC,CAAC;IAEF,MAAMG,MAAM,GAAG,CACb;MACEC,KAAK,EAAE;IACT,CAAC,EACD;MACEA,KAAK,EAAE;IACT,CAAC,CACF;IACD,MAAMC,KAAK,GAAGC,oBAAQ,CAACC,UAAU,CAACJ,MAAM,EAAEJ,SAAS,CAAC;IACpDM,KAAK,CAACG,IAAI,EAAE;IACZ,OAAOH,KAAK,CAAClB,MAAM,EAAE;EACvB;AACF;AAAC"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.envs_envs@0.0.963/dist/env.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.envs_envs@0.0.963/dist/envs.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.envs_envs@0.0.965/dist/env.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.envs_envs@0.0.965/dist/envs.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/envs.cmd.tsx CHANGED
@@ -3,7 +3,8 @@ import React from 'react';
3
3
  import { Text, Newline } from 'ink';
4
4
  import chalk from 'chalk';
5
5
  import { CLITable } from '@teambit/cli-table';
6
- import { Command } from '@teambit/cli';
6
+ import { Command, CommandOptions } from '@teambit/cli';
7
+ import { compact } from 'lodash';
7
8
  import { ComponentMain, ComponentFactory, Component } from '@teambit/component';
8
9
  import { EnvsMain } from './environments.main.runtime';
9
10
  import { EnvOverview } from './components/env-overview';
@@ -23,6 +24,10 @@ export class ListEnvsCmd implements Command {
23
24
  }
24
25
  }
25
26
 
27
+ type GetEnvOpts = {
28
+ services: string;
29
+ };
30
+
26
31
  export class GetEnvCmd implements Command {
27
32
  name = 'get <component-name>';
28
33
  description = "show information about a component's env";
@@ -33,12 +38,18 @@ export class GetEnvCmd implements Command {
33
38
  },
34
39
  ];
35
40
  examples: [{ cmd: 'get ui/button'; description: 'show information about the env configured for ui/button' }];
36
- options = [];
41
+ options = [
42
+ [
43
+ '',
44
+ 'services <string>',
45
+ 'show information about the specific services only. for multiple services, separate by a comma and wrap with quotes',
46
+ ],
47
+ ] as CommandOptions;
37
48
  group = 'development';
38
49
 
39
50
  constructor(private envs: EnvsMain, private componentAspect: ComponentMain) {}
40
51
 
41
- async showEnv(id: string, host: ComponentFactory) {
52
+ async showEnv(id: string, host: ComponentFactory, servicesArr: string[] | undefined) {
42
53
  const component = await host.get(await host.resolveComponentId(id));
43
54
  if (!component) throw new Error(`component for env ${id} was not found`);
44
55
  const env = this.envs.getEnv(component);
@@ -46,6 +57,7 @@ export class GetEnvCmd implements Command {
46
57
  const envExecutionContext = envRuntime.getEnvExecutionContext();
47
58
  const services = this.envs.getServices(env);
48
59
  const allP = services.services.map(async ([serviceId, service]) => {
60
+ if (servicesArr && !servicesArr.includes(serviceId)) return null;
49
61
  if (service.render)
50
62
  return (
51
63
  <Text>
@@ -66,7 +78,7 @@ export class GetEnvCmd implements Command {
66
78
  );
67
79
  });
68
80
 
69
- const all = await Promise.all(allP);
81
+ const all = compact(await Promise.all(allP));
70
82
 
71
83
  return (
72
84
  <Text>
@@ -76,11 +88,13 @@ export class GetEnvCmd implements Command {
76
88
  );
77
89
  }
78
90
 
79
- async render([name]: [string]): Promise<JSX.Element> {
91
+ async render([name]: [string], { services }: GetEnvOpts): Promise<JSX.Element> {
80
92
  const host = this.componentAspect.getHost();
93
+ const servicesArr = services ? services.split(',') : undefined;
94
+
81
95
  // TODO: think what to do re this line with gilad.
82
96
  if (!host) throw new Error('error: workspace not found');
83
- return this.showEnv(name, host);
97
+ return this.showEnv(name, host, servicesArr);
84
98
  }
85
99
  }
86
100
 
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/envs",
3
- "version": "0.0.963",
3
+ "version": "0.0.965",
4
4
  "homepage": "https://bit.dev/teambit/envs/envs",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.envs",
8
8
  "name": "envs",
9
- "version": "0.0.963"
9
+ "version": "0.0.965"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -17,25 +17,25 @@
17
17
  "core-js": "^3.0.0",
18
18
  "@babel/runtime": "7.20.0",
19
19
  "@teambit/harmony": "0.4.6",
20
- "@teambit/component": "0.0.963",
21
- "@teambit/aspect-loader": "0.0.963",
22
- "@teambit/cli": "0.0.646",
23
- "@teambit/logger": "0.0.739",
24
- "@teambit/worker": "0.0.950",
25
- "@teambit/builder": "0.0.963",
26
- "@teambit/bundler": "0.0.963",
27
- "@teambit/compiler": "0.0.963",
28
- "@teambit/dependency-resolver": "0.0.963",
29
- "@teambit/elements": "0.0.416",
30
- "@teambit/formatter": "0.0.514",
31
- "@teambit/isolator": "0.0.963",
32
- "@teambit/linter": "0.0.963",
33
- "@teambit/pkg": "0.0.963",
34
- "@teambit/preview": "0.0.963",
35
- "@teambit/schema": "0.0.963",
36
- "@teambit/tester": "0.0.963",
37
- "@teambit/webpack": "0.0.963",
38
- "@teambit/graphql": "0.0.963",
20
+ "@teambit/component": "0.0.965",
21
+ "@teambit/aspect-loader": "0.0.965",
22
+ "@teambit/cli": "0.0.648",
23
+ "@teambit/logger": "0.0.741",
24
+ "@teambit/worker": "0.0.952",
25
+ "@teambit/builder": "0.0.965",
26
+ "@teambit/bundler": "0.0.965",
27
+ "@teambit/compiler": "0.0.965",
28
+ "@teambit/dependency-resolver": "0.0.965",
29
+ "@teambit/elements": "0.0.418",
30
+ "@teambit/formatter": "0.0.516",
31
+ "@teambit/isolator": "0.0.965",
32
+ "@teambit/linter": "0.0.965",
33
+ "@teambit/pkg": "0.0.965",
34
+ "@teambit/preview": "0.0.965",
35
+ "@teambit/schema": "0.0.965",
36
+ "@teambit/tester": "0.0.965",
37
+ "@teambit/webpack": "0.0.965",
38
+ "@teambit/graphql": "0.0.965",
39
39
  "@teambit/bit-error": "0.0.402",
40
40
  "@teambit/legacy-bit-id": "0.0.421",
41
41
  "@teambit/cli-table": "0.0.41"
@@ -51,7 +51,7 @@
51
51
  "@teambit/envs.aspect-docs.envs": "0.0.151"
52
52
  },
53
53
  "peerDependencies": {
54
- "@teambit/legacy": "1.0.426",
54
+ "@teambit/legacy": "1.0.429",
55
55
  "react": "^16.8.0 || ^17.0.0",
56
56
  "react-dom": "^16.8.0 || ^17.0.0"
57
57
  },