@teambit/application 0.0.285 → 0.0.286
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/{__preview-1644248123158.js → __preview-1644290603845.js} +0 -0
- package/dist/application.main.runtime.d.ts +11 -5
- package/dist/application.main.runtime.js +26 -4
- package/dist/application.main.runtime.js.map +1 -1
- package/dist/run.cmd.d.ts +8 -13
- package/dist/run.cmd.js +9 -5
- package/dist/run.cmd.js.map +1 -1
- package/package-tar/teambit-application-0.0.286.tgz +0 -0
- package/package.json +12 -11
- package/run.cmd.tsx +11 -8
- package/package-tar/teambit-application-0.0.285.tgz +0 -0
|
File without changes
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { CLIMain } from '@teambit/cli';
|
|
2
2
|
import { AspectLoaderMain } from '@teambit/aspect-loader';
|
|
3
3
|
import { SlotRegistry } from '@teambit/harmony';
|
|
4
|
+
import { Workspace } from '@teambit/workspace';
|
|
4
5
|
import { BuilderMain } from '@teambit/builder';
|
|
5
|
-
import { LoggerMain } from '@teambit/logger';
|
|
6
|
+
import { Logger, LoggerMain } from '@teambit/logger';
|
|
6
7
|
import { EnvsMain } from '@teambit/envs';
|
|
7
8
|
import { ComponentMain, ComponentID } from '@teambit/component';
|
|
8
9
|
import { ApplicationType } from './application-type';
|
|
@@ -31,7 +32,9 @@ export declare class ApplicationMain {
|
|
|
31
32
|
private componentAspect;
|
|
32
33
|
private appService;
|
|
33
34
|
private aspectLoader;
|
|
34
|
-
|
|
35
|
+
private workspace;
|
|
36
|
+
private logger;
|
|
37
|
+
constructor(appSlot: ApplicationSlot, appTypeSlot: ApplicationTypeSlot, deploymentProviderSlot: DeploymentProviderSlot, envs: EnvsMain, componentAspect: ComponentMain, appService: AppService, aspectLoader: AspectLoaderMain, workspace: Workspace, logger: Logger);
|
|
35
38
|
/**
|
|
36
39
|
* register a new app.
|
|
37
40
|
*/
|
|
@@ -65,7 +68,9 @@ export declare class ApplicationMain {
|
|
|
65
68
|
*/
|
|
66
69
|
getAppOrThrow(appName: string): Application;
|
|
67
70
|
private computeOptions;
|
|
68
|
-
runApp(appName: string, options?: Partial<ServeAppOptions>
|
|
71
|
+
runApp(appName: string, options?: Partial<ServeAppOptions> & {
|
|
72
|
+
skipWatch?: boolean;
|
|
73
|
+
}): Promise<{
|
|
69
74
|
app: Application;
|
|
70
75
|
port: number | void;
|
|
71
76
|
}>;
|
|
@@ -77,12 +82,13 @@ export declare class ApplicationMain {
|
|
|
77
82
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
78
83
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
79
84
|
static slots: (((registerFn: () => string) => SlotRegistry<ApplicationType<unknown>[]>) | ((registerFn: () => string) => SlotRegistry<Application[]>) | ((registerFn: () => string) => SlotRegistry<DeploymentProvider[]>))[];
|
|
80
|
-
static provider([cli, loggerAspect, builder, envs, component, aspectLoader]: [
|
|
85
|
+
static provider([cli, loggerAspect, builder, envs, component, aspectLoader, workspace]: [
|
|
81
86
|
CLIMain,
|
|
82
87
|
LoggerMain,
|
|
83
88
|
BuilderMain,
|
|
84
89
|
EnvsMain,
|
|
85
90
|
ComponentMain,
|
|
86
|
-
AspectLoaderMain
|
|
91
|
+
AspectLoaderMain,
|
|
92
|
+
Workspace
|
|
87
93
|
], config: ApplicationAspectConfig, [appTypeSlot, appSlot, deploymentProviderSlot]: [ApplicationTypeSlot, ApplicationSlot, DeploymentProviderSlot]): Promise<ApplicationMain>;
|
|
88
94
|
}
|
|
@@ -61,6 +61,16 @@ function _harmony() {
|
|
|
61
61
|
return data;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
function _workspace() {
|
|
65
|
+
const data = _interopRequireDefault(require("@teambit/workspace"));
|
|
66
|
+
|
|
67
|
+
_workspace = function () {
|
|
68
|
+
return data;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
return data;
|
|
72
|
+
}
|
|
73
|
+
|
|
64
74
|
function _builder() {
|
|
65
75
|
const data = require("@teambit/builder");
|
|
66
76
|
|
|
@@ -210,7 +220,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
210
220
|
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; }
|
|
211
221
|
|
|
212
222
|
class ApplicationMain {
|
|
213
|
-
constructor(appSlot, appTypeSlot, deploymentProviderSlot, envs, componentAspect, appService, aspectLoader) {
|
|
223
|
+
constructor(appSlot, appTypeSlot, deploymentProviderSlot, envs, componentAspect, appService, aspectLoader, workspace, logger) {
|
|
214
224
|
this.appSlot = appSlot;
|
|
215
225
|
this.appTypeSlot = appTypeSlot;
|
|
216
226
|
this.deploymentProviderSlot = deploymentProviderSlot;
|
|
@@ -218,6 +228,8 @@ class ApplicationMain {
|
|
|
218
228
|
this.componentAspect = componentAspect;
|
|
219
229
|
this.appService = appService;
|
|
220
230
|
this.aspectLoader = aspectLoader;
|
|
231
|
+
this.workspace = workspace;
|
|
232
|
+
this.logger = logger;
|
|
221
233
|
}
|
|
222
234
|
/**
|
|
223
235
|
* register a new app.
|
|
@@ -310,6 +322,16 @@ class ApplicationMain {
|
|
|
310
322
|
const context = await this.createAppContext(appName);
|
|
311
323
|
if (!context) throw new (_exceptions().AppNotFound)(appName);
|
|
312
324
|
const port = await app.run(context);
|
|
325
|
+
|
|
326
|
+
if (!options.skipWatch) {
|
|
327
|
+
this.workspace.watcher.watchAll({
|
|
328
|
+
preCompile: false
|
|
329
|
+
}).catch(err => {
|
|
330
|
+
// don't throw an error, we don't want to break the "run" process
|
|
331
|
+
this.logger.error(`compilation failed`, err);
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
|
|
313
335
|
return {
|
|
314
336
|
app,
|
|
315
337
|
port
|
|
@@ -345,10 +367,10 @@ class ApplicationMain {
|
|
|
345
367
|
});
|
|
346
368
|
}
|
|
347
369
|
|
|
348
|
-
static async provider([cli, loggerAspect, builder, envs, component, aspectLoader], config, [appTypeSlot, appSlot, deploymentProviderSlot]) {
|
|
370
|
+
static async provider([cli, loggerAspect, builder, envs, component, aspectLoader, workspace], config, [appTypeSlot, appSlot, deploymentProviderSlot]) {
|
|
349
371
|
const logger = loggerAspect.createLogger(_application().ApplicationAspect.id);
|
|
350
372
|
const appService = new (_application2().AppService)();
|
|
351
|
-
const application = new ApplicationMain(appSlot, appTypeSlot, deploymentProviderSlot, envs, component, appService, aspectLoader);
|
|
373
|
+
const application = new ApplicationMain(appSlot, appTypeSlot, deploymentProviderSlot, envs, component, appService, aspectLoader, workspace, logger);
|
|
352
374
|
const appCmd = new (_app().AppCmd)();
|
|
353
375
|
appCmd.commands = [new (_app().AppListCmd)(application)];
|
|
354
376
|
aspectLoader.registerPlugins([new (_app2().AppPlugin)(appSlot)]);
|
|
@@ -364,7 +386,7 @@ class ApplicationMain {
|
|
|
364
386
|
|
|
365
387
|
exports.ApplicationMain = ApplicationMain;
|
|
366
388
|
(0, _defineProperty2().default)(ApplicationMain, "runtime", _cli().MainRuntime);
|
|
367
|
-
(0, _defineProperty2().default)(ApplicationMain, "dependencies", [_cli().CLIAspect, _logger().LoggerAspect, _builder().BuilderAspect, _envs().EnvsAspect, _component().default, _aspectLoader().AspectLoaderAspect]);
|
|
389
|
+
(0, _defineProperty2().default)(ApplicationMain, "dependencies", [_cli().CLIAspect, _logger().LoggerAspect, _builder().BuilderAspect, _envs().EnvsAspect, _component().default, _aspectLoader().AspectLoaderAspect, _workspace().default]);
|
|
368
390
|
(0, _defineProperty2().default)(ApplicationMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
369
391
|
|
|
370
392
|
_application().ApplicationAspect.addRuntime(ApplicationMain);
|
|
@@ -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","mapApps","toArray","listAppsById","id","undefined","get","toString","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","provider","cli","loggerAspect","builder","config","logger","createLogger","ApplicationAspect","AppService","application","appCmd","AppCmd","commands","AppListCmd","AppPlugin","registerBuildTasks","AppsBuildTask","registerSnapTasks","DeployTask","registerTagTasks","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, cloneDeep } 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 { AppsBuildTask } from './build.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';\nimport { DeployTask } from './deploy.task';\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 * 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(cloneDeep(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.registerBuildTasks([new AppsBuildTask(application)]);\n builder.registerSnapTasks([new DeployTask(application, builder)]);\n builder.registerTagTasks([new DeployTask(application, builder)]);\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","workspace","logger","registerApp","app","register","listApps","values","mapApps","toArray","listAppsById","id","undefined","get","toString","getApp","appName","apps","find","name","registerAppType","appType","plugin","AppTypePlugin","registerPlugins","getAppAspect","getAppOrThrow","AppNotFound","computeOptions","opts","defaultOpts","dev","defaultPortRange","runApp","options","context","createAppContext","port","run","skipWatch","watcher","watchAll","preCompile","catch","err","error","getAppIdOrThrow","maybeApp","ComponentID","fromString","host","getHost","components","list","component","c","isEqual","env","createEnvironment","res","results","data","Object","assign","appComponent","provider","cli","loggerAspect","builder","config","createLogger","ApplicationAspect","AppService","application","appCmd","AppCmd","commands","AppListCmd","AppPlugin","registerBuildTasks","AppsBuildTask","registerSnapTasks","DeployTask","registerTagTasks","registerGroup","RunCmd","AppListCmdDeprecated","MainRuntime","CLIAspect","LoggerAspect","BuilderAspect","EnvsAspect","ComponentAspect","AspectLoaderAspect","WorkspaceAspect","Slot","withType","addRuntime"],"mappings":"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","sourcesContent":["import { MainRuntime, CLIMain, CLIAspect } from '@teambit/cli';\nimport { flatten, cloneDeep } from 'lodash';\nimport { AspectLoaderMain, AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { Logger, 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 { AppsBuildTask } from './build.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';\nimport { DeployTask } from './deploy.task';\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 private workspace: Workspace,\n private logger: Logger\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 * 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> & { skipWatch?: boolean } = {}) {\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 if (!options.skipWatch) {\n this.workspace.watcher\n .watchAll({\n preCompile: false,\n })\n .catch((err) => {\n // don't throw an error, we don't want to break the \"run\" process\n this.logger.error(`compilation failed`, err);\n });\n }\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(cloneDeep(context), {\n appName,\n appComponent: component,\n });\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n LoggerAspect,\n BuilderAspect,\n EnvsAspect,\n ComponentAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n ];\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, workspace]: [\n CLIMain,\n LoggerMain,\n BuilderMain,\n EnvsMain,\n ComponentMain,\n AspectLoaderMain,\n Workspace\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 workspace,\n logger\n );\n const appCmd = new AppCmd();\n appCmd.commands = [new AppListCmd(application)];\n aspectLoader.registerPlugins([new AppPlugin(appSlot)]);\n builder.registerBuildTasks([new AppsBuildTask(application)]);\n builder.registerSnapTasks([new DeployTask(application, builder)]);\n builder.registerTagTasks([new DeployTask(application, builder)]);\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/run.cmd.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ import React from 'react';
|
|
|
2
2
|
import { Command, CommandOptions } from '@teambit/cli';
|
|
3
3
|
import { Logger } from '@teambit/logger';
|
|
4
4
|
import { ApplicationMain } from './application.main.runtime';
|
|
5
|
+
declare type RunOptions = {
|
|
6
|
+
dev: boolean;
|
|
7
|
+
verbose: boolean;
|
|
8
|
+
skipWatch: boolean;
|
|
9
|
+
};
|
|
5
10
|
export declare class RunCmd implements Command {
|
|
6
11
|
/**
|
|
7
12
|
* access to the extension instance.
|
|
@@ -18,17 +23,7 @@ export declare class RunCmd implements Command {
|
|
|
18
23
|
* access to the extension instance.
|
|
19
24
|
*/
|
|
20
25
|
application: ApplicationMain, logger: Logger);
|
|
21
|
-
report([appName]: [string], { dev }:
|
|
22
|
-
|
|
23
|
-
port: string;
|
|
24
|
-
rebuild: boolean;
|
|
25
|
-
verbose: boolean;
|
|
26
|
-
suppressBrowserLaunch: boolean;
|
|
27
|
-
}): Promise<string>;
|
|
28
|
-
render([appName]: [string], { dev }: {
|
|
29
|
-
dev: boolean;
|
|
30
|
-
rebuild: boolean;
|
|
31
|
-
verbose: boolean;
|
|
32
|
-
suppressBrowserLaunch: boolean;
|
|
33
|
-
}): Promise<React.ReactElement>;
|
|
26
|
+
report([appName]: [string], { dev, skipWatch }: RunOptions): Promise<string>;
|
|
27
|
+
render([appName]: [string], { dev, skipWatch }: RunOptions): Promise<React.ReactElement>;
|
|
34
28
|
}
|
|
29
|
+
export {};
|
package/dist/run.cmd.js
CHANGED
|
@@ -53,30 +53,34 @@ class RunCmd {
|
|
|
53
53
|
(0, _defineProperty2().default)(this, "description", 'run an application');
|
|
54
54
|
(0, _defineProperty2().default)(this, "alias", 'c');
|
|
55
55
|
(0, _defineProperty2().default)(this, "group", 'apps');
|
|
56
|
-
(0, _defineProperty2().default)(this, "options", [['d', 'dev', 'start the application in dev mode.'], ['v', 'verbose', 'showing verbose output for inspection and prints stack trace']]);
|
|
56
|
+
(0, _defineProperty2().default)(this, "options", [['d', 'dev', 'start the application in dev mode.'], ['v', 'verbose', 'showing verbose output for inspection and prints stack trace'], ['', 'skip-watch', 'avoid running the watch process that compiles components in the background']]);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
async report([appName], {
|
|
60
|
-
dev
|
|
60
|
+
dev,
|
|
61
|
+
skipWatch
|
|
61
62
|
}) {
|
|
62
63
|
this.logger.off();
|
|
63
64
|
const {
|
|
64
65
|
port
|
|
65
66
|
} = await this.application.runApp(appName, {
|
|
66
|
-
dev
|
|
67
|
+
dev,
|
|
68
|
+
skipWatch
|
|
67
69
|
});
|
|
68
70
|
if (port) return `${appName} app is running on http://localhost:${port}`;
|
|
69
71
|
return `${appName} app is running`;
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
async render([appName], {
|
|
73
|
-
dev
|
|
75
|
+
dev,
|
|
76
|
+
skipWatch
|
|
74
77
|
}) {
|
|
75
78
|
// remove wds logs until refactoring webpack to a worker through the Worker aspect.
|
|
76
79
|
const {
|
|
77
80
|
port
|
|
78
81
|
} = await this.application.runApp(appName, {
|
|
79
|
-
dev
|
|
82
|
+
dev,
|
|
83
|
+
skipWatch
|
|
80
84
|
});
|
|
81
85
|
|
|
82
86
|
if (port) {
|
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;;
|
|
1
|
+
{"version":3,"sources":["run.cmd.tsx"],"names":["RunCmd","constructor","application","logger","report","appName","dev","skipWatch","off","port","runApp","render"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAUO,MAAMA,MAAN,CAAgC;AAWrCC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,WAJC,EAMDC,MANC,EAOT;AAAA,SAHQD,WAGR,GAHQA,WAGR;AAAA,SADQC,MACR,GADQA,MACR;AAAA,kDAjBK,WAiBL;AAAA,yDAhBY,oBAgBZ;AAAA,mDAfM,GAeN;AAAA,mDAdM,MAcN;AAAA,qDAbQ,CACR,CAAC,GAAD,EAAM,KAAN,EAAa,oCAAb,CADQ,EAER,CAAC,GAAD,EAAM,SAAN,EAAiB,8DAAjB,CAFQ,EAGR,CAAC,EAAD,EAAK,YAAL,EAAmB,4EAAnB,CAHQ,CAaR;AAAE;;AAEQ,QAANC,MAAM,CAAC,CAACC,OAAD,CAAD,EAAsB;AAAEC,IAAAA,GAAF;AAAOC,IAAAA;AAAP,GAAtB,EAAuE;AACjF,SAAKJ,MAAL,CAAYK,GAAZ;AAEA,UAAM;AAAEC,MAAAA;AAAF,QAAW,MAAM,KAAKP,WAAL,CAAiBQ,MAAjB,CAAwBL,OAAxB,EAAiC;AACtDC,MAAAA,GADsD;AAEtDC,MAAAA;AAFsD,KAAjC,CAAvB;AAKA,QAAIE,IAAJ,EAAU,OAAQ,GAAEJ,OAAQ,uCAAsCI,IAAK,EAA7D;AACV,WAAQ,GAAEJ,OAAQ,iBAAlB;AACD;;AAEW,QAANM,MAAM,CAAC,CAACN,OAAD,CAAD,EAAsB;AAAEC,IAAAA,GAAF;AAAOC,IAAAA;AAAP,GAAtB,EAAmF;AAC7F;AACA,UAAM;AAAEE,MAAAA;AAAF,QAAW,MAAM,KAAKP,WAAL,CAAiBQ,MAAjB,CAAwBL,OAAxB,EAAiC;AACtDC,MAAAA,GADsD;AAEtDC,MAAAA;AAFsD,KAAjC,CAAvB;;AAKA,QAAIE,IAAJ,EAAU;AACR,0BACE,+BAAC,WAAD,QACGJ,OADH,0CACgDI,IADhD,CADF;AAKD;;AACD,wBAAO,+BAAC,WAAD,QAAOJ,OAAP,oBAAP,CAd6F,CAe7F;AACD;;AAhDoC","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\ntype RunOptions = {\n dev: boolean;\n verbose: boolean;\n skipWatch: boolean;\n};\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 ['', 'skip-watch', 'avoid running the watch process that compiles components in the background'],\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([appName]: [string], { dev, skipWatch }: RunOptions): Promise<string> {\n this.logger.off();\n\n const { port } = await this.application.runApp(appName, {\n dev,\n skipWatch,\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([appName]: [string], { dev, skipWatch }: RunOptions): 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 skipWatch,\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.286",
|
|
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.286"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -16,14 +16,15 @@
|
|
|
16
16
|
"ink": "3.0.8",
|
|
17
17
|
"@babel/runtime": "7.12.18",
|
|
18
18
|
"core-js": "^3.0.0",
|
|
19
|
-
"@teambit/builder": "0.0.
|
|
20
|
-
"@teambit/component": "0.0.
|
|
21
|
-
"@teambit/isolator": "0.0.
|
|
22
|
-
"@teambit/envs": "0.0.
|
|
19
|
+
"@teambit/builder": "0.0.644",
|
|
20
|
+
"@teambit/component": "0.0.644",
|
|
21
|
+
"@teambit/isolator": "0.0.644",
|
|
22
|
+
"@teambit/envs": "0.0.644",
|
|
23
23
|
"@teambit/cli-table": "0.0.33",
|
|
24
|
-
"@teambit/cli": "0.0.
|
|
25
|
-
"@teambit/aspect-loader": "0.0.
|
|
26
|
-
"@teambit/logger": "0.0.
|
|
24
|
+
"@teambit/cli": "0.0.439",
|
|
25
|
+
"@teambit/aspect-loader": "0.0.644",
|
|
26
|
+
"@teambit/logger": "0.0.529",
|
|
27
|
+
"@teambit/workspace": "0.0.644"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
29
30
|
"@types/lodash": "4.14.165",
|
|
@@ -35,7 +36,7 @@
|
|
|
35
36
|
"@types/node": "12.20.4"
|
|
36
37
|
},
|
|
37
38
|
"peerDependencies": {
|
|
38
|
-
"@teambit/legacy": "1.0.
|
|
39
|
+
"@teambit/legacy": "1.0.217",
|
|
39
40
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
40
41
|
"react": "^16.8.0 || ^17.0.0"
|
|
41
42
|
},
|
|
@@ -63,7 +64,7 @@
|
|
|
63
64
|
"react": "-"
|
|
64
65
|
},
|
|
65
66
|
"peerDependencies": {
|
|
66
|
-
"@teambit/legacy": "1.0.
|
|
67
|
+
"@teambit/legacy": "1.0.217",
|
|
67
68
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
68
69
|
"react": "^16.8.0 || ^17.0.0"
|
|
69
70
|
}
|
package/run.cmd.tsx
CHANGED
|
@@ -4,6 +4,12 @@ import { Text } from 'ink';
|
|
|
4
4
|
import { Logger } from '@teambit/logger';
|
|
5
5
|
import { ApplicationMain } from './application.main.runtime';
|
|
6
6
|
|
|
7
|
+
type RunOptions = {
|
|
8
|
+
dev: boolean;
|
|
9
|
+
verbose: boolean;
|
|
10
|
+
skipWatch: boolean;
|
|
11
|
+
};
|
|
12
|
+
|
|
7
13
|
export class RunCmd implements Command {
|
|
8
14
|
name = 'run <app>';
|
|
9
15
|
description = 'run an application';
|
|
@@ -12,6 +18,7 @@ export class RunCmd implements Command {
|
|
|
12
18
|
options = [
|
|
13
19
|
['d', 'dev', 'start the application in dev mode.'],
|
|
14
20
|
['v', 'verbose', 'showing verbose output for inspection and prints stack trace'],
|
|
21
|
+
['', 'skip-watch', 'avoid running the watch process that compiles components in the background'],
|
|
15
22
|
] as CommandOptions;
|
|
16
23
|
|
|
17
24
|
constructor(
|
|
@@ -23,27 +30,23 @@ export class RunCmd implements Command {
|
|
|
23
30
|
private logger: Logger
|
|
24
31
|
) {}
|
|
25
32
|
|
|
26
|
-
async report(
|
|
27
|
-
[appName]: [string],
|
|
28
|
-
{ dev }: { dev: boolean; port: string; rebuild: boolean; verbose: boolean; suppressBrowserLaunch: boolean }
|
|
29
|
-
): Promise<string> {
|
|
33
|
+
async report([appName]: [string], { dev, skipWatch }: RunOptions): Promise<string> {
|
|
30
34
|
this.logger.off();
|
|
31
35
|
|
|
32
36
|
const { port } = await this.application.runApp(appName, {
|
|
33
37
|
dev,
|
|
38
|
+
skipWatch,
|
|
34
39
|
});
|
|
35
40
|
|
|
36
41
|
if (port) return `${appName} app is running on http://localhost:${port}`;
|
|
37
42
|
return `${appName} app is running`;
|
|
38
43
|
}
|
|
39
44
|
|
|
40
|
-
async render(
|
|
41
|
-
[appName]: [string],
|
|
42
|
-
{ dev }: { dev: boolean; rebuild: boolean; verbose: boolean; suppressBrowserLaunch: boolean }
|
|
43
|
-
): Promise<React.ReactElement> {
|
|
45
|
+
async render([appName]: [string], { dev, skipWatch }: RunOptions): Promise<React.ReactElement> {
|
|
44
46
|
// remove wds logs until refactoring webpack to a worker through the Worker aspect.
|
|
45
47
|
const { port } = await this.application.runApp(appName, {
|
|
46
48
|
dev,
|
|
49
|
+
skipWatch,
|
|
47
50
|
});
|
|
48
51
|
|
|
49
52
|
if (port) {
|
|
Binary file
|