@teambit/application 1.0.61 → 1.0.63

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,13 +1,32 @@
1
1
  import { ExecutionContext } from '@teambit/envs';
2
+ import { Harmony } from '@teambit/harmony';
2
3
  import { Component } from '@teambit/component';
4
+ import { Logger } from '@teambit/logger';
3
5
  export declare class AppContext extends ExecutionContext {
6
+ /**
7
+ * name of the app
8
+ */
4
9
  readonly appName: string;
10
+ /**
11
+ * instance of harmony.
12
+ */
13
+ readonly harmony: Harmony;
5
14
  /**
6
15
  * determine whether to serve the application in dev mode.
7
16
  */
8
17
  readonly dev: boolean;
18
+ /**
19
+ * application component instance.
20
+ */
9
21
  readonly appComponent: Component;
22
+ /**
23
+ * working directory of the component.
24
+ */
10
25
  readonly workdir: string;
26
+ /**
27
+ * execution context of the app.
28
+ */
29
+ readonly execContext: ExecutionContext;
11
30
  /**
12
31
  * A path for the host root dir
13
32
  * Host root dir is the dir where we run the app from
@@ -19,11 +38,31 @@ export declare class AppContext extends ExecutionContext {
19
38
  * A port to run the app on
20
39
  */
21
40
  readonly port?: number | undefined;
22
- constructor(appName: string,
41
+ constructor(
42
+ /**
43
+ * name of the app
44
+ */
45
+ appName: string,
46
+ /**
47
+ * instance of harmony.
48
+ */
49
+ harmony: Harmony,
23
50
  /**
24
51
  * determine whether to serve the application in dev mode.
25
52
  */
26
- dev: boolean, appComponent: Component, workdir: string, execContext: ExecutionContext,
53
+ dev: boolean,
54
+ /**
55
+ * application component instance.
56
+ */
57
+ appComponent: Component,
58
+ /**
59
+ * working directory of the component.
60
+ */
61
+ workdir: string,
62
+ /**
63
+ * execution context of the app.
64
+ */
65
+ execContext: ExecutionContext,
27
66
  /**
28
67
  * A path for the host root dir
29
68
  * Host root dir is the dir where we run the app from
@@ -35,4 +74,14 @@ export declare class AppContext extends ExecutionContext {
35
74
  * A port to run the app on
36
75
  */
37
76
  port?: number | undefined);
77
+ /**
78
+ * return a logger instance for the env.
79
+ */
80
+ createLogger(name?: string): Logger;
81
+ /**
82
+ * get an instance of an aspect.
83
+ * make sure it is loaded prior to requesting it.
84
+ */
85
+ getAspect<T>(aspectId: string): T | undefined;
86
+ static compose(appContext: AppContext, overrides?: Partial<AppContext>): AppContext;
38
87
  }
@@ -11,12 +11,39 @@ function _envs() {
11
11
  };
12
12
  return data;
13
13
  }
14
+ function _logger() {
15
+ const data = require("@teambit/logger");
16
+ _logger = function () {
17
+ return data;
18
+ };
19
+ return data;
20
+ }
14
21
  class AppContext extends _envs().ExecutionContext {
15
- constructor(appName,
22
+ constructor(
23
+ /**
24
+ * name of the app
25
+ */
26
+ appName,
27
+ /**
28
+ * instance of harmony.
29
+ */
30
+ harmony,
16
31
  /**
17
32
  * determine whether to serve the application in dev mode.
18
33
  */
19
- dev, appComponent, workdir, execContext,
34
+ dev,
35
+ /**
36
+ * application component instance.
37
+ */
38
+ appComponent,
39
+ /**
40
+ * working directory of the component.
41
+ */
42
+ workdir,
43
+ /**
44
+ * execution context of the app.
45
+ */
46
+ execContext,
20
47
  /**
21
48
  * A path for the host root dir
22
49
  * Host root dir is the dir where we run the app from
@@ -30,15 +57,35 @@ class AppContext extends _envs().ExecutionContext {
30
57
  port) {
31
58
  super(execContext.upper, execContext.envRuntime, execContext.components);
32
59
  this.appName = appName;
60
+ this.harmony = harmony;
33
61
  this.dev = dev;
34
62
  this.appComponent = appComponent;
35
63
  this.workdir = workdir;
64
+ this.execContext = execContext;
36
65
  this.hostRootDir = hostRootDir;
37
66
  this.port = port;
38
67
  }
39
- // static fromExecContext() {
40
- // return new AppContext();
41
- // }
68
+
69
+ /**
70
+ * return a logger instance for the env.
71
+ */
72
+ createLogger(name) {
73
+ const loggerMain = this.harmony.get(_logger().LoggerAspect.id);
74
+ const appComponentId = this.appComponent.id;
75
+ const loggerName = name ? `${appComponentId.toString()}::${name}` : appComponentId.toString();
76
+ return loggerMain.createLogger(loggerName);
77
+ }
78
+
79
+ /**
80
+ * get an instance of an aspect.
81
+ * make sure it is loaded prior to requesting it.
82
+ */
83
+ getAspect(aspectId) {
84
+ return this.harmony.get(aspectId);
85
+ }
86
+ static compose(appContext, overrides) {
87
+ return new AppContext((overrides === null || overrides === void 0 ? void 0 : overrides.appName) || appContext.appName, (overrides === null || overrides === void 0 ? void 0 : overrides.harmony) || appContext.harmony, (overrides === null || overrides === void 0 ? void 0 : overrides.dev) || appContext.dev, (overrides === null || overrides === void 0 ? void 0 : overrides.appComponent) || appContext.appComponent, (overrides === null || overrides === void 0 ? void 0 : overrides.workdir) || appContext.workdir, (overrides === null || overrides === void 0 ? void 0 : overrides.execContext) || appContext.execContext, (overrides === null || overrides === void 0 ? void 0 : overrides.hostRootDir) || appContext.hostRootDir, (overrides === null || overrides === void 0 ? void 0 : overrides.port) || appContext.port);
88
+ }
42
89
  }
43
90
  exports.AppContext = AppContext;
44
91
 
@@ -1 +1 @@
1
- {"version":3,"names":["_envs","data","require","AppContext","ExecutionContext","constructor","appName","dev","appComponent","workdir","execContext","hostRootDir","port","upper","envRuntime","components","exports"],"sources":["app-context.ts"],"sourcesContent":["import { ExecutionContext } from '@teambit/envs';\nimport { Component } from '@teambit/component';\n\nexport class AppContext extends ExecutionContext {\n constructor(\n readonly appName: string,\n\n /**\n * determine whether to serve the application in dev mode.\n */\n readonly dev: boolean,\n\n readonly appComponent: Component,\n\n readonly workdir: string,\n\n execContext: ExecutionContext,\n\n /**\n * A path for the host root dir\n * Host root dir is the dir where we run the app from\n * This can be used in different bundle options which run require.resolve\n * for example when configuring webpack aliases or webpack expose loader on the peers deps\n */\n readonly hostRootDir?: string,\n\n /**\n * A port to run the app on\n */\n readonly port?: number\n ) {\n super(execContext.upper, execContext.envRuntime, execContext.components);\n }\n // static fromExecContext() {\n // return new AppContext();\n // }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGO,MAAME,UAAU,SAASC,wBAAgB,CAAC;EAC/CC,WAAWA,CACAC,OAAe;EAExB;AACJ;AACA;EACaC,GAAY,EAEZC,YAAuB,EAEvBC,OAAe,EAExBC,WAA6B;EAE7B;AACJ;AACA;AACA;AACA;AACA;EACaC,WAAoB;EAE7B;AACJ;AACA;EACaC,IAAa,EACtB;IACA,KAAK,CAACF,WAAW,CAACG,KAAK,EAAEH,WAAW,CAACI,UAAU,EAAEJ,WAAW,CAACK,UAAU,CAAC;IAAC,KA1BhET,OAAe,GAAfA,OAAe;IAAA,KAKfC,GAAY,GAAZA,GAAY;IAAA,KAEZC,YAAuB,GAAvBA,YAAuB;IAAA,KAEvBC,OAAe,GAAfA,OAAe;IAAA,KAUfE,WAAoB,GAApBA,WAAoB;IAAA,KAKpBC,IAAa,GAAbA,IAAa;EAGxB;EACA;EACA;EACA;AACF;AAACI,OAAA,CAAAb,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"names":["_envs","data","require","_logger","AppContext","ExecutionContext","constructor","appName","harmony","dev","appComponent","workdir","execContext","hostRootDir","port","upper","envRuntime","components","createLogger","name","loggerMain","get","LoggerAspect","id","appComponentId","loggerName","toString","getAspect","aspectId","compose","appContext","overrides","exports"],"sources":["app-context.ts"],"sourcesContent":["import { ExecutionContext } from '@teambit/envs';\nimport { Harmony } from '@teambit/harmony';\nimport { Component } from '@teambit/component';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\n\nexport class AppContext extends ExecutionContext {\n constructor(\n /**\n * name of the app\n */\n readonly appName: string,\n\n /**\n * instance of harmony.\n */\n readonly harmony: Harmony,\n\n /**\n * determine whether to serve the application in dev mode.\n */\n readonly dev: boolean,\n\n /**\n * application component instance.\n */\n readonly appComponent: Component,\n\n /**\n * working directory of the component.\n */\n readonly workdir: string,\n\n /**\n * execution context of the app.\n */\n readonly execContext: ExecutionContext,\n\n /**\n * A path for the host root dir\n * Host root dir is the dir where we run the app from\n * This can be used in different bundle options which run require.resolve\n * for example when configuring webpack aliases or webpack expose loader on the peers deps\n */\n readonly hostRootDir?: string,\n\n /**\n * A port to run the app on\n */\n readonly port?: number,\n ) {\n super(execContext.upper, execContext.envRuntime, execContext.components);\n }\n\n /**\n * return a logger instance for the env.\n */\n createLogger(name?: string): Logger {\n const loggerMain = this.harmony.get<LoggerMain>(LoggerAspect.id);\n const appComponentId = this.appComponent.id;\n const loggerName = name ? `${appComponentId.toString()}::${name}` : appComponentId.toString();\n\n return loggerMain.createLogger(loggerName);\n }\n\n /**\n * get an instance of an aspect. \n * make sure it is loaded prior to requesting it.\n */\n getAspect<T>(aspectId: string): T|undefined {\n return this.harmony.get<T>(aspectId);\n }\n\n static compose(appContext: AppContext, overrides?: Partial<AppContext>) {\n return new AppContext(\n overrides?.appName || appContext.appName,\n overrides?.harmony || appContext.harmony,\n overrides?.dev || appContext.dev,\n overrides?.appComponent || appContext.appComponent,\n overrides?.workdir || appContext.workdir,\n overrides?.execContext || appContext.execContext,\n overrides?.hostRootDir || appContext.hostRootDir,\n overrides?.port || appContext.port\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare type ApplicationInstance = {
2
+ /**
3
+ * port in which app is running.
4
+ */
5
+ port?: number;
6
+ /**
7
+ * name of the app
8
+ */
9
+ appName: string;
10
+ /**
11
+ * url of the running app.
12
+ */
13
+ url?: string;
14
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ //# sourceMappingURL=app-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["app-instance.ts"],"sourcesContent":["\n\nexport type ApplicationInstance = {\n /**\n * port in which app is running.\n */\n port?: number;\n\n /**\n * name of the app\n */\n appName: string;\n\n /**\n * url of the running app.\n */\n url?: string;\n};\n"],"mappings":""}
@@ -18,7 +18,7 @@ class AppPlugin {
18
18
  constructor(appSlot) {
19
19
  this.appSlot = appSlot;
20
20
  // TODO - this matches NOTHING
21
- _defineProperty(this, "pattern", '*.app.*?(ts|tsx|js|jsx)$');
21
+ _defineProperty(this, "pattern", '*.bit-app.*');
22
22
  _defineProperty(this, "runtimes", [_cli().MainRuntime.name]);
23
23
  }
24
24
  register(object) {
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","AppPlugin","constructor","appSlot","MainRuntime","name","register","object","exports"],"sources":["app.plugin.ts"],"sourcesContent":["import { PluginDefinition } from '@teambit/aspect-loader';\nimport { MainRuntime } from '@teambit/cli';\nimport { ApplicationSlot } from './application.main.runtime';\n\nexport class AppPlugin implements PluginDefinition {\n constructor(private appSlot: ApplicationSlot) {}\n\n // TODO - this matches NOTHING\n pattern = '*.app.*?(ts|tsx|js|jsx)$';\n\n runtimes = [MainRuntime.name];\n\n register(object: any) {\n return this.appSlot.register([object]);\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,KAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2C,SAAAE,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAGpC,MAAMU,SAAS,CAA6B;EACjDC,WAAWA,CAASC,OAAwB,EAAE;IAAA,KAA1BA,OAAwB,GAAxBA,OAAwB;IAE5C;IAAAzB,eAAA,kBACU,0BAA0B;IAAAA,eAAA,mBAEzB,CAAC0B,kBAAW,CAACC,IAAI,CAAC;EALkB;EAO/CC,QAAQA,CAACC,MAAW,EAAE;IACpB,OAAO,IAAI,CAACJ,OAAO,CAACG,QAAQ,CAAC,CAACC,MAAM,CAAC,CAAC;EACxC;AACF;AAACC,OAAA,CAAAP,SAAA,GAAAA,SAAA"}
1
+ {"version":3,"names":["_cli","data","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","AppPlugin","constructor","appSlot","MainRuntime","name","register","object","exports"],"sources":["app.plugin.ts"],"sourcesContent":["import { PluginDefinition } from '@teambit/aspect-loader';\nimport { MainRuntime } from '@teambit/cli';\nimport { ApplicationSlot } from './application.main.runtime';\n\nexport class AppPlugin implements PluginDefinition {\n constructor(private appSlot: ApplicationSlot) {}\n\n // TODO - this matches NOTHING\n pattern = '*.bit-app.*';\n\n runtimes = [MainRuntime.name];\n\n register(object: any) {\n return this.appSlot.register([object]);\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,KAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2C,SAAAE,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAGpC,MAAMU,SAAS,CAA6B;EACjDC,WAAWA,CAASC,OAAwB,EAAE;IAAA,KAA1BA,OAAwB,GAAxBA,OAAwB;IAE5C;IAAAzB,eAAA,kBACU,aAAa;IAAAA,eAAA,mBAEZ,CAAC0B,kBAAW,CAACC,IAAI,CAAC;EALkB;EAO/CC,QAAQA,CAACC,MAAW,EAAE;IACpB,OAAO,IAAI,CAACJ,OAAO,CAACG,QAAQ,CAAC,CAACC,MAAM,CAAC,CAAC;EACxC;AACF;AAACC,OAAA,CAAAP,SAAA,GAAAA,SAAA"}
@@ -2,7 +2,9 @@ import { AppContext } from './app-context';
2
2
  import { AppDeployContext } from './app-deploy-context';
3
3
  import { AppBuildContext } from './app-build-context';
4
4
  import { AppBuildResult } from './app-build-result';
5
+ import { ApplicationInstance } from './app-instance';
5
6
  export declare type DeployFn = (context: AppDeployContext) => Promise<void>;
7
+ export declare type BuildFn = (context: AppBuildContext) => Promise<AppBuildResult>;
6
8
  export declare type AppResult = {
7
9
  port?: number;
8
10
  errors?: Error[];
@@ -15,15 +17,11 @@ export interface Application {
15
17
  /**
16
18
  * run the application.
17
19
  */
18
- run(context: AppContext): Promise<number | void>;
19
- /**
20
- * run the application in ssr mode
21
- */
22
- runSsr?(context: AppContext): Promise<AppResult>;
20
+ run(context: AppContext): Promise<ApplicationInstance>;
23
21
  /**
24
22
  * build the application.
25
23
  */
26
- build?(context: AppBuildContext): Promise<AppBuildResult>;
24
+ build?: BuildFn;
27
25
  /**
28
26
  * application deployment. this is a build task.
29
27
  */
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["application.ts"],"sourcesContent":["import { AppContext } from './app-context';\nimport { AppDeployContext } from './app-deploy-context';\nimport { AppBuildContext } from './app-build-context';\nimport { AppBuildResult } from './app-build-result';\n\nexport type DeployFn = (context: AppDeployContext) => Promise<void>;\n\nexport type AppResult = {\n port?: number;\n errors?: Error[];\n};\n\nexport interface Application {\n /**\n * name of the application. e.g. ripple-ci.\n */\n name: string;\n\n /**\n * run the application.\n */\n run(context: AppContext): Promise<number | void>;\n\n /**\n * run the application in ssr mode\n */\n runSsr?(context: AppContext): Promise<AppResult>;\n\n /**\n * build the application.\n */\n build?(context: AppBuildContext): Promise<AppBuildResult>;\n\n /**\n * application deployment. this is a build task.\n */\n deploy?: DeployFn;\n\n /**\n * Type of the application\n */\n applicationType?: string;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["application.ts"],"sourcesContent":["import { AppContext } from './app-context';\nimport { AppDeployContext } from './app-deploy-context';\nimport { AppBuildContext } from './app-build-context';\nimport { AppBuildResult } from './app-build-result';\nimport { ApplicationInstance } from './app-instance';\n\nexport type DeployFn = (context: AppDeployContext) => Promise<void>;\n\nexport type BuildFn = (context: AppBuildContext) => Promise<AppBuildResult>;\n\nexport type AppResult = {\n port?: number;\n errors?: Error[];\n};\n\nexport interface Application {\n /**\n * name of the application. e.g. ripple-ci.\n */\n name: string;\n\n /**\n * run the application.\n */\n run(context: AppContext): Promise<ApplicationInstance>;\n\n /**\n * build the application.\n */\n build?: BuildFn;\n\n /**\n * application deployment. this is a build task.\n */\n deploy?: DeployFn;\n\n /**\n * Type of the application\n */\n applicationType?: string;\n}\n"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { CLIMain } from '@teambit/cli';
2
2
  import { AspectLoaderMain } from '@teambit/aspect-loader';
3
- import { SlotRegistry } from '@teambit/harmony';
3
+ import { SlotRegistry, Harmony } from '@teambit/harmony';
4
4
  import { Workspace } from '@teambit/workspace';
5
5
  import { WatcherMain } from '@teambit/watcher';
6
6
  import { BuilderMain } from '@teambit/builder';
@@ -63,7 +63,8 @@ export declare class ApplicationMain {
63
63
  private workspace;
64
64
  private logger;
65
65
  private watcher;
66
- constructor(appSlot: ApplicationSlot, appTypeSlot: ApplicationTypeSlot, deploymentProviderSlot: DeploymentProviderSlot, config: ApplicationAspectConfig, envs: EnvsMain, componentAspect: ComponentMain, appService: AppService, aspectLoader: AspectLoaderMain, workspace: Workspace, logger: Logger, watcher: WatcherMain);
66
+ private harmony;
67
+ constructor(appSlot: ApplicationSlot, appTypeSlot: ApplicationTypeSlot, deploymentProviderSlot: DeploymentProviderSlot, config: ApplicationAspectConfig, envs: EnvsMain, componentAspect: ComponentMain, appService: AppService, aspectLoader: AspectLoaderMain, workspace: Workspace, logger: Logger, watcher: WatcherMain, harmony: Harmony);
67
68
  /**
68
69
  * register a new app.
69
70
  */
@@ -122,13 +123,10 @@ export declare class ApplicationMain {
122
123
  private computeOptions;
123
124
  loadAppsToSlot(): Promise<this>;
124
125
  runApp(appName: string, options?: ServeAppOptions): Promise<{
125
- port?: number | undefined;
126
- errors?: Error[] | undefined;
127
126
  app: Application;
128
- } | {
129
- app: Application;
130
- port: number | void;
127
+ port: number | undefined;
131
128
  errors: undefined;
129
+ isOldApi: boolean;
132
130
  }>;
133
131
  /**
134
132
  * get the component ID of a certain app.
@@ -147,5 +145,5 @@ export declare class ApplicationMain {
147
145
  AspectLoaderMain,
148
146
  Workspace,
149
147
  WatcherMain
150
- ], config: ApplicationAspectConfig, [appTypeSlot, appSlot, deploymentProviderSlot]: [ApplicationTypeSlot, ApplicationSlot, DeploymentProviderSlot]): Promise<ApplicationMain>;
148
+ ], config: ApplicationAspectConfig, [appTypeSlot, appSlot, deploymentProviderSlot]: [ApplicationTypeSlot, ApplicationSlot, DeploymentProviderSlot], harmony: Harmony): Promise<ApplicationMain>;
151
149
  }
@@ -158,13 +158,6 @@ function _deploy() {
158
158
  };
159
159
  return data;
160
160
  }
161
- function _appNoSsr() {
162
- const data = require("./exceptions/app-no-ssr");
163
- _appNoSsr = function () {
164
- return data;
165
- };
166
- return data;
167
- }
168
161
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
169
162
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
170
163
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -178,7 +171,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
178
171
  class ApplicationMain {
179
172
  constructor(appSlot,
180
173
  // TODO unused
181
- appTypeSlot, deploymentProviderSlot, config, envs, componentAspect, appService, aspectLoader, workspace, logger, watcher) {
174
+ appTypeSlot, deploymentProviderSlot, config, envs, componentAspect, appService, aspectLoader, workspace, logger, watcher, harmony) {
182
175
  this.appSlot = appSlot;
183
176
  this.appTypeSlot = appTypeSlot;
184
177
  this.deploymentProviderSlot = deploymentProviderSlot;
@@ -190,6 +183,7 @@ class ApplicationMain {
190
183
  this.workspace = workspace;
191
184
  this.logger = logger;
192
185
  this.watcher = watcher;
186
+ this.harmony = harmony;
193
187
  _defineProperty(this, "defaultOpts", {
194
188
  dev: false,
195
189
  ssr: false,
@@ -285,9 +279,14 @@ class ApplicationMain {
285
279
  });
286
280
 
287
281
  // const app = require(appPath);
288
- const appManifests = (0, _lodash().compact)(pluginsToLoad.map(pluginPath => {
282
+ const appManifests = Promise.all((0, _lodash().compact)(pluginsToLoad.map(async pluginPath => {
289
283
  try {
290
284
  var _require;
285
+ const isModule = await this.aspectLoader.isEsmModule(pluginPath);
286
+ if (isModule) {
287
+ const appManifest = await this.aspectLoader.loadEsm(pluginPath);
288
+ return appManifest;
289
+ }
291
290
  // eslint-disable-next-line
292
291
  const appManifest = (_require = require(pluginPath)) === null || _require === void 0 ? void 0 : _require.default;
293
292
  return appManifest;
@@ -295,7 +294,7 @@ class ApplicationMain {
295
294
  this.logger.error(`failed loading app manifest: ${pluginPath}`);
296
295
  return undefined;
297
296
  }
298
- }));
297
+ })));
299
298
  return appManifests;
300
299
  }
301
300
  async loadAppsFromComponent(component, rootDir) {
@@ -384,14 +383,7 @@ class ApplicationMain {
384
383
  const app = this.getAppOrThrow(appName);
385
384
  const context = await this.createAppContext(app.name, options.port);
386
385
  if (!context) throw new (_exceptions().AppNotFound)(appName);
387
- if (options.ssr) {
388
- if (!app.runSsr) throw new (_appNoSsr().AppNoSsr)(appName);
389
- const result = await app.runSsr(context);
390
- return _objectSpread({
391
- app
392
- }, result);
393
- }
394
- const port = await app.run(context);
386
+ const instance = await app.run(context);
395
387
  if (options.watch) {
396
388
  this.watcher.watch({
397
389
  preCompile: false,
@@ -401,10 +393,13 @@ class ApplicationMain {
401
393
  this.logger.error(`compilation failed`, err);
402
394
  });
403
395
  }
396
+ const isOldApi = typeof instance === 'number';
397
+ const port = isOldApi ? instance : instance === null || instance === void 0 ? void 0 : instance.port;
404
398
  return {
405
399
  app,
406
400
  port,
407
- errors: undefined
401
+ errors: undefined,
402
+ isOldApi
408
403
  };
409
404
  }
410
405
 
@@ -431,13 +426,13 @@ class ApplicationMain {
431
426
  const context = res.results[0].data;
432
427
  if (!context) throw new (_exceptions().AppNotFound)(appName);
433
428
  const hostRootDir = await this.workspace.getComponentPackagePath(component);
434
- const appContext = new (_appContext().AppContext)(appName, context.dev, component, this.workspace.path, context, hostRootDir, port);
429
+ const appContext = new (_appContext().AppContext)(appName, this.harmony, context.dev, component, this.workspace.path, context, hostRootDir, port);
435
430
  return appContext;
436
431
  }
437
- static async provider([cli, loggerAspect, builder, envs, component, aspectLoader, workspace, watcher], config, [appTypeSlot, appSlot, deploymentProviderSlot]) {
432
+ static async provider([cli, loggerAspect, builder, envs, component, aspectLoader, workspace, watcher], config, [appTypeSlot, appSlot, deploymentProviderSlot], harmony) {
438
433
  const logger = loggerAspect.createLogger(_application().ApplicationAspect.id);
439
434
  const appService = new (_application2().AppService)();
440
- const application = new ApplicationMain(appSlot, appTypeSlot, deploymentProviderSlot, config, envs, component, appService, aspectLoader, workspace, logger, watcher);
435
+ const application = new ApplicationMain(appSlot, appTypeSlot, deploymentProviderSlot, config, envs, component, appService, aspectLoader, workspace, logger, watcher, harmony);
441
436
  appService.registerAppType = application.registerAppType.bind(application);
442
437
  const appCmd = new (_app().AppCmd)();
443
438
  appCmd.commands = [new (_app().AppListCmd)(application), new (_run().RunCmd)(application, logger)];
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_lodash","_aspectLoader","_harmony","_workspace","_interopRequireDefault","_bitError","_watcher","_builder","_logger","_envs","_component","_exceptions","_application","_appList","_buildApplication","_run","_application2","_app","_app2","_appType","_appContext","_deploy","_appNoSsr","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ApplicationMain","constructor","appSlot","appTypeSlot","deploymentProviderSlot","config","envs","componentAspect","appService","aspectLoader","workspace","logger","watcher","dev","ssr","watch","defaultPortRange","registerApp","app","register","listApps","flatten","values","mapApps","toArray","listAppsById","id","get","toString","getAppById","apps","head","calculateAppByComponent","component","listAppTypes","listAppsFromComponents","listAppsComponents","components","getHost","list","appTypesPatterns","getAppPatterns","appsComponents","hasAppTypePattern","patterns","files","filesystem","byGlob","appTypes","map","appType","getAppPattern","loadApps","pluginsToLoad","flatMap","appComponent","file","path","appManifests","compact","pluginPath","_require","appManifest","err","error","loadAppsFromComponent","rootDir","isApp","allPluginDefs","getPluginDefs","appsPluginDefs","pluginDef","includes","pattern","plugins","getPluginsFromDefs","loadedPlugins","has","load","MainRuntime","name","loadExtensionsByManifests","seeders","getApp","appName","find","getAppByNameOrId","appNameOrId","byName","byId","BitError","globPattern","registerAppType","AppTypePlugin","registerPlugins","getAppAspect","_this$appSlot$toArray","getAppOrThrow","AppNotFound","computeOptions","opts","defaultOpts","loadAppsToSlot","runApp","options","context","createAppContext","port","runSsr","AppNoSsr","result","run","preCompile","compile","catch","errors","getAppIdOrThrow","maybeApp","host","resolveComponentId","env","createEnvironment","results","hostRootDir","getComponentPackagePath","appContext","AppContext","provider","cli","loggerAspect","builder","createLogger","ApplicationAspect","AppService","application","bind","appCmd","AppCmd","commands","AppListCmd","RunCmd","AppPlugin","registerBuildTasks","AppsBuildTask","registerSnapTasks","DeployTask","registerTagTasks","registerService","registerGroup","AppListCmdDeprecated","onComponentLoad","loadedComponent","type","applicationType","exports","CLIAspect","LoggerAspect","BuilderAspect","EnvsAspect","ComponentAspect","AspectLoaderAspect","WorkspaceAspect","WatcherAspect","Slot","withType","addRuntime"],"sources":["application.main.runtime.ts"],"sourcesContent":["import { MainRuntime, CLIMain, CLIAspect } from '@teambit/cli';\nimport { compact, flatten, head } from 'lodash';\nimport { AspectLoaderMain, AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { BitError } from '@teambit/bit-error';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport ComponentAspect, { ComponentMain, ComponentID, Component } 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-application.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';\nimport { AppNoSsr } from './exceptions/app-no-ssr';\n\nexport type ApplicationTypeSlot = SlotRegistry<ApplicationType<unknown>[]>;\nexport type ApplicationSlot = SlotRegistry<Application[]>;\nexport type DeploymentProviderSlot = SlotRegistry<DeploymentProvider[]>;\n\nexport type ApplicationAspectConfig = {\n /**\n * envs ids to load app types.\n */\n envs?: string[];\n};\n\n/**\n * Application meta data that is stored on the component on load if it's an application.\n */\nexport type ApplicationMetadata = {\n appName: string;\n type?: string;\n};\n\nexport type ServeAppOptions = {\n /**\n * default port range used to serve applications.\n */\n defaultPortRange?: [start: number, end: number];\n\n /**\n * determine whether to start the application in dev mode.\n */\n dev: boolean;\n\n /**\n * actively watch and compile the workspace (like the bit watch command)\n * @default true\n */\n watch?: boolean;\n\n /**\n * determine whether to start the application in server side mode.\n * @default false\n */\n ssr?: boolean;\n\n /**\n * exact port to run the app\n */\n port?: number;\n};\n\nexport class ApplicationMain {\n constructor(\n private appSlot: ApplicationSlot,\n // TODO unused\n private appTypeSlot: ApplicationTypeSlot,\n private deploymentProviderSlot: DeploymentProviderSlot,\n private config: ApplicationAspectConfig,\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 private watcher: WatcherMain\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 application by a component id.\n */\n async getAppById(id: ComponentID) {\n const apps = await this.listAppsById(id);\n if (!apps) return undefined;\n return head(apps);\n }\n\n /**\n * calculate an application by a component.\n * This should be only used during the on component load slot\n */\n calculateAppByComponent(component: Component) {\n const apps = this.appSlot.get(component.id.toString());\n if (!apps) return undefined;\n return head(apps);\n }\n\n listAppTypes() {\n return flatten(this.appTypeSlot.values());\n }\n\n /**\n * @deprecated use `listAppsComponents` instead.\n * @returns\n */\n async listAppsFromComponents(): Promise<Component[]> {\n return this.listAppsComponents();\n }\n\n async listAppsComponents(): Promise<Component[]> {\n const components = await this.componentAspect.getHost().list();\n const appTypesPatterns = this.getAppPatterns();\n const appsComponents = components.filter((component) => this.hasAppTypePattern(component, appTypesPatterns));\n return appsComponents;\n }\n\n private hasAppTypePattern(component: Component, appTypesPatterns?: string[]): boolean {\n const patterns = appTypesPatterns || this.getAppPatterns();\n // has app plugin from registered types.\n const files = component.filesystem.byGlob(patterns);\n return !!files.length;\n }\n\n getAppPatterns() {\n const appTypes = this.listAppTypes();\n const appTypesPatterns = appTypes.map((appType) => {\n return this.getAppPattern(appType);\n });\n\n return appTypesPatterns;\n }\n\n async loadApps(): Promise<Application[]> {\n const apps = await this.listAppsComponents();\n const appTypesPatterns = this.getAppPatterns();\n\n const pluginsToLoad = apps.flatMap((appComponent) => {\n const files = appComponent.filesystem.byGlob(appTypesPatterns);\n return files.map((file) => file.path);\n });\n\n // const app = require(appPath);\n const appManifests = compact(\n pluginsToLoad.map((pluginPath) => {\n try {\n // eslint-disable-next-line\n const appManifest = require(pluginPath)?.default;\n return appManifest;\n } catch (err) {\n this.logger.error(`failed loading app manifest: ${pluginPath}`);\n return undefined;\n }\n })\n );\n\n return appManifests;\n }\n\n async loadAppsFromComponent(component: Component, rootDir: string): Promise<Application[] | undefined> {\n const appTypesPatterns = this.getAppPatterns();\n const isApp = this.hasAppTypePattern(component, appTypesPatterns);\n if (!isApp) return undefined;\n\n const allPluginDefs = this.aspectLoader.getPluginDefs();\n\n const appsPluginDefs = allPluginDefs.filter((pluginDef) => {\n return appTypesPatterns.includes(pluginDef.pattern.toString());\n });\n // const fileResolver = this.aspectLoader.pluginFileResolver(component, rootDir);\n\n const plugins = this.aspectLoader.getPluginsFromDefs(component, rootDir, appsPluginDefs);\n let loadedPlugins;\n if (plugins.has()) {\n loadedPlugins = await plugins.load(MainRuntime.name);\n await this.aspectLoader.loadExtensionsByManifests([loadedPlugins], { seeders: [component.id.toString()] });\n }\n\n const listAppsById = this.listAppsById(component.id);\n return listAppsById;\n }\n\n /**\n * get an app.\n */\n getApp(appName: string, id?: ComponentID): Application | undefined {\n const apps = id ? this.listAppsById(id) : this.listApps();\n if (!apps) return undefined;\n return apps.find((app) => app.name === appName);\n }\n\n getAppByNameOrId(appNameOrId: string): Application | undefined {\n const byName = this.getApp(appNameOrId);\n if (byName) return byName;\n const byId = this.appSlot.get(appNameOrId);\n if (!byId || !byId.length) return undefined;\n if (byId.length > 1) {\n throw new BitError(\n `unable to figure out what app to retrieve. the id \"${appNameOrId}\" has more than one app. please use the app-name`\n );\n }\n return byId[0];\n }\n\n getAppPattern(appType: ApplicationType<unknown>) {\n if (appType.globPattern) return appType.globPattern;\n return `*.${appType.name}.*`;\n }\n\n /**\n * registers a new app and sets a plugin for it.\n */\n registerAppType<T>(...appTypes: Array<ApplicationType<T>>) {\n const plugins = appTypes.map((appType) => {\n return new AppTypePlugin(this.getAppPattern(appType), appType, this.appSlot);\n });\n\n this.aspectLoader.registerPlugins(plugins);\n this.appTypeSlot.register(appTypes);\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): Application {\n const app = this.getAppByNameOrId(appName);\n if (!app) throw new AppNotFound(appName);\n return app;\n }\n\n defaultOpts: ServeAppOptions = {\n dev: false,\n ssr: false,\n watch: true,\n defaultPortRange: [3100, 3500],\n };\n private computeOptions(opts: Partial<ServeAppOptions> = {}) {\n return {\n ...this.defaultOpts,\n ...opts,\n };\n }\n\n async loadAppsToSlot() {\n const apps = await this.loadApps();\n this.appSlot.register(apps);\n return this;\n }\n\n async runApp(appName: string, options?: ServeAppOptions) {\n options = this.computeOptions(options);\n const app = this.getAppOrThrow(appName);\n const context = await this.createAppContext(app.name, options.port);\n if (!context) throw new AppNotFound(appName);\n\n if (options.ssr) {\n if (!app.runSsr) throw new AppNoSsr(appName);\n\n const result = await app.runSsr(context);\n return { app, ...result };\n }\n\n const port = await app.run(context);\n if (options.watch) {\n this.watcher\n .watch({\n preCompile: false,\n compile: true,\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, errors: undefined };\n }\n\n /**\n * get the component ID of a certain app.\n */\n async 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\n const host = this.componentAspect.getHost();\n return host.resolveComponentId(maybeApp[0]);\n }\n\n private async createAppContext(appName: string, port?: number): Promise<AppContext> {\n const host = this.componentAspect.getHost();\n // const components = await host.list();\n const id = await this.getAppIdOrThrow(appName);\n // const component = components.find((c) => c.id.isEqual(id));\n const component = await host.get(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 const context = res.results[0].data;\n if (!context) throw new AppNotFound(appName);\n const hostRootDir = await this.workspace.getComponentPackagePath(component);\n const appContext = new AppContext(appName, context.dev, component, this.workspace.path, context, hostRootDir, port);\n return appContext;\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n LoggerAspect,\n BuilderAspect,\n EnvsAspect,\n ComponentAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n WatcherAspect,\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, watcher]: [\n CLIMain,\n LoggerMain,\n BuilderMain,\n EnvsMain,\n ComponentMain,\n AspectLoaderMain,\n Workspace,\n WatcherMain\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 config,\n envs,\n component,\n appService,\n aspectLoader,\n workspace,\n logger,\n watcher\n );\n appService.registerAppType = application.registerAppType.bind(application);\n const appCmd = new AppCmd();\n appCmd.commands = [new AppListCmd(application), new RunCmd(application, logger)];\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 envs.registerService(appService);\n cli.registerGroup('apps', 'Applications');\n cli.register(new RunCmd(application, logger), new AppListCmdDeprecated(application), appCmd);\n // cli.registerOnStart(async () => {\n // await application.loadAppsToSlot();\n // });\n if (workspace) {\n workspace.onComponentLoad(async (loadedComponent): Promise<ApplicationMetadata | undefined> => {\n const app = application.calculateAppByComponent(loadedComponent);\n if (!app) return undefined;\n return {\n appName: app.name,\n type: app.applicationType,\n };\n });\n }\n\n return application;\n }\n}\n\nApplicationAspect.addRuntime(ApplicationMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_cli","data","require","_lodash","_aspectLoader","_harmony","_workspace","_interopRequireDefault","_bitError","_watcher","_builder","_logger","_envs","_component","_exceptions","_application","_appList","_buildApplication","_run","_application2","_app","_app2","_appType","_appContext","_deploy","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","ApplicationMain","constructor","appSlot","appTypeSlot","deploymentProviderSlot","config","envs","componentAspect","appService","aspectLoader","workspace","logger","watcher","harmony","dev","ssr","watch","defaultPortRange","registerApp","app","register","listApps","flatten","values","mapApps","toArray","listAppsById","id","get","toString","getAppById","apps","head","calculateAppByComponent","component","listAppTypes","listAppsFromComponents","listAppsComponents","components","getHost","list","appTypesPatterns","getAppPatterns","appsComponents","hasAppTypePattern","patterns","files","filesystem","byGlob","appTypes","map","appType","getAppPattern","loadApps","pluginsToLoad","flatMap","appComponent","file","path","appManifests","Promise","all","compact","pluginPath","_require","isModule","isEsmModule","appManifest","loadEsm","err","error","loadAppsFromComponent","rootDir","isApp","allPluginDefs","getPluginDefs","appsPluginDefs","pluginDef","includes","pattern","plugins","getPluginsFromDefs","loadedPlugins","has","load","MainRuntime","name","loadExtensionsByManifests","seeders","getApp","appName","find","getAppByNameOrId","appNameOrId","byName","byId","BitError","globPattern","registerAppType","AppTypePlugin","registerPlugins","getAppAspect","_this$appSlot$toArray","getAppOrThrow","AppNotFound","computeOptions","opts","defaultOpts","loadAppsToSlot","runApp","options","context","createAppContext","port","instance","run","preCompile","compile","catch","isOldApi","errors","getAppIdOrThrow","maybeApp","host","resolveComponentId","env","createEnvironment","results","hostRootDir","getComponentPackagePath","appContext","AppContext","provider","cli","loggerAspect","builder","createLogger","ApplicationAspect","AppService","application","bind","appCmd","AppCmd","commands","AppListCmd","RunCmd","AppPlugin","registerBuildTasks","AppsBuildTask","registerSnapTasks","DeployTask","registerTagTasks","registerService","registerGroup","AppListCmdDeprecated","onComponentLoad","loadedComponent","type","applicationType","exports","CLIAspect","LoggerAspect","BuilderAspect","EnvsAspect","ComponentAspect","AspectLoaderAspect","WorkspaceAspect","WatcherAspect","Slot","withType","addRuntime"],"sources":["application.main.runtime.ts"],"sourcesContent":["import { MainRuntime, CLIMain, CLIAspect } from '@teambit/cli';\nimport { compact, flatten, head } from 'lodash';\nimport { AspectLoaderMain, AspectLoaderAspect } from '@teambit/aspect-loader';\nimport { Slot, SlotRegistry, Harmony } from '@teambit/harmony';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { BitError } from '@teambit/bit-error';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\nimport { BuilderAspect, BuilderMain } from '@teambit/builder';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport ComponentAspect, { ComponentMain, ComponentID, Component } 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-application.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 /**\n * envs ids to load app types.\n */\n envs?: string[];\n};\n\n/**\n * Application meta data that is stored on the component on load if it's an application.\n */\nexport type ApplicationMetadata = {\n appName: string;\n type?: string;\n};\n\nexport type ServeAppOptions = {\n /**\n * default port range used to serve applications.\n */\n defaultPortRange?: [start: number, end: number];\n\n /**\n * determine whether to start the application in dev mode.\n */\n dev: boolean;\n\n /**\n * actively watch and compile the workspace (like the bit watch command)\n * @default true\n */\n watch?: boolean;\n\n /**\n * determine whether to start the application in server side mode.\n * @default false\n */\n ssr?: boolean;\n\n /**\n * exact port to run the app\n */\n port?: number;\n};\n\nexport class ApplicationMain {\n constructor(\n private appSlot: ApplicationSlot,\n // TODO unused\n private appTypeSlot: ApplicationTypeSlot,\n private deploymentProviderSlot: DeploymentProviderSlot,\n private config: ApplicationAspectConfig,\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 private watcher: WatcherMain,\n private harmony: Harmony\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 application by a component id.\n */\n async getAppById(id: ComponentID) {\n const apps = await this.listAppsById(id);\n if (!apps) return undefined;\n return head(apps);\n }\n\n /**\n * calculate an application by a component.\n * This should be only used during the on component load slot\n */\n calculateAppByComponent(component: Component) {\n const apps = this.appSlot.get(component.id.toString());\n if (!apps) return undefined;\n return head(apps);\n }\n\n listAppTypes() {\n return flatten(this.appTypeSlot.values());\n }\n\n /**\n * @deprecated use `listAppsComponents` instead.\n * @returns\n */\n async listAppsFromComponents(): Promise<Component[]> {\n return this.listAppsComponents();\n }\n\n async listAppsComponents(): Promise<Component[]> {\n const components = await this.componentAspect.getHost().list();\n const appTypesPatterns = this.getAppPatterns();\n const appsComponents = components.filter((component) => this.hasAppTypePattern(component, appTypesPatterns));\n return appsComponents;\n }\n\n private hasAppTypePattern(component: Component, appTypesPatterns?: string[]): boolean {\n const patterns = appTypesPatterns || this.getAppPatterns();\n // has app plugin from registered types.\n const files = component.filesystem.byGlob(patterns);\n return !!files.length;\n }\n\n getAppPatterns() {\n const appTypes = this.listAppTypes();\n const appTypesPatterns = appTypes.map((appType) => {\n return this.getAppPattern(appType);\n });\n\n return appTypesPatterns;\n }\n\n async loadApps(): Promise<Application[]> {\n const apps = await this.listAppsComponents();\n const appTypesPatterns = this.getAppPatterns();\n\n const pluginsToLoad = apps.flatMap((appComponent) => {\n const files = appComponent.filesystem.byGlob(appTypesPatterns);\n return files.map((file) => file.path);\n });\n\n // const app = require(appPath);\n const appManifests = Promise.all(\n compact(\n pluginsToLoad.map(async (pluginPath) => {\n try {\n const isModule = await this.aspectLoader.isEsmModule(pluginPath);\n if (isModule) {\n const appManifest = await this.aspectLoader.loadEsm(pluginPath);\n return appManifest;\n }\n // eslint-disable-next-line\n const appManifest = require(pluginPath)?.default;\n return appManifest;\n } catch (err) {\n this.logger.error(`failed loading app manifest: ${pluginPath}`);\n return undefined;\n }\n })\n )\n );\n\n return appManifests;\n }\n\n async loadAppsFromComponent(component: Component, rootDir: string): Promise<Application[] | undefined> {\n const appTypesPatterns = this.getAppPatterns();\n const isApp = this.hasAppTypePattern(component, appTypesPatterns);\n if (!isApp) return undefined;\n\n const allPluginDefs = this.aspectLoader.getPluginDefs();\n\n const appsPluginDefs = allPluginDefs.filter((pluginDef) => {\n return appTypesPatterns.includes(pluginDef.pattern.toString());\n });\n // const fileResolver = this.aspectLoader.pluginFileResolver(component, rootDir);\n\n const plugins = this.aspectLoader.getPluginsFromDefs(component, rootDir, appsPluginDefs);\n let loadedPlugins;\n if (plugins.has()) {\n loadedPlugins = await plugins.load(MainRuntime.name);\n await this.aspectLoader.loadExtensionsByManifests([loadedPlugins], { seeders: [component.id.toString()] });\n }\n\n const listAppsById = this.listAppsById(component.id);\n return listAppsById;\n }\n\n /**\n * get an app.\n */\n getApp(appName: string, id?: ComponentID): Application | undefined {\n const apps = id ? this.listAppsById(id) : this.listApps();\n if (!apps) return undefined;\n return apps.find((app) => app.name === appName);\n }\n\n getAppByNameOrId(appNameOrId: string): Application | undefined {\n const byName = this.getApp(appNameOrId);\n if (byName) return byName;\n const byId = this.appSlot.get(appNameOrId);\n if (!byId || !byId.length) return undefined;\n if (byId.length > 1) {\n throw new BitError(\n `unable to figure out what app to retrieve. the id \"${appNameOrId}\" has more than one app. please use the app-name`\n );\n }\n return byId[0];\n }\n\n getAppPattern(appType: ApplicationType<unknown>) {\n if (appType.globPattern) return appType.globPattern;\n return `*.${appType.name}.*`;\n }\n\n /**\n * registers a new app and sets a plugin for it.\n */\n registerAppType<T>(...appTypes: Array<ApplicationType<T>>) {\n const plugins = appTypes.map((appType) => {\n return new AppTypePlugin(this.getAppPattern(appType), appType, this.appSlot);\n });\n\n this.aspectLoader.registerPlugins(plugins);\n this.appTypeSlot.register(appTypes);\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): Application {\n const app = this.getAppByNameOrId(appName);\n if (!app) throw new AppNotFound(appName);\n return app;\n }\n\n defaultOpts: ServeAppOptions = {\n dev: false,\n ssr: false,\n watch: true,\n defaultPortRange: [3100, 3500],\n };\n private computeOptions(opts: Partial<ServeAppOptions> = {}) {\n return {\n ...this.defaultOpts,\n ...opts,\n };\n }\n\n async loadAppsToSlot() {\n const apps = await this.loadApps();\n this.appSlot.register(apps);\n return this;\n }\n\n async runApp(appName: string, options?: ServeAppOptions) {\n options = this.computeOptions(options);\n const app = this.getAppOrThrow(appName);\n const context = await this.createAppContext(app.name, options.port);\n if (!context) throw new AppNotFound(appName);\n\n const instance = await app.run(context);\n if (options.watch) {\n this.watcher\n .watch({\n preCompile: false,\n compile: true,\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\n const isOldApi = typeof instance === 'number'\n const port = isOldApi\n ? instance\n : instance?.port;\n\n return { app, port, errors: undefined, isOldApi };\n }\n\n /**\n * get the component ID of a certain app.\n */\n async 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\n const host = this.componentAspect.getHost();\n return host.resolveComponentId(maybeApp[0]);\n }\n\n private async createAppContext(appName: string, port?: number): Promise<AppContext> {\n const host = this.componentAspect.getHost();\n // const components = await host.list();\n const id = await this.getAppIdOrThrow(appName);\n // const component = components.find((c) => c.id.isEqual(id));\n const component = await host.get(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 const context = res.results[0].data;\n if (!context) throw new AppNotFound(appName);\n const hostRootDir = await this.workspace.getComponentPackagePath(component);\n const appContext = new AppContext(\n appName,\n this.harmony,\n context.dev,\n component,\n this.workspace.path,\n context,\n hostRootDir,\n port\n );\n return appContext;\n }\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n LoggerAspect,\n BuilderAspect,\n EnvsAspect,\n ComponentAspect,\n AspectLoaderAspect,\n WorkspaceAspect,\n WatcherAspect,\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, watcher]: [\n CLIMain,\n LoggerMain,\n BuilderMain,\n EnvsMain,\n ComponentMain,\n AspectLoaderMain,\n Workspace,\n WatcherMain\n ],\n config: ApplicationAspectConfig,\n [appTypeSlot, appSlot, deploymentProviderSlot]: [ApplicationTypeSlot, ApplicationSlot, DeploymentProviderSlot],\n harmony: Harmony\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 config,\n envs,\n component,\n appService,\n aspectLoader,\n workspace,\n logger,\n watcher,\n harmony\n );\n appService.registerAppType = application.registerAppType.bind(application);\n const appCmd = new AppCmd();\n appCmd.commands = [new AppListCmd(application), new RunCmd(application, logger)];\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 envs.registerService(appService);\n cli.registerGroup('apps', 'Applications');\n cli.register(new RunCmd(application, logger), new AppListCmdDeprecated(application), appCmd);\n // cli.registerOnStart(async () => {\n // await application.loadAppsToSlot();\n // });\n if (workspace) {\n workspace.onComponentLoad(async (loadedComponent): Promise<ApplicationMetadata | undefined> => {\n const app = application.calculateAppByComponent(loadedComponent);\n if (!app) return undefined;\n return {\n appName: app.name,\n type: app.applicationType,\n };\n });\n }\n\n return application;\n }\n}\n\nApplicationAspect.addRuntime(ApplicationMain);\n"],"mappings":"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"}
@@ -4,5 +4,5 @@ export interface AppsEnv {
4
4
  /**
5
5
  * return a template list instance.
6
6
  */
7
- apps(): EnvHandler<AppTypeList>;
7
+ apps?(): EnvHandler<AppTypeList>;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["apps-env-type.ts"],"sourcesContent":["import { EnvHandler } from '@teambit/envs';\nimport { AppTypeList } from './app-type-list';\n\nexport interface AppsEnv {\n /**\n * return a template list instance.\n */\n apps(): EnvHandler<AppTypeList>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["apps-env-type.ts"],"sourcesContent":["import { EnvHandler } from '@teambit/envs';\nimport { AppTypeList } from './app-type-list';\n\nexport interface AppsEnv {\n /**\n * return a template list instance.\n */\n apps?(): EnvHandler<AppTypeList>;\n}\n"],"mappings":""}
package/dist/esm.d.mts ADDED
@@ -0,0 +1,5 @@
1
+ export const AppContext: any;
2
+ export const ApplicationAspect: any;
3
+ export const APPS_ARTIFACTS_DIR_NAME: any;
4
+ export const AppTypeList: any;
5
+ export default cjsModule;
package/dist/esm.mjs ADDED
@@ -0,0 +1,9 @@
1
+ // eslint-disable-next-line import/no-unresolved
2
+ import cjsModule from './index.js';
3
+
4
+ export const AppContext = cjsModule.AppContext;
5
+ export const ApplicationAspect = cjsModule.ApplicationAspect;
6
+ export const APPS_ARTIFACTS_DIR_NAME = cjsModule.APPS_ARTIFACTS_DIR_NAME;
7
+ export const AppTypeList = cjsModule.AppTypeList;
8
+
9
+ export default cjsModule;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { ApplicationAspect } from './application.aspect';
2
+ export type { ApplicationInstance } from './app-instance';
2
3
  export type { ApplicationMain, ApplicationMetadata } from './application.main.runtime';
3
- export type { Application, DeployFn, AppResult } from './application';
4
+ export type { Application, DeployFn, BuildFn, AppResult } from './application';
4
5
  export { AppContext } from './app-context';
5
6
  export { DeploymentProvider } from './deployment-provider';
6
7
  export { ApplicationType } from './application-type';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_application","data","require","_appContext","_deploymentProvider","_applicationType","_appDeployContext","_appBuildContext","_appBuildResult","_buildApplication","_appTypeList"],"sources":["index.ts"],"sourcesContent":["export { ApplicationAspect } from './application.aspect';\nexport type { ApplicationMain, ApplicationMetadata } from './application.main.runtime';\nexport type { Application, DeployFn, AppResult } from './application';\nexport { AppContext } from './app-context';\nexport { DeploymentProvider } from './deployment-provider';\nexport { ApplicationType } from './application-type';\nexport { AppDeployContext } from './app-deploy-context';\nexport { AppBuildContext } from './app-build-context';\nexport { AppBuildResult } from './app-build-result';\nexport { ARTIFACTS_DIR_NAME as APPS_ARTIFACTS_DIR_NAME } from './build-application.task';\nexport type { AppsEnv } from './apps-env-type';\nexport { AppTypeList } from './app-type-list';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,aAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,YAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,oBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,mBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,iBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,gBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,kBAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,iBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,iBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,gBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,gBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,eAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,kBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,iBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,aAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,YAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA"}
1
+ {"version":3,"names":["_application","data","require","_appContext","_deploymentProvider","_applicationType","_appDeployContext","_appBuildContext","_appBuildResult","_buildApplication","_appTypeList"],"sources":["index.ts"],"sourcesContent":["export { ApplicationAspect } from './application.aspect';\nexport type { ApplicationInstance } from './app-instance';\nexport type { ApplicationMain, ApplicationMetadata } from './application.main.runtime';\nexport type { Application, DeployFn, BuildFn, AppResult } from './application';\nexport { AppContext } from './app-context';\nexport { DeploymentProvider } from './deployment-provider';\nexport { ApplicationType } from './application-type';\nexport { AppDeployContext } from './app-deploy-context';\nexport { AppBuildContext } from './app-build-context';\nexport { AppBuildResult } from './app-build-result';\nexport { ARTIFACTS_DIR_NAME as APPS_ARTIFACTS_DIR_NAME } from './build-application.task';\nexport type { AppsEnv } from './apps-env-type';\nexport { AppTypeList } from './app-type-list';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAAA,aAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,YAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAE,YAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,oBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,mBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,iBAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,gBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,kBAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,iBAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,iBAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,gBAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,gBAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,eAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,kBAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,iBAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,aAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,YAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.61/dist/application.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.61/dist/application.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.63/dist/application.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.63/dist/application.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/dist/run.cmd.js CHANGED
@@ -46,7 +46,7 @@ class RunCmd {
46
46
  }]);
47
47
  _defineProperty(this, "alias", 'c');
48
48
  _defineProperty(this, "group", 'apps');
49
- _defineProperty(this, "options", [['d', 'dev', 'start the application in dev mode.'], ['p', 'port [port-number]', 'port to run the app on'], ['v', 'verbose', 'show verbose output for inspection and print stack trace'], ['', 'skip-watch', 'avoid running the watch process that compiles components in the background'], ['', 'ssr', 'run app in server side rendering mode.']]);
49
+ _defineProperty(this, "options", [['d', 'dev', 'start the application in dev mode.'], ['p', 'port [port-number]', 'port to run the app on'], ['v', 'verbose', 'show verbose output for inspection and print stack trace'], ['', 'skip-watch', 'avoid running the watch process that compiles components in the background']]);
50
50
  }
51
51
  async render([appName], {
52
52
  dev,
@@ -55,9 +55,11 @@ class RunCmd {
55
55
  port: exactPort
56
56
  }) {
57
57
  // remove wds logs until refactoring webpack to a worker through the Worker aspect.
58
+ this.logger.off();
58
59
  const {
59
60
  port,
60
- errors
61
+ errors,
62
+ isOldApi
61
63
  } = await this.application.runApp(appName, {
62
64
  dev,
63
65
  watch: !skipWatch,
@@ -72,10 +74,10 @@ class RunCmd {
72
74
  })
73
75
  };
74
76
  }
75
- if (port) {
77
+ if (isOldApi) {
76
78
  return /*#__PURE__*/_react().default.createElement(_ink().Text, null, appName, " app is running on http://localhost:", port);
77
79
  }
78
- return /*#__PURE__*/_react().default.createElement(_ink().Text, null, appName, " app is running");
80
+ return /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null);
79
81
  }
80
82
  }
81
83
  exports.RunCmd = RunCmd;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_pluralize","_ink","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","RunCmd","constructor","application","logger","name","description","render","appName","dev","skipWatch","ssr","port","exactPort","errors","runApp","watch","code","createElement","ShowErrors","Text","exports","Fragment","Newline","underline","pluralize","length","map","x","idx","toString"],"sources":["run.cmd.tsx"],"sourcesContent":["import React from 'react';\nimport pluralize from 'pluralize';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { Newline, Text } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport type { RenderResult } from '@teambit/legacy/dist/cli/command';\nimport { ApplicationMain } from './application.main.runtime';\n\ntype RunOptions = {\n dev: boolean;\n verbose: boolean;\n skipWatch: boolean;\n ssr: boolean;\n port: string;\n};\n\nexport class RunCmd implements Command {\n name = 'run <app-name>';\n description = \"locally run an app component (independent of bit's dev server)\";\n helpUrl = 'reference/apps/apps-overview/';\n arguments = [\n {\n name: 'app-name',\n description:\n \"the app's name is registered by the app (run 'bit app list' to list the names of the available apps)\",\n },\n ];\n alias = 'c';\n group = 'apps';\n options = [\n ['d', 'dev', 'start the application in dev mode.'],\n ['p', 'port [port-number]', 'port to run the app on'],\n ['v', 'verbose', 'show verbose output for inspection and print stack trace'],\n ['', 'skip-watch', 'avoid running the watch process that compiles components in the background'],\n ['', 'ssr', 'run app in server side rendering mode.'],\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 render(\n [appName]: [string],\n { dev, skipWatch, ssr, port: exactPort }: RunOptions\n ): Promise<React.ReactElement | RenderResult> {\n // remove wds logs until refactoring webpack to a worker through the Worker aspect.\n const { port, errors } = await this.application.runApp(appName, {\n dev,\n watch: !skipWatch,\n ssr,\n port: +exactPort,\n });\n\n if (errors) {\n return {\n code: 1,\n data: <ShowErrors errors={errors} />,\n };\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 }\n}\n\nfunction ShowErrors({ errors }: { errors: Error[] }) {\n return (\n <>\n <Newline />\n <Text underline>Fatal {pluralize('error', errors.length)}:</Text>\n {errors.map((x, idx) => (\n <Text key={idx}>{x.toString()}</Text>\n ))}\n </>\n );\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,WAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,KAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,IAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAoC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,GAAA,QAAAR,GAAA,GAAAS,YAAA,CAAAD,GAAA,2BAAAR,GAAA,gBAAAA,GAAA,GAAAU,MAAA,CAAAV,GAAA;AAAA,SAAAS,aAAAE,KAAA,EAAAC,IAAA,eAAAD,KAAA,iBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAK,IAAA,CAAAP,KAAA,EAAAC,IAAA,2BAAAK,GAAA,sBAAAA,GAAA,YAAAE,SAAA,4DAAAP,IAAA,gBAAAF,MAAA,GAAAU,MAAA,EAAAT,KAAA;AAa7B,MAAMU,MAAM,CAAoB;EAqBrCC,WAAWA;EACT;AACJ;AACA;EACYC,WAA4B,EAE5BC,MAAc,EACtB;IAAA,KAHQD,WAA4B,GAA5BA,WAA4B;IAAA,KAE5BC,MAAc,GAAdA,MAAc;IAAAzB,eAAA,eA1BjB,gBAAgB;IAAAA,eAAA,sBACT,gEAAgE;IAAAA,eAAA,kBACpE,+BAA+B;IAAAA,eAAA,oBAC7B,CACV;MACE0B,IAAI,EAAE,UAAU;MAChBC,WAAW,EACT;IACJ,CAAC,CACF;IAAA3B,eAAA,gBACO,GAAG;IAAAA,eAAA,gBACH,MAAM;IAAAA,eAAA,kBACJ,CACR,CAAC,GAAG,EAAE,KAAK,EAAE,oCAAoC,CAAC,EAClD,CAAC,GAAG,EAAE,oBAAoB,EAAE,wBAAwB,CAAC,EACrD,CAAC,GAAG,EAAE,SAAS,EAAE,0DAA0D,CAAC,EAC5E,CAAC,EAAE,EAAE,YAAY,EAAE,4EAA4E,CAAC,EAChG,CAAC,EAAE,EAAE,KAAK,EAAE,wCAAwC,CAAC,CACtD;EASE;EAEH,MAAM4B,MAAMA,CACV,CAACC,OAAO,CAAW,EACnB;IAAEC,GAAG;IAAEC,SAAS;IAAEC,GAAG;IAAEC,IAAI,EAAEC;EAAsB,CAAC,EACR;IAC5C;IACA,MAAM;MAAED,IAAI;MAAEE;IAAO,CAAC,GAAG,MAAM,IAAI,CAACX,WAAW,CAACY,MAAM,CAACP,OAAO,EAAE;MAC9DC,GAAG;MACHO,KAAK,EAAE,CAACN,SAAS;MACjBC,GAAG;MACHC,IAAI,EAAE,CAACC;IACT,CAAC,CAAC;IAEF,IAAIC,MAAM,EAAE;MACV,OAAO;QACLG,IAAI,EAAE,CAAC;QACP9C,IAAI,eAAED,MAAA,GAAAQ,OAAA,CAAAwC,aAAA,CAACC,UAAU;UAACL,MAAM,EAAEA;QAAO,CAAE;MACrC,CAAC;IACH;IAEA,IAAIF,IAAI,EAAE;MACR,oBACE1C,MAAA,GAAAQ,OAAA,CAAAwC,aAAA,CAAC3C,IAAA,GAAA6C,IAAI,QACFZ,OAAO,EAAC,sCAAoC,EAACI,IAC1C,CAAC;IAEX;IACA,oBAAO1C,MAAA,GAAAQ,OAAA,CAAAwC,aAAA,CAAC3C,IAAA,GAAA6C,IAAI,QAAEZ,OAAO,EAAC,iBAAqB,CAAC;EAC9C;AACF;AAACa,OAAA,CAAApB,MAAA,GAAAA,MAAA;AAED,SAASkB,UAAUA,CAAC;EAAEL;AAA4B,CAAC,EAAE;EACnD,oBACE5C,MAAA,GAAAQ,OAAA,CAAAwC,aAAA,CAAAhD,MAAA,GAAAQ,OAAA,CAAA4C,QAAA,qBACEpD,MAAA,GAAAQ,OAAA,CAAAwC,aAAA,CAAC3C,IAAA,GAAAgD,OAAO,MAAE,CAAC,eACXrD,MAAA,GAAAQ,OAAA,CAAAwC,aAAA,CAAC3C,IAAA,GAAA6C,IAAI;IAACI,SAAS;EAAA,GAAC,QAAM,EAAC,IAAAC,oBAAS,EAAC,OAAO,EAAEX,MAAM,CAACY,MAAM,CAAC,EAAC,GAAO,CAAC,EAChEZ,MAAM,CAACa,GAAG,CAAC,CAACC,CAAC,EAAEC,GAAG,kBACjB3D,MAAA,GAAAQ,OAAA,CAAAwC,aAAA,CAAC3C,IAAA,GAAA6C,IAAI;IAACxC,GAAG,EAAEiD;EAAI,GAAED,CAAC,CAACE,QAAQ,CAAC,CAAQ,CACrC,CACD,CAAC;AAEP"}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","_pluralize","_ink","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","RunCmd","constructor","application","logger","name","description","render","appName","dev","skipWatch","ssr","port","exactPort","off","errors","isOldApi","runApp","watch","code","createElement","ShowErrors","Text","Fragment","exports","Newline","underline","pluralize","length","map","x","idx","toString"],"sources":["run.cmd.tsx"],"sourcesContent":["import React from 'react';\nimport pluralize from 'pluralize';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { Newline, Text } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport type { RenderResult } from '@teambit/legacy/dist/cli/command';\nimport { ApplicationMain } from './application.main.runtime';\n\ntype RunOptions = {\n dev: boolean;\n verbose: boolean;\n skipWatch: boolean;\n ssr: boolean;\n port: string;\n};\n\nexport class RunCmd implements Command {\n name = 'run <app-name>';\n description = \"locally run an app component (independent of bit's dev server)\";\n helpUrl = 'reference/apps/apps-overview/';\n arguments = [\n {\n name: 'app-name',\n description:\n \"the app's name is registered by the app (run 'bit app list' to list the names of the available apps)\",\n },\n ];\n alias = 'c';\n group = 'apps';\n options = [\n ['d', 'dev', 'start the application in dev mode.'],\n ['p', 'port [port-number]', 'port to run the app on'],\n ['v', 'verbose', 'show verbose output for inspection and print 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 render(\n [appName]: [string],\n { dev, skipWatch, ssr, port: exactPort }: RunOptions\n ): Promise<React.ReactElement | RenderResult> {\n // remove wds logs until refactoring webpack to a worker through the Worker aspect.\n this.logger.off();\n const { port, errors, isOldApi } = await this.application.runApp(appName, {\n dev,\n watch: !skipWatch,\n ssr,\n port: +exactPort,\n });\n\n if (errors) {\n return {\n code: 1,\n data: <ShowErrors errors={errors} />,\n };\n }\n\n if (isOldApi) {\n return (\n <Text>\n {appName} app is running on http://localhost:{port}\n </Text>\n );\n }\n\n return <></>;\n }\n}\n\nfunction ShowErrors({ errors }: { errors: Error[] }) {\n return (\n <>\n <Newline />\n <Text underline>Fatal {pluralize('error', errors.length)}:</Text>\n {errors.map((x, idx) => (\n <Text key={idx}>{x.toString()}</Text>\n ))}\n </>\n );\n}\n"],"mappings":"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"}
package/esm.mjs ADDED
@@ -0,0 +1,9 @@
1
+ // eslint-disable-next-line import/no-unresolved
2
+ import cjsModule from './index.js';
3
+
4
+ export const AppContext = cjsModule.AppContext;
5
+ export const ApplicationAspect = cjsModule.ApplicationAspect;
6
+ export const APPS_ARTIFACTS_DIR_NAME = cjsModule.APPS_ARTIFACTS_DIR_NAME;
7
+ export const AppTypeList = cjsModule.AppTypeList;
8
+
9
+ export default cjsModule;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/application",
3
- "version": "1.0.61",
3
+ "version": "1.0.63",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/application",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "application",
9
- "version": "1.0.61"
9
+ "version": "1.0.63"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -16,18 +16,18 @@
16
16
  "pluralize": "8.0.0",
17
17
  "core-js": "^3.0.0",
18
18
  "@babel/runtime": "7.20.0",
19
- "@teambit/bit-error": "0.0.404",
20
19
  "@teambit/harmony": "0.4.6",
21
- "@teambit/builder": "1.0.61",
22
- "@teambit/component": "1.0.61",
23
- "@teambit/isolator": "1.0.61",
24
- "@teambit/envs": "1.0.61",
20
+ "@teambit/bit-error": "0.0.404",
21
+ "@teambit/builder": "1.0.63",
22
+ "@teambit/component": "1.0.63",
23
+ "@teambit/isolator": "1.0.63",
24
+ "@teambit/envs": "1.0.63",
25
+ "@teambit/logger": "0.0.915",
25
26
  "@teambit/cli-table": "0.0.45",
26
- "@teambit/cli": "0.0.821",
27
- "@teambit/aspect-loader": "1.0.61",
28
- "@teambit/logger": "0.0.914",
29
- "@teambit/watcher": "1.0.61",
30
- "@teambit/workspace": "1.0.61"
27
+ "@teambit/cli": "0.0.822",
28
+ "@teambit/aspect-loader": "1.0.63",
29
+ "@teambit/watcher": "1.0.63",
30
+ "@teambit/workspace": "1.0.63"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/react": "^17.0.8",
@@ -40,11 +40,18 @@
40
40
  "@types/testing-library__jest-dom": "5.9.5"
41
41
  },
42
42
  "peerDependencies": {
43
- "@teambit/legacy": "1.0.604",
43
+ "@teambit/legacy": "1.0.605",
44
44
  "react": "^16.8.0 || ^17.0.0",
45
45
  "react-dom": "^16.8.0 || ^17.0.0"
46
46
  },
47
47
  "license": "Apache-2.0",
48
+ "exports": {
49
+ "node": {
50
+ "require": "./dist/index.js",
51
+ "import": "./dist/esm.mjs"
52
+ },
53
+ "default": "./dist/index.js"
54
+ },
48
55
  "private": false,
49
56
  "engines": {
50
57
  "node": ">=12.22.0"
package/run.cmd.tsx CHANGED
@@ -32,7 +32,6 @@ export class RunCmd implements Command {
32
32
  ['p', 'port [port-number]', 'port to run the app on'],
33
33
  ['v', 'verbose', 'show verbose output for inspection and print stack trace'],
34
34
  ['', 'skip-watch', 'avoid running the watch process that compiles components in the background'],
35
- ['', 'ssr', 'run app in server side rendering mode.'],
36
35
  ] as CommandOptions;
37
36
 
38
37
  constructor(
@@ -49,7 +48,8 @@ export class RunCmd implements Command {
49
48
  { dev, skipWatch, ssr, port: exactPort }: RunOptions
50
49
  ): Promise<React.ReactElement | RenderResult> {
51
50
  // remove wds logs until refactoring webpack to a worker through the Worker aspect.
52
- const { port, errors } = await this.application.runApp(appName, {
51
+ this.logger.off();
52
+ const { port, errors, isOldApi } = await this.application.runApp(appName, {
53
53
  dev,
54
54
  watch: !skipWatch,
55
55
  ssr,
@@ -63,14 +63,15 @@ export class RunCmd implements Command {
63
63
  };
64
64
  }
65
65
 
66
- if (port) {
66
+ if (isOldApi) {
67
67
  return (
68
68
  <Text>
69
69
  {appName} app is running on http://localhost:{port}
70
70
  </Text>
71
71
  );
72
72
  }
73
- return <Text>{appName} app is running</Text>;
73
+
74
+ return <></>;
74
75
  }
75
76
  }
76
77