@teambit/application 0.0.230 → 0.0.234
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/app-context.d.ts +3 -0
- package/dist/app.cmd.js +12 -6
- package/dist/app.cmd.js.map +1 -1
- package/dist/application.d.ts +3 -8
- package/dist/application.main.runtime.d.ts +10 -2
- package/dist/application.main.runtime.js +29 -6
- package/dist/application.main.runtime.js.map +1 -1
- package/dist/deploy-context.d.ts +2 -4
- package/dist/deploy.task.d.ts +1 -1
- package/dist/deploy.task.js +10 -13
- package/dist/deploy.task.js.map +1 -1
- package/dist/deployment-provider.d.ts +3 -2
- package/dist/run.cmd.js +8 -2
- package/dist/run.cmd.js.map +1 -1
- package/package-tar/teambit-application-0.0.234.tgz +0 -0
- package/package.json +12 -12
- package/run.cmd.tsx +10 -6
- package/package-tar/teambit-application-0.0.230.tgz +0 -0
package/dist/app-context.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { ExecutionContext } from '@teambit/envs';
|
|
2
|
+
import { Component } from '@teambit/component';
|
|
2
3
|
export interface AppContext extends ExecutionContext {
|
|
3
4
|
/**
|
|
4
5
|
* determine whether to serve the application in dev mode.
|
|
5
6
|
*/
|
|
6
7
|
dev: boolean;
|
|
8
|
+
appName: string;
|
|
9
|
+
appComponent: Component;
|
|
7
10
|
}
|
package/dist/app.cmd.js
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
require("core-js/modules/es.array.flat-map.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.array.iterator.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.array.unscopables.flat-map.js");
|
|
10
|
+
|
|
5
11
|
require("core-js/modules/es.promise.js");
|
|
6
12
|
|
|
7
13
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -54,13 +60,13 @@ class AppListCmd {
|
|
|
54
60
|
async report(args, {
|
|
55
61
|
json
|
|
56
62
|
}) {
|
|
57
|
-
const
|
|
58
|
-
if (json) return JSON.stringify(
|
|
59
|
-
if (!
|
|
60
|
-
const rows =
|
|
61
|
-
return [app.name];
|
|
63
|
+
const appComponents = this.applicationAspect.mapApps();
|
|
64
|
+
if (json) return JSON.stringify(appComponents, null, 2);
|
|
65
|
+
if (!appComponents.length) return _chalk().default.yellow('no apps found');
|
|
66
|
+
const rows = appComponents.flatMap(([id, apps]) => {
|
|
67
|
+
return apps.map(app => [id, app.name]);
|
|
62
68
|
});
|
|
63
|
-
const table = new (_cliTable().CLITable)([], rows);
|
|
69
|
+
const table = new (_cliTable().CLITable)(['id', 'name'], rows);
|
|
64
70
|
return table.render();
|
|
65
71
|
}
|
|
66
72
|
|
package/dist/app.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["app.cmd.ts"],"names":["AppListCmd","constructor","applicationAspect","report","args","json","
|
|
1
|
+
{"version":3,"sources":["app.cmd.ts"],"names":["AppListCmd","constructor","applicationAspect","report","args","json","appComponents","mapApps","JSON","stringify","length","chalk","yellow","rows","flatMap","id","apps","map","app","name","table","CLITable","render","AppCmd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAJA;AAEA;AAKO,MAAMA,UAAN,CAAoC;AAOzCC,EAAAA,WAAW,CAASC,iBAAT,EAA6C;AAAA,SAApCA,iBAAoC,GAApCA,iBAAoC;AAAA,kDANjD,MAMiD;AAAA,yDAL1C,kCAK0C;AAAA,mDAJhD,EAIgD;AAAA,mDAHhD,MAGgD;AAAA,qDAF9C,CAAC,CAAC,GAAD,EAAM,MAAN,EAAc,0CAAd,CAAD,CAE8C;AAAE;;AAE9C,QAANC,MAAM,CAACC,IAAD,EAAiB;AAAEC,IAAAA;AAAF,GAAjB,EAA8C;AACxD,UAAMC,aAAa,GAAG,KAAKJ,iBAAL,CAAuBK,OAAvB,EAAtB;AACA,QAAIF,IAAJ,EAAU,OAAOG,IAAI,CAACC,SAAL,CAAeH,aAAf,EAA8B,IAA9B,EAAoC,CAApC,CAAP;AACV,QAAI,CAACA,aAAa,CAACI,MAAnB,EAA2B,OAAOC,iBAAMC,MAAN,CAAa,eAAb,CAAP;AAE3B,UAAMC,IAAI,GAAGP,aAAa,CAACQ,OAAd,CAAsB,CAAC,CAACC,EAAD,EAAKC,IAAL,CAAD,KAAgB;AACjD,aAAOA,IAAI,CAACC,GAAL,CAAUC,GAAD,IAAS,CAACH,EAAD,EAAKG,GAAG,CAACC,IAAT,CAAlB,CAAP;AACD,KAFY,CAAb;AAIA,UAAMC,KAAK,GAAG,KAAIC,oBAAJ,EAAa,CAAC,IAAD,EAAO,MAAP,CAAb,EAA6BR,IAA7B,CAAd;AACA,WAAOO,KAAK,CAACE,MAAN,EAAP;AACD;;AApBwC;;;;AAuBpC,MAAMC,MAAN,CAAgC;AAAA;AAAA,kDAC9B,mBAD8B;AAAA,yDAEvB,qBAFuB;AAAA,mDAG7B,EAH6B;AAAA,mDAI7B,MAJ6B;AAAA,sDAKf,EALe;AAAA,qDAM3B,EAN2B;AAAA;;AAQrC;AACY,QAANpB,MAAM,CAACC,IAAD,EAAiB;AAC3B;AACA,WAAQ,8BAAR;AACD;;AAZoC","sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\n// import { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport { CLITable } from '@teambit/cli-table';\nimport { ApplicationMain } from './application.main.runtime';\n\nexport class AppListCmd implements Command {\n name = 'list';\n description = 'list all registered applications';\n alias = '';\n group = 'apps';\n options = [['j', 'json', 'return the component data in json format']] as CommandOptions;\n\n constructor(private applicationAspect: ApplicationMain) {}\n\n async report(args: [string], { json }: { json: boolean }) {\n const appComponents = this.applicationAspect.mapApps();\n if (json) return JSON.stringify(appComponents, null, 2);\n if (!appComponents.length) return chalk.yellow('no apps found');\n\n const rows = appComponents.flatMap(([id, apps]) => {\n return apps.map((app) => [id, app.name]);\n });\n\n const table = new CLITable(['id', 'name'], rows);\n return table.render();\n }\n}\n\nexport class AppCmd implements Command {\n name = 'app <sub-command>';\n description = 'manage applications';\n alias = '';\n group = 'apps';\n commands: Command[] = [];\n options = [] as CommandOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async report(args: [string]) {\n // it should never be here. Yargs throws an error before reaching this method.\n return `Please specify a sub-command`;\n }\n}\n"]}
|
package/dist/application.d.ts
CHANGED
|
@@ -10,18 +10,13 @@ export interface Application {
|
|
|
10
10
|
/**
|
|
11
11
|
* run the application.
|
|
12
12
|
*/
|
|
13
|
-
run(context: AppContext): Promise<number>;
|
|
13
|
+
run(context: AppContext): Promise<number | void>;
|
|
14
14
|
/**
|
|
15
15
|
* build the application.
|
|
16
16
|
*/
|
|
17
|
-
build(context: BuildContext, aspectId: string, capsule: Capsule): Promise<DeployContext>;
|
|
17
|
+
build?(context: BuildContext, aspectId: string, capsule: Capsule): Promise<DeployContext>;
|
|
18
18
|
/**
|
|
19
19
|
* application deployment. this is a build task.
|
|
20
20
|
*/
|
|
21
|
-
deploy?(context: BuildContext): Promise<void>;
|
|
22
|
-
/**
|
|
23
|
-
* prerender routes of application (will create static file for the route)
|
|
24
|
-
* e.g ['/plugins', '/learn', '/docs/quick-start]
|
|
25
|
-
*/
|
|
26
|
-
prerenderRoutes?: string[];
|
|
21
|
+
deploy?(context: BuildContext, capsule: Capsule): Promise<void>;
|
|
27
22
|
}
|
|
@@ -40,6 +40,14 @@ export declare class ApplicationMain {
|
|
|
40
40
|
* list all registered apps.
|
|
41
41
|
*/
|
|
42
42
|
listApps(): Application[];
|
|
43
|
+
/**
|
|
44
|
+
* map all apps by component ID.
|
|
45
|
+
*/
|
|
46
|
+
mapApps(): [string, Application[]][];
|
|
47
|
+
/**
|
|
48
|
+
* list apps by a component id.
|
|
49
|
+
*/
|
|
50
|
+
listAppsById(id?: ComponentID): Application[] | undefined;
|
|
43
51
|
/**
|
|
44
52
|
* register new deployment provider like netlify, cloudflare pages or custom deployment.
|
|
45
53
|
*/
|
|
@@ -51,7 +59,7 @@ export declare class ApplicationMain {
|
|
|
51
59
|
/**
|
|
52
60
|
* get an app.
|
|
53
61
|
*/
|
|
54
|
-
getApp(appName: string): Application | undefined;
|
|
62
|
+
getApp(appName: string, id?: ComponentID): Application | undefined;
|
|
55
63
|
/**
|
|
56
64
|
* registers a new app and sets a plugin for it.
|
|
57
65
|
*/
|
|
@@ -67,7 +75,7 @@ export declare class ApplicationMain {
|
|
|
67
75
|
private computeOptions;
|
|
68
76
|
runApp(appName: string, options?: Partial<ServeAppOptions>): Promise<{
|
|
69
77
|
app: Application;
|
|
70
|
-
port: number;
|
|
78
|
+
port: number | void;
|
|
71
79
|
}>;
|
|
72
80
|
/**
|
|
73
81
|
* get the component ID of a certain app.
|
|
@@ -195,9 +195,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
195
195
|
|
|
196
196
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
197
197
|
|
|
198
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
198
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
199
199
|
|
|
200
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
200
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
201
201
|
|
|
202
202
|
class ApplicationMain {
|
|
203
203
|
constructor(appSlot, appTypeSlot, deploymentProviderSlot, envs, componentAspect, appService, aspectLoader) {
|
|
@@ -226,6 +226,23 @@ class ApplicationMain {
|
|
|
226
226
|
listApps() {
|
|
227
227
|
return (0, _lodash().flatten)(this.appSlot.values());
|
|
228
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* map all apps by component ID.
|
|
231
|
+
*/
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
mapApps() {
|
|
235
|
+
return this.appSlot.toArray();
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* list apps by a component id.
|
|
239
|
+
*/
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
listAppsById(id) {
|
|
243
|
+
if (!id) return undefined;
|
|
244
|
+
return this.appSlot.get(id.toString());
|
|
245
|
+
}
|
|
229
246
|
/**
|
|
230
247
|
* register new deployment provider like netlify, cloudflare pages or custom deployment.
|
|
231
248
|
*/
|
|
@@ -248,8 +265,8 @@ class ApplicationMain {
|
|
|
248
265
|
*/
|
|
249
266
|
|
|
250
267
|
|
|
251
|
-
getApp(appName) {
|
|
252
|
-
const apps = this.listApps();
|
|
268
|
+
getApp(appName, id) {
|
|
269
|
+
const apps = this.listAppsById(id) || this.listApps();
|
|
253
270
|
return apps.find(app => app.name === appName);
|
|
254
271
|
}
|
|
255
272
|
/**
|
|
@@ -323,10 +340,16 @@ class ApplicationMain {
|
|
|
323
340
|
const components = await host.list();
|
|
324
341
|
const id = this.getAppIdOrThrow(appName);
|
|
325
342
|
const component = components.find(c => c.id.isEqual(id));
|
|
326
|
-
if (!component) throw new (_exceptions().AppNotFound)(appName);
|
|
343
|
+
if (!component) throw new (_exceptions().AppNotFound)(appName); // console.log(comp)
|
|
344
|
+
|
|
327
345
|
const env = await this.envs.createEnvironment([component]);
|
|
328
346
|
const res = await env.run(this.appService);
|
|
329
|
-
|
|
347
|
+
const context = res.results[0].data;
|
|
348
|
+
if (!context) throw new (_exceptions().AppNotFound)(appName);
|
|
349
|
+
return Object.assign({}, context, {
|
|
350
|
+
appName,
|
|
351
|
+
appComponent: component
|
|
352
|
+
});
|
|
330
353
|
}
|
|
331
354
|
|
|
332
355
|
static async provider([cli, loggerAspect, builder, envs, component, aspectLoader], config, [appTypeSlot, appSlot, deploymentProviderSlot]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["application.main.runtime.ts"],"names":["ApplicationMain","constructor","appSlot","appTypeSlot","deploymentProviderSlot","envs","componentAspect","appService","aspectLoader","registerApp","app","register","listApps","values","registerDeploymentProvider","provider","listProviders","getApp","appName","apps","find","name","registerAppType","appType","plugin","AppTypePlugin","registerPlugins","getAppAspect","toArray","getAppOrThrow","AppNotFound","computeOptions","opts","defaultOpts","dev","defaultPortRange","runApp","options","context","createAppContext","port","run","getAppIdOrThrow","maybeApp","ComponentID","fromString","host","getHost","components","list","id","component","c","isEqual","env","createEnvironment","res","results","data","cli","loggerAspect","builder","config","logger","createLogger","ApplicationAspect","AppService","application","appCmd","AppCmd","commands","AppListCmd","AppPlugin","registerTagTasks","DeployTask","registerGroup","RunCmd","AppListCmdDeprecated","MainRuntime","CLIAspect","LoggerAspect","BuilderAspect","EnvsAspect","ComponentAspect","AspectLoaderAspect","Slot","withType","addRuntime"],"mappings":"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","sourcesContent":["import { MainRuntime, CLIMain, CLIAspect } from '@teambit/cli';\nimport { flatten } from 'lodash';\nimport { AspectLoaderMain, AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport ComponentAspect, { ComponentMain, ComponentID } from '@teambit/component';\nimport { ApplicationType } from './application-type';\nimport { Application } from './application';\nimport { DeploymentProvider } from './deployment-provider';\nimport { AppNotFound } from './exceptions';\nimport { ApplicationAspect } from './application.aspect';\nimport { AppListCmdDeprecated } from './app-list.cmd';\nimport { DeployTask } from './deploy.task';\nimport { RunCmd } from './run.cmd';\nimport { AppService } from './application.service';\nimport { AppCmd, AppListCmd } from './app.cmd';\nimport { AppPlugin } from './app.plugin';\nimport { AppTypePlugin } from './app-type.plugin';\n\nexport type ApplicationTypeSlot = SlotRegistry<ApplicationType<unknown>[]>;\nexport type ApplicationSlot = SlotRegistry<Application[]>;\nexport type DeploymentProviderSlot = SlotRegistry<DeploymentProvider[]>;\n\nexport type ApplicationAspectConfig = {};\n\nexport type ServeAppOptions = {\n /**\n * default port range used to serve applications.\n */\n defaultPortRange?: number[];\n\n /**\n * determine whether to start the application in dev mode.\n */\n dev: boolean;\n};\n\nexport class ApplicationMain {\n constructor(\n private appSlot: ApplicationSlot,\n private appTypeSlot: ApplicationTypeSlot,\n private deploymentProviderSlot: DeploymentProviderSlot,\n private envs: EnvsMain,\n private componentAspect: ComponentMain,\n private appService: AppService,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n /**\n * register a new app.\n */\n registerApp(app: Application) {\n this.appSlot.register([app]);\n return this;\n }\n\n /**\n * list all registered apps.\n */\n listApps(): Application[] {\n return flatten(this.appSlot.values());\n }\n\n /**\n * register new deployment provider like netlify, cloudflare pages or custom deployment.\n */\n registerDeploymentProvider(provider: DeploymentProvider) {\n this.deploymentProviderSlot.register([provider]);\n return this;\n }\n\n /**\n * list all deployment providers\n */\n listProviders() {\n return flatten(this.deploymentProviderSlot.values());\n }\n\n /**\n * get an app.\n */\n getApp(appName: string): Application | undefined {\n const apps = this.listApps();\n return apps.find((app) => app.name === appName);\n }\n\n /**\n * registers a new app and sets a plugin for it.\n */\n registerAppType<T>(appType: ApplicationType<T>) {\n const plugin = new AppTypePlugin(`*.${appType.name}.*`, appType, this.appSlot);\n this.aspectLoader.registerPlugins([plugin]);\n this.appTypeSlot.register([appType]);\n return this;\n }\n\n /**\n * get an app AspectId.\n */\n getAppAspect(appName: string): string | undefined {\n return this.appSlot.toArray().find(([, apps]) => apps.find((app) => app.name === appName))?.[0];\n }\n\n /**\n * get app to throw.\n */\n getAppOrThrow(appName: string) {\n const app = this.getApp(appName);\n if (!app) throw new AppNotFound(appName);\n return app;\n }\n\n private computeOptions(opts: Partial<ServeAppOptions>) {\n const defaultOpts: ServeAppOptions = {\n dev: false,\n defaultPortRange: [3100, 3500],\n };\n\n return {\n defaultOpts,\n ...opts,\n };\n }\n\n async runApp(appName: string, options: Partial<ServeAppOptions> = {}) {\n const app = this.getAppOrThrow(appName);\n this.computeOptions(options);\n const context = await this.createAppContext(appName);\n if (!context) throw new AppNotFound(appName);\n const port = await app.run(context);\n return { app, port };\n }\n\n /**\n * get the component ID of a certain app.\n */\n getAppIdOrThrow(appName: string) {\n const maybeApp = this.appSlot.toArray().find(([, apps]) => {\n return apps.find((app) => app.name === appName);\n });\n\n if (!maybeApp) throw new AppNotFound(appName);\n return ComponentID.fromString(maybeApp[0]);\n }\n\n private async createAppContext(appName: string) {\n const host = this.componentAspect.getHost();\n const components = await host.list();\n const id = this.getAppIdOrThrow(appName);\n const component = components.find((c) => c.id.isEqual(id));\n if (!component) throw new AppNotFound(appName);\n\n const env = await this.envs.createEnvironment([component]);\n const res = await env.run(this.appService);\n return res.results[0].data;\n }\n\n static runtime = MainRuntime;\n static dependencies = [CLIAspect, LoggerAspect, BuilderAspect, EnvsAspect, ComponentAspect, AspectLoaderAspect];\n\n static slots = [\n Slot.withType<ApplicationType<unknown>[]>(),\n Slot.withType<Application[]>(),\n Slot.withType<DeploymentProvider[]>(),\n ];\n\n static async provider(\n [cli, loggerAspect, builder, envs, component, aspectLoader]: [\n CLIMain,\n LoggerMain,\n BuilderMain,\n EnvsMain,\n ComponentMain,\n AspectLoaderMain\n ],\n config: ApplicationAspectConfig,\n [appTypeSlot, appSlot, deploymentProviderSlot]: [ApplicationTypeSlot, ApplicationSlot, DeploymentProviderSlot]\n ) {\n const logger = loggerAspect.createLogger(ApplicationAspect.id);\n const appService = new AppService();\n const application = new ApplicationMain(\n appSlot,\n appTypeSlot,\n deploymentProviderSlot,\n envs,\n component,\n appService,\n aspectLoader\n );\n const appCmd = new AppCmd();\n appCmd.commands = [new AppListCmd(application)];\n aspectLoader.registerPlugins([new AppPlugin(appSlot)]);\n builder.registerTagTasks([new DeployTask(application)]);\n cli.registerGroup('apps', 'Applications');\n cli.register(new RunCmd(application, logger), new AppListCmdDeprecated(application), appCmd);\n\n return application;\n }\n}\n\nApplicationAspect.addRuntime(ApplicationMain);\n"]}
|
|
1
|
+
{"version":3,"sources":["application.main.runtime.ts"],"names":["ApplicationMain","constructor","appSlot","appTypeSlot","deploymentProviderSlot","envs","componentAspect","appService","aspectLoader","registerApp","app","register","listApps","values","mapApps","toArray","listAppsById","id","undefined","get","toString","registerDeploymentProvider","provider","listProviders","getApp","appName","apps","find","name","registerAppType","appType","plugin","AppTypePlugin","registerPlugins","getAppAspect","getAppOrThrow","AppNotFound","computeOptions","opts","defaultOpts","dev","defaultPortRange","runApp","options","context","createAppContext","port","run","getAppIdOrThrow","maybeApp","ComponentID","fromString","host","getHost","components","list","component","c","isEqual","env","createEnvironment","res","results","data","Object","assign","appComponent","cli","loggerAspect","builder","config","logger","createLogger","ApplicationAspect","AppService","application","appCmd","AppCmd","commands","AppListCmd","AppPlugin","registerTagTasks","DeployTask","registerGroup","RunCmd","AppListCmdDeprecated","MainRuntime","CLIAspect","LoggerAspect","BuilderAspect","EnvsAspect","ComponentAspect","AspectLoaderAspect","Slot","withType","addRuntime"],"mappings":"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","sourcesContent":["import { MainRuntime, CLIMain, CLIAspect } from '@teambit/cli';\nimport { flatten } from 'lodash';\nimport { AspectLoaderMain, AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport ComponentAspect, { ComponentMain, ComponentID } from '@teambit/component';\nimport { ApplicationType } from './application-type';\nimport { Application } from './application';\nimport { DeploymentProvider } from './deployment-provider';\nimport { AppNotFound } from './exceptions';\nimport { ApplicationAspect } from './application.aspect';\nimport { AppListCmdDeprecated } from './app-list.cmd';\nimport { DeployTask } from './deploy.task';\nimport { RunCmd } from './run.cmd';\nimport { AppService } from './application.service';\nimport { AppCmd, AppListCmd } from './app.cmd';\nimport { AppPlugin } from './app.plugin';\nimport { AppTypePlugin } from './app-type.plugin';\nimport { AppContext } from './app-context';\n\nexport type ApplicationTypeSlot = SlotRegistry<ApplicationType<unknown>[]>;\nexport type ApplicationSlot = SlotRegistry<Application[]>;\nexport type DeploymentProviderSlot = SlotRegistry<DeploymentProvider[]>;\n\nexport type ApplicationAspectConfig = {};\n\nexport type ServeAppOptions = {\n /**\n * default port range used to serve applications.\n */\n defaultPortRange?: number[];\n\n /**\n * determine whether to start the application in dev mode.\n */\n dev: boolean;\n};\n\nexport class ApplicationMain {\n constructor(\n private appSlot: ApplicationSlot,\n private appTypeSlot: ApplicationTypeSlot,\n private deploymentProviderSlot: DeploymentProviderSlot,\n private envs: EnvsMain,\n private componentAspect: ComponentMain,\n private appService: AppService,\n private aspectLoader: AspectLoaderMain\n ) {}\n\n /**\n * register a new app.\n */\n registerApp(app: Application) {\n this.appSlot.register([app]);\n return this;\n }\n\n /**\n * list all registered apps.\n */\n listApps(): Application[] {\n return flatten(this.appSlot.values());\n }\n\n /**\n * map all apps by component ID.\n */\n mapApps() {\n return this.appSlot.toArray();\n }\n\n /**\n * list apps by a component id.\n */\n listAppsById(id?: ComponentID): Application[] | undefined {\n if (!id) return undefined;\n return this.appSlot.get(id.toString());\n }\n\n /**\n * register new deployment provider like netlify, cloudflare pages or custom deployment.\n */\n registerDeploymentProvider(provider: DeploymentProvider) {\n this.deploymentProviderSlot.register([provider]);\n return this;\n }\n\n /**\n * list all deployment providers\n */\n listProviders() {\n return flatten(this.deploymentProviderSlot.values());\n }\n\n /**\n * get an app.\n */\n getApp(appName: string, id?: ComponentID): Application | undefined {\n const apps = this.listAppsById(id) || this.listApps();\n return apps.find((app) => app.name === appName);\n }\n\n /**\n * registers a new app and sets a plugin for it.\n */\n registerAppType<T>(appType: ApplicationType<T>) {\n const plugin = new AppTypePlugin(`*.${appType.name}.*`, appType, this.appSlot);\n this.aspectLoader.registerPlugins([plugin]);\n this.appTypeSlot.register([appType]);\n return this;\n }\n\n /**\n * get an app AspectId.\n */\n getAppAspect(appName: string): string | undefined {\n return this.appSlot.toArray().find(([, apps]) => apps.find((app) => app.name === appName))?.[0];\n }\n\n /**\n * get app to throw.\n */\n getAppOrThrow(appName: string) {\n const app = this.getApp(appName);\n if (!app) throw new AppNotFound(appName);\n return app;\n }\n\n private computeOptions(opts: Partial<ServeAppOptions>) {\n const defaultOpts: ServeAppOptions = {\n dev: false,\n defaultPortRange: [3100, 3500],\n };\n\n return {\n defaultOpts,\n ...opts,\n };\n }\n\n async runApp(appName: string, options: Partial<ServeAppOptions> = {}) {\n const app = this.getAppOrThrow(appName);\n this.computeOptions(options);\n const context = await this.createAppContext(appName);\n if (!context) throw new AppNotFound(appName);\n const port = await app.run(context);\n return { app, port };\n }\n\n /**\n * get the component ID of a certain app.\n */\n getAppIdOrThrow(appName: string) {\n const maybeApp = this.appSlot.toArray().find(([, apps]) => {\n return apps.find((app) => app.name === appName);\n });\n\n if (!maybeApp) throw new AppNotFound(appName);\n return ComponentID.fromString(maybeApp[0]);\n }\n\n private async createAppContext(appName: string): Promise<AppContext> {\n const host = this.componentAspect.getHost();\n const components = await host.list();\n const id = this.getAppIdOrThrow(appName);\n const component = components.find((c) => c.id.isEqual(id));\n if (!component) throw new AppNotFound(appName);\n // console.log(comp)\n\n const env = await this.envs.createEnvironment([component]);\n const res = await env.run(this.appService);\n const context = res.results[0].data;\n if (!context) throw new AppNotFound(appName);\n return Object.assign({}, context, {\n appName,\n appComponent: component,\n });\n }\n\n static runtime = MainRuntime;\n static dependencies = [CLIAspect, LoggerAspect, BuilderAspect, EnvsAspect, ComponentAspect, AspectLoaderAspect];\n\n static slots = [\n Slot.withType<ApplicationType<unknown>[]>(),\n Slot.withType<Application[]>(),\n Slot.withType<DeploymentProvider[]>(),\n ];\n\n static async provider(\n [cli, loggerAspect, builder, envs, component, aspectLoader]: [\n CLIMain,\n LoggerMain,\n BuilderMain,\n EnvsMain,\n ComponentMain,\n AspectLoaderMain\n ],\n config: ApplicationAspectConfig,\n [appTypeSlot, appSlot, deploymentProviderSlot]: [ApplicationTypeSlot, ApplicationSlot, DeploymentProviderSlot]\n ) {\n const logger = loggerAspect.createLogger(ApplicationAspect.id);\n const appService = new AppService();\n const application = new ApplicationMain(\n appSlot,\n appTypeSlot,\n deploymentProviderSlot,\n envs,\n component,\n appService,\n aspectLoader\n );\n const appCmd = new AppCmd();\n appCmd.commands = [new AppListCmd(application)];\n aspectLoader.registerPlugins([new AppPlugin(appSlot)]);\n builder.registerTagTasks([new DeployTask(application)]);\n cli.registerGroup('apps', 'Applications');\n cli.register(new RunCmd(application, logger), new AppListCmdDeprecated(application), appCmd);\n\n return application;\n }\n}\n\nApplicationAspect.addRuntime(ApplicationMain);\n"]}
|
package/dist/deploy-context.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { BuildContext } from '@teambit/builder';
|
|
1
|
+
import { BuildContext, ArtifactDefinition } from '@teambit/builder';
|
|
2
2
|
export interface DeployContext extends BuildContext {
|
|
3
|
-
|
|
4
|
-
aspectId: string;
|
|
5
|
-
publicDir: string | null;
|
|
3
|
+
artifacts?: ArtifactDefinition[];
|
|
6
4
|
}
|
package/dist/deploy.task.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BuildTask, BuiltTaskResult, BuildContext } from '@teambit/builder';
|
|
2
2
|
import { ApplicationMain } from './application.main.runtime';
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const BUILD_TASK = "build_application";
|
|
4
4
|
export declare class DeployTask implements BuildTask {
|
|
5
5
|
private application;
|
|
6
6
|
name: string;
|
package/dist/deploy.task.js
CHANGED
|
@@ -11,7 +11,7 @@ require("core-js/modules/es.promise.js");
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", {
|
|
12
12
|
value: true
|
|
13
13
|
});
|
|
14
|
-
exports.DeployTask = exports.
|
|
14
|
+
exports.DeployTask = exports.BUILD_TASK = void 0;
|
|
15
15
|
|
|
16
16
|
function _defineProperty2() {
|
|
17
17
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -53,13 +53,13 @@ function _application() {
|
|
|
53
53
|
return data;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const
|
|
57
|
-
exports.
|
|
56
|
+
const BUILD_TASK = 'build_application';
|
|
57
|
+
exports.BUILD_TASK = BUILD_TASK;
|
|
58
58
|
|
|
59
59
|
class DeployTask {
|
|
60
60
|
constructor(application) {
|
|
61
61
|
this.application = application;
|
|
62
|
-
(0, _defineProperty2().default)(this, "name",
|
|
62
|
+
(0, _defineProperty2().default)(this, "name", BUILD_TASK);
|
|
63
63
|
(0, _defineProperty2().default)(this, "aspectId", _application().ApplicationAspect.id);
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -71,15 +71,12 @@ class DeployTask {
|
|
|
71
71
|
const capsules = context.capsuleNetwork.seedersCapsules;
|
|
72
72
|
const capsule = this.getCapsule(capsules, aspectId);
|
|
73
73
|
if (!capsule) return undefined;
|
|
74
|
+
if (!app.build) return undefined;
|
|
74
75
|
const deployContext = await app.build(context, aspectId, capsule);
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
await this.deployToProviders(deployContext);
|
|
76
|
+
if (app.deploy) await app.deploy(deployContext, capsule);
|
|
77
|
+
await this.deployToProviders(deployContext, capsule);
|
|
78
78
|
return {
|
|
79
|
-
component: capsule.component
|
|
80
|
-
metadata: {
|
|
81
|
-
publicDir: deployContext.publicDir
|
|
82
|
-
}
|
|
79
|
+
component: capsule.component
|
|
83
80
|
};
|
|
84
81
|
});
|
|
85
82
|
return {
|
|
@@ -93,9 +90,9 @@ class DeployTask {
|
|
|
93
90
|
return capsules.find(capsule => capsule.component.id.toStringWithoutVersion() === aspectCapsuleId);
|
|
94
91
|
}
|
|
95
92
|
|
|
96
|
-
async deployToProviders(deployContext) {
|
|
93
|
+
async deployToProviders(deployContext, capsule) {
|
|
97
94
|
const providers = this.application.listProviders();
|
|
98
|
-
await (0, _pMapSeries().default)(providers, async provider => provider.deploy(deployContext));
|
|
95
|
+
await (0, _pMapSeries().default)(providers, async provider => provider.deploy(deployContext, capsule));
|
|
99
96
|
}
|
|
100
97
|
|
|
101
98
|
}
|
package/dist/deploy.task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["deploy.task.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["deploy.task.ts"],"names":["BUILD_TASK","DeployTask","constructor","application","ApplicationAspect","id","execute","context","apps","listApps","componentsResultsUi","app","aspectId","getAppAspect","name","undefined","capsules","capsuleNetwork","seedersCapsules","capsule","getCapsule","build","deployContext","deploy","deployToProviders","component","componentsResults","flatMap","f","aspectCapsuleId","ComponentID","fromString","toStringWithoutVersion","find","providers","listProviders","provider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGO,MAAMA,UAAU,GAAG,mBAAnB;;;AAEA,MAAMC,UAAN,CAAsC;AAI3CC,EAAAA,WAAW,CAASC,WAAT,EAAuC;AAAA,SAA9BA,WAA8B,GAA9BA,WAA8B;AAAA,kDAH3CH,UAG2C;AAAA,sDAFvCI,iCAAkBC,EAEqB;AAAE;;AAEvC,QAAPC,OAAO,CAACC,OAAD,EAAkD;AAC7D,UAAMC,IAAI,GAAG,KAAKL,WAAL,CAAiBM,QAAjB,EAAb;AACA,UAAMC,mBAAmB,GAAG,MAAM,2BAAUF,IAAV,EAAgB,MAAOG,GAAP,IAAqD;AACrG,YAAMC,QAAQ,GAAG,KAAKT,WAAL,CAAiBU,YAAjB,CAA8BF,GAAG,CAACG,IAAlC,CAAjB;AACA,UAAI,CAACF,QAAL,EAAe,OAAOG,SAAP;AACf,YAAMC,QAAQ,GAAGT,OAAO,CAACU,cAAR,CAAuBC,eAAxC;AACA,YAAMC,OAAO,GAAG,KAAKC,UAAL,CAAgBJ,QAAhB,EAA0BJ,QAA1B,CAAhB;AACA,UAAI,CAACO,OAAL,EAAc,OAAOJ,SAAP;AACd,UAAI,CAACJ,GAAG,CAACU,KAAT,EAAgB,OAAON,SAAP;AAChB,YAAMO,aAAa,GAAG,MAAMX,GAAG,CAACU,KAAJ,CAAUd,OAAV,EAAmBK,QAAnB,EAA6BO,OAA7B,CAA5B;AACA,UAAIR,GAAG,CAACY,MAAR,EAAgB,MAAMZ,GAAG,CAACY,MAAJ,CAAWD,aAAX,EAA0BH,OAA1B,CAAN;AAChB,YAAM,KAAKK,iBAAL,CAAuBF,aAAvB,EAAsCH,OAAtC,CAAN;AACA,aAAO;AAAEM,QAAAA,SAAS,EAAEN,OAAO,CAACM;AAArB,OAAP;AACD,KAXiC,CAAlC;AAaA,WAAO;AACLC,MAAAA,iBAAiB,EAAEhB,mBAAmB,CAACiB,OAApB,CAA6BC,CAAD,IAAQA,CAAC,GAAG,CAACA,CAAD,CAAH,GAAS,EAA9C;AADd,KAAP;AAGD;;AAEOR,EAAAA,UAAU,CAACJ,QAAD,EAAsBJ,QAAtB,EAAwC;AACxD,UAAMiB,eAAe,GAAGC,yBAAYC,UAAZ,CAAuBnB,QAAvB,EAAiCoB,sBAAjC,EAAxB;;AACA,WAAOhB,QAAQ,CAACiB,IAAT,CAAed,OAAD,IAAaA,OAAO,CAACM,SAAR,CAAkBpB,EAAlB,CAAqB2B,sBAArB,OAAkDH,eAA7E,CAAP;AACD;;AAE8B,QAAjBL,iBAAiB,CAACF,aAAD,EAA8BH,OAA9B,EAAgD;AAC7E,UAAMe,SAAS,GAAG,KAAK/B,WAAL,CAAiBgC,aAAjB,EAAlB;AACA,UAAM,2BAAUD,SAAV,EAAqB,MAAOE,QAAP,IAAoBA,QAAQ,CAACb,MAAT,CAAgBD,aAAhB,EAA+BH,OAA/B,CAAzC,CAAN;AACD;;AAlC0C","sourcesContent":["import mapSeries from 'p-map-series';\nimport { Capsule } from '@teambit/isolator';\nimport { BuildTask, BuiltTaskResult, BuildContext, ComponentResult } from '@teambit/builder';\nimport { ComponentID } from '@teambit/component';\nimport { ApplicationAspect } from './application.aspect';\nimport { ApplicationMain } from './application.main.runtime';\n\nexport const BUILD_TASK = 'build_application';\n\nexport class DeployTask implements BuildTask {\n name = BUILD_TASK;\n aspectId = ApplicationAspect.id;\n\n constructor(private application: ApplicationMain) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const apps = this.application.listApps();\n const componentsResultsUi = await mapSeries(apps, async (app): Promise<ComponentResult | undefined> => {\n const aspectId = this.application.getAppAspect(app.name);\n if (!aspectId) return undefined;\n const capsules = context.capsuleNetwork.seedersCapsules;\n const capsule = this.getCapsule(capsules, aspectId);\n if (!capsule) return undefined;\n if (!app.build) return undefined;\n const deployContext = await app.build(context, aspectId, capsule);\n if (app.deploy) await app.deploy(deployContext, capsule);\n await this.deployToProviders(deployContext, capsule);\n return { component: capsule.component };\n });\n\n return {\n componentsResults: componentsResultsUi.flatMap((f) => (f ? [f] : [])),\n };\n }\n\n private getCapsule(capsules: Capsule[], aspectId: string) {\n const aspectCapsuleId = ComponentID.fromString(aspectId).toStringWithoutVersion();\n return capsules.find((capsule) => capsule.component.id.toStringWithoutVersion() === aspectCapsuleId);\n }\n\n private async deployToProviders(deployContext: BuildContext, capsule: Capsule) {\n const providers = this.application.listProviders();\n await mapSeries(providers, async (provider) => provider.deploy(deployContext, capsule));\n }\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BuildContext } from '@teambit/builder';
|
|
2
|
+
import { Capsule } from '@teambit/isolator';
|
|
2
3
|
export interface DeploymentProvider {
|
|
3
|
-
deploy(context:
|
|
4
|
+
deploy(context: BuildContext, capsule: Capsule): Promise<void>;
|
|
4
5
|
}
|
package/dist/run.cmd.js
CHANGED
|
@@ -65,7 +65,8 @@ class RunCmd {
|
|
|
65
65
|
} = await this.application.runApp(appName, {
|
|
66
66
|
dev
|
|
67
67
|
});
|
|
68
|
-
return `${appName} app is running on http://localhost:${port}`;
|
|
68
|
+
if (port) return `${appName} app is running on http://localhost:${port}`;
|
|
69
|
+
return `${appName} app is running`;
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
async render([appName], {
|
|
@@ -77,7 +78,12 @@ class RunCmd {
|
|
|
77
78
|
} = await this.application.runApp(appName, {
|
|
78
79
|
dev
|
|
79
80
|
});
|
|
80
|
-
|
|
81
|
+
|
|
82
|
+
if (port) {
|
|
83
|
+
return /*#__PURE__*/_react().default.createElement(_ink().Text, null, appName, " app is running on http://localhost:", port);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return /*#__PURE__*/_react().default.createElement(_ink().Text, null, appName, " app is running"); // return <UIServerConsole appName={appName} futureUiServer={uiServer} />;
|
|
81
87
|
}
|
|
82
88
|
|
|
83
89
|
}
|
package/dist/run.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["run.cmd.tsx"],"names":["RunCmd","constructor","application","logger","report","appName","dev","off","port","runApp","render"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIO,MAAMA,MAAN,CAAgC;AAUrCC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,WAJC,EAMDC,MANC,EAOT;AAAA,SAHQD,WAGR,GAHQA,WAGR;AAAA,SADQC,MACR,GADQA,MACR;AAAA,kDAhBK,WAgBL;AAAA,yDAfY,oBAeZ;AAAA,mDAdM,GAcN;AAAA,mDAbM,MAaN;AAAA,qDAZQ,CACR,CAAC,GAAD,EAAM,KAAN,EAAa,oCAAb,CADQ,EAER,CAAC,GAAD,EAAM,SAAN,EAAiB,8DAAjB,CAFQ,CAYR;AAAE;;AAEQ,QAANC,MAAM,CACV,CAACC,OAAD,CADU,EAEV;AAAEC,IAAAA;AAAF,GAFU,EAGO;AACjB,SAAKH,MAAL,CAAYI,GAAZ;AAEA,UAAM;AAAEC,MAAAA;AAAF,QAAW,MAAM,KAAKN,WAAL,CAAiBO,MAAjB,CAAwBJ,OAAxB,EAAiC;AACtDC,MAAAA;AADsD,KAAjC,CAAvB;AAIA,
|
|
1
|
+
{"version":3,"sources":["run.cmd.tsx"],"names":["RunCmd","constructor","application","logger","report","appName","dev","off","port","runApp","render"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIO,MAAMA,MAAN,CAAgC;AAUrCC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,WAJC,EAMDC,MANC,EAOT;AAAA,SAHQD,WAGR,GAHQA,WAGR;AAAA,SADQC,MACR,GADQA,MACR;AAAA,kDAhBK,WAgBL;AAAA,yDAfY,oBAeZ;AAAA,mDAdM,GAcN;AAAA,mDAbM,MAaN;AAAA,qDAZQ,CACR,CAAC,GAAD,EAAM,KAAN,EAAa,oCAAb,CADQ,EAER,CAAC,GAAD,EAAM,SAAN,EAAiB,8DAAjB,CAFQ,CAYR;AAAE;;AAEQ,QAANC,MAAM,CACV,CAACC,OAAD,CADU,EAEV;AAAEC,IAAAA;AAAF,GAFU,EAGO;AACjB,SAAKH,MAAL,CAAYI,GAAZ;AAEA,UAAM;AAAEC,MAAAA;AAAF,QAAW,MAAM,KAAKN,WAAL,CAAiBO,MAAjB,CAAwBJ,OAAxB,EAAiC;AACtDC,MAAAA;AADsD,KAAjC,CAAvB;AAIA,QAAIE,IAAJ,EAAU,OAAQ,GAAEH,OAAQ,uCAAsCG,IAAK,EAA7D;AACV,WAAQ,GAAEH,OAAQ,iBAAlB;AACD;;AAEW,QAANK,MAAM,CACV,CAACL,OAAD,CADU,EAEV;AAAEC,IAAAA;AAAF,GAFU,EAGmB;AAC7B;AACA,UAAM;AAAEE,MAAAA;AAAF,QAAW,MAAM,KAAKN,WAAL,CAAiBO,MAAjB,CAAwBJ,OAAxB,EAAiC;AACtDC,MAAAA;AADsD,KAAjC,CAAvB;;AAIA,QAAIE,IAAJ,EAAU;AACR,0BACE,+BAAC,WAAD,QACGH,OADH,0CACgDG,IADhD,CADF;AAKD;;AACD,wBAAO,+BAAC,WAAD,QAAOH,OAAP,oBAAP,CAb6B,CAc7B;AACD;;AAnDoC","sourcesContent":["import React from 'react';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { Text } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { ApplicationMain } from './application.main.runtime';\n\nexport class RunCmd implements Command {\n name = 'run <app>';\n description = 'run an application';\n alias = 'c';\n group = 'apps';\n options = [\n ['d', 'dev', 'start the application in dev mode.'],\n ['v', 'verbose', 'showing verbose output for inspection and prints stack trace'],\n ] as CommandOptions;\n\n constructor(\n /**\n * access to the extension instance.\n */\n private application: ApplicationMain,\n\n private logger: Logger\n ) {}\n\n async report(\n [appName]: [string],\n { dev }: { dev: boolean; port: string; rebuild: boolean; verbose: boolean; suppressBrowserLaunch: boolean }\n ): Promise<string> {\n this.logger.off();\n\n const { port } = await this.application.runApp(appName, {\n dev,\n });\n\n if (port) return `${appName} app is running on http://localhost:${port}`;\n return `${appName} app is running`;\n }\n\n async render(\n [appName]: [string],\n { dev }: { dev: boolean; rebuild: boolean; verbose: boolean; suppressBrowserLaunch: boolean }\n ): Promise<React.ReactElement> {\n // remove wds logs until refactoring webpack to a worker through the Worker aspect.\n const { port } = await this.application.runApp(appName, {\n dev,\n });\n\n if (port) {\n return (\n <Text>\n {appName} app is running on http://localhost:{port}\n </Text>\n );\n }\n return <Text>{appName} app is running</Text>;\n // return <UIServerConsole appName={appName} futureUiServer={uiServer} />;\n }\n}\n"]}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/application",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.234",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/harmony/application",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.harmony",
|
|
8
8
|
"name": "application",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.234"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"ink": "3.0.8",
|
|
17
17
|
"@babel/runtime": "7.12.18",
|
|
18
18
|
"core-js": "^3.0.0",
|
|
19
|
-
"@teambit/
|
|
20
|
-
"@teambit/
|
|
21
|
-
"@teambit/cli": "0.0.
|
|
22
|
-
"@teambit/
|
|
23
|
-
"@teambit/
|
|
24
|
-
"@teambit/
|
|
25
|
-
"@teambit/logger": "0.0.
|
|
26
|
-
"@teambit/isolator": "0.0.
|
|
19
|
+
"@teambit/component": "0.0.592",
|
|
20
|
+
"@teambit/envs": "0.0.592",
|
|
21
|
+
"@teambit/cli-table": "0.0.29",
|
|
22
|
+
"@teambit/cli": "0.0.406",
|
|
23
|
+
"@teambit/aspect-loader": "0.0.592",
|
|
24
|
+
"@teambit/builder": "0.0.592",
|
|
25
|
+
"@teambit/logger": "0.0.494",
|
|
26
|
+
"@teambit/isolator": "0.0.592"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/lodash": "4.14.165",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"@types/node": "12.20.4"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@teambit/legacy": "1.0.
|
|
38
|
+
"@teambit/legacy": "1.0.192",
|
|
39
39
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
40
40
|
"react": "^16.8.0 || ^17.0.0"
|
|
41
41
|
},
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"react": "-"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
|
-
"@teambit/legacy": "1.0.
|
|
66
|
+
"@teambit/legacy": "1.0.192",
|
|
67
67
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
68
68
|
"react": "^16.8.0 || ^17.0.0"
|
|
69
69
|
}
|
package/run.cmd.tsx
CHANGED
|
@@ -33,7 +33,8 @@ export class RunCmd implements Command {
|
|
|
33
33
|
dev,
|
|
34
34
|
});
|
|
35
35
|
|
|
36
|
-
return `${appName} app is running on http://localhost:${port}`;
|
|
36
|
+
if (port) return `${appName} app is running on http://localhost:${port}`;
|
|
37
|
+
return `${appName} app is running`;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
async render(
|
|
@@ -45,11 +46,14 @@ export class RunCmd implements Command {
|
|
|
45
46
|
dev,
|
|
46
47
|
});
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
if (port) {
|
|
50
|
+
return (
|
|
51
|
+
<Text>
|
|
52
|
+
{appName} app is running on http://localhost:{port}
|
|
53
|
+
</Text>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
return <Text>{appName} app is running</Text>;
|
|
53
57
|
// return <UIServerConsole appName={appName} futureUiServer={uiServer} />;
|
|
54
58
|
}
|
|
55
59
|
}
|
|
Binary file
|