@teambit/application 1.0.33 → 1.0.35
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.
|
@@ -11,6 +11,12 @@ export interface AppBuildResult {
|
|
|
11
11
|
warnings?: string[];
|
|
12
12
|
/**
|
|
13
13
|
* metadata to persist.
|
|
14
|
+
* this is the only property that actually gets saved into the objects (in builder aspect, aspectsData.buildDeployContexts[deployContext]).
|
|
15
|
+
* in some scenarios, the build and deploy pipelines run in different processes, and then the only data the deploy
|
|
16
|
+
* gets is what saved into the objects.
|
|
17
|
+
* examples of data that gets save here:
|
|
18
|
+
* React: { publicDir, ssrPublicDir }.
|
|
19
|
+
* Node: { mainFile, artifactsDir }.
|
|
14
20
|
*/
|
|
15
21
|
metadata?: Record<string, any>;
|
|
16
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["app-build-result.ts"],"sourcesContent":["import { ArtifactDefinition } from '@teambit/builder';\n\nexport interface AppBuildResult {\n artifacts?: ArtifactDefinition[];\n\n /**\n * errors thrown during the build process.\n */\n errors?: Error[];\n\n /**\n * warnings thrown during the build process.\n */\n warnings?: string[];\n\n /**\n * metadata to persist.\n */\n metadata?: Record<string, any>;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["app-build-result.ts"],"sourcesContent":["import { ArtifactDefinition } from '@teambit/builder';\n\nexport interface AppBuildResult {\n artifacts?: ArtifactDefinition[];\n\n /**\n * errors thrown during the build process.\n */\n errors?: Error[];\n\n /**\n * warnings thrown during the build process.\n */\n warnings?: string[];\n\n /**\n * metadata to persist.\n * this is the only property that actually gets saved into the objects (in builder aspect, aspectsData.buildDeployContexts[deployContext]).\n * in some scenarios, the build and deploy pipelines run in different processes, and then the only data the deploy\n * gets is what saved into the objects.\n * examples of data that gets save here:\n * React: { publicDir, ssrPublicDir }.\n * Node: { mainFile, artifactsDir }.\n */\n metadata?: Record<string, any>;\n}\n"],"mappings":""}
|
|
@@ -88,20 +88,22 @@ class AppsBuildTask {
|
|
|
88
88
|
async runForOneApp(app, component, capsule, context) {
|
|
89
89
|
if (!app.build) return undefined;
|
|
90
90
|
// const { component } = capsule;
|
|
91
|
-
const
|
|
91
|
+
const appBuildContext = Object.assign(context, {
|
|
92
92
|
capsule,
|
|
93
93
|
appComponent: component,
|
|
94
94
|
name: app.name,
|
|
95
95
|
artifactsDir: this.getArtifactDirectory()
|
|
96
96
|
});
|
|
97
|
-
const deployContext = await app.build(
|
|
97
|
+
const deployContext = await app.build(appBuildContext);
|
|
98
98
|
const defaultArtifacts = this.getDefaultArtifactDef(app.applicationType || app.name);
|
|
99
99
|
const artifacts = defaultArtifacts.concat(deployContext.artifacts || []);
|
|
100
|
-
const
|
|
100
|
+
const getDeployContextFromMetadata = () => {
|
|
101
101
|
if (deployContext.metadata) {
|
|
102
102
|
return deployContext.metadata;
|
|
103
103
|
}
|
|
104
|
-
|
|
104
|
+
// if metadata is not defined, don't save deployContext blindly. in node-app for example it includes the entire
|
|
105
|
+
// Network object, with all capsules and components.
|
|
106
|
+
return {};
|
|
105
107
|
};
|
|
106
108
|
return {
|
|
107
109
|
artifacts,
|
|
@@ -110,7 +112,7 @@ class AppsBuildTask {
|
|
|
110
112
|
errors: deployContext.errors,
|
|
111
113
|
warnings: deployContext.warnings,
|
|
112
114
|
metadata: {
|
|
113
|
-
deployContext:
|
|
115
|
+
deployContext: getDeployContextFromMetadata(),
|
|
114
116
|
name: app.name,
|
|
115
117
|
appType: app.applicationType
|
|
116
118
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_path","data","require","_pMapSeries","_interopRequireDefault","_builder","_lodash","_application","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","BUILD_TASK","exports","ARTIFACTS_DIR_NAME","AppsBuildTask","constructor","application","opt","deploy","ApplicationAspect","id","execute","context","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","map","c","component","toString","result","componentsResults","mapSeries","capsule","length","includes","apps","loadAppsFromComponent","path","compact","app","runForOneApp","merged","mergeAppsResults","push","componentResult","artifacts","build","appDeployContext","assign","appComponent","name","artifactsDir","getArtifactDirectory","deployContext","defaultArtifacts","getDefaultArtifactDef","applicationType","concat","getDeployContextFormMetadata","metadata","omit","errors","warnings","appType","_metadata","appsResults","buildDeployContexts","forEach","appResult","join","CAPSULE_ARTIFACTS_DIR","nameSuffix","globPatterns"],"sources":["build-application.task.ts"],"sourcesContent":["import { join } from 'path';\nimport mapSeries from 'p-map-series';\nimport {\n BuildTask,\n BuiltTaskResult,\n BuildContext,\n ComponentResult,\n ArtifactDefinition,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport { compact, omit } from 'lodash';\nimport { Capsule } from '@teambit/isolator';\nimport { Component } from '@teambit/component';\n\nimport { ApplicationAspect } from './application.aspect';\nimport { ApplicationMain } from './application.main.runtime';\nimport { AppBuildContext } from './app-build-context';\nimport { Application } from './application';\n\nexport const BUILD_TASK = 'build_application';\nexport const ARTIFACTS_DIR_NAME = 'apps';\n\nexport type OneAppResult = {\n componentResult: ComponentResult;\n artifacts?: ArtifactDefinition[];\n};\n\nexport type OneComponentResult = {\n componentResult: ComponentResult;\n artifacts?: ArtifactDefinition[];\n};\n\nexport type BuildAppResult = {\n componentResult: ComponentResult;\n artifacts?: ArtifactDefinition[];\n};\n\nexport type BuildDeployContexts = {\n deployContext: { publicDir?: string; ssrPublicDir?: string };\n name: string;\n appType: string;\n};\n\nexport type Options = {\n deploy: boolean;\n};\nexport class AppsBuildTask implements BuildTask {\n name = BUILD_TASK;\n aspectId = ApplicationAspect.id;\n readonly location = 'end';\n constructor(private application: ApplicationMain, private opt: Options = { deploy: true }) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const { capsuleNetwork } = context;\n const result: BuiltTaskResult = {\n componentsResults: [],\n };\n\n // const componentsResults = await mapSeries(apps, async (app): Promise<AppsResults | undefined> => {\n await mapSeries(capsuleNetwork.originalSeedersCapsules, async (capsule) => {\n const component = capsule.component;\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n\n const apps = await this.application.loadAppsFromComponent(component, capsule.path);\n if (!apps || !apps.length) return undefined;\n const componentsResults = await mapSeries(compact(apps), async (app) =>\n this.runForOneApp(app, component, capsule, context)\n );\n const merged = this.mergeAppsResults(compact(componentsResults));\n if (merged) {\n result.componentsResults.push(merged.componentResult);\n if (!result.artifacts) result.artifacts = [];\n result.artifacts.push(...(merged.artifacts || []));\n }\n return undefined;\n });\n\n return result;\n }\n\n private async runForOneApp(\n app: Application,\n component: Component,\n capsule: Capsule,\n context: BuildContext\n ): Promise<OneAppResult | undefined> {\n if (!app.build) return undefined;\n // const { component } = capsule;\n const appDeployContext: AppBuildContext = Object.assign(context, {\n capsule,\n appComponent: component,\n name: app.name,\n artifactsDir: this.getArtifactDirectory(),\n });\n const deployContext = await app.build(appDeployContext);\n const defaultArtifacts: ArtifactDefinition[] = this.getDefaultArtifactDef(app.applicationType || app.name);\n const artifacts = defaultArtifacts.concat(deployContext.artifacts || []);\n\n const getDeployContextFormMetadata = () => {\n if (deployContext.metadata) {\n return deployContext.metadata;\n }\n return omit(deployContext, 'errors', 'warnings');\n };\n\n return {\n artifacts,\n componentResult: {\n component: capsule.component,\n errors: deployContext.errors,\n warnings: deployContext.warnings,\n metadata: { deployContext: getDeployContextFormMetadata(), name: app.name, appType: app.applicationType },\n /**\n * @deprecated - please use metadata instead\n *\n * @guysaar223\n * @ram8\n * TODO: we need to think how to pass private metadata between build pipes, maybe create shared context\n * or create new deploy context on builder\n */\n // @ts-ignore\n _metadata: { deployContext, name: app.name, appType: app.applicationType },\n },\n };\n }\n\n private mergeAppsResults(appsResults: OneAppResult[]): OneComponentResult | undefined {\n if (!appsResults || !appsResults.length) return undefined;\n const merged: OneComponentResult = {\n artifacts: [],\n componentResult: {\n component: appsResults[0].componentResult.component,\n errors: [],\n warnings: [],\n metadata: {\n buildDeployContexts: [],\n },\n },\n };\n appsResults.forEach((appResult) => {\n merged.artifacts = (merged.artifacts || []).concat(appResult.artifacts || []);\n merged.componentResult.errors = (merged.componentResult.errors || []).concat(\n appResult.componentResult.errors || []\n );\n merged.componentResult.warnings = (merged.componentResult.warnings || []).concat(\n appResult.componentResult.warnings || []\n );\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n merged.componentResult.metadata!.buildDeployContexts =\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n (merged.componentResult.metadata!.buildDeployContexts || []).concat(appResult.componentResult.metadata || []);\n });\n return merged;\n }\n\n private getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, ARTIFACTS_DIR_NAME);\n }\n\n private getDefaultArtifactDef(nameSuffix: string): ArtifactDefinition[] {\n return [\n {\n name: `app-build-${nameSuffix}`,\n globPatterns: [`${this.getArtifactDirectory()}/**`],\n },\n ];\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_path","data","require","_pMapSeries","_interopRequireDefault","_builder","_lodash","_application","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","BUILD_TASK","exports","ARTIFACTS_DIR_NAME","AppsBuildTask","constructor","application","opt","deploy","ApplicationAspect","id","execute","context","originalSeedersIds","capsuleNetwork","originalSeedersCapsules","map","c","component","toString","result","componentsResults","mapSeries","capsule","length","includes","apps","loadAppsFromComponent","path","compact","app","runForOneApp","merged","mergeAppsResults","push","componentResult","artifacts","build","appBuildContext","assign","appComponent","name","artifactsDir","getArtifactDirectory","deployContext","defaultArtifacts","getDefaultArtifactDef","applicationType","concat","getDeployContextFromMetadata","metadata","errors","warnings","appType","_metadata","appsResults","buildDeployContexts","forEach","appResult","join","CAPSULE_ARTIFACTS_DIR","nameSuffix","globPatterns"],"sources":["build-application.task.ts"],"sourcesContent":["import { join } from 'path';\nimport mapSeries from 'p-map-series';\nimport {\n BuildTask,\n BuiltTaskResult,\n BuildContext,\n ComponentResult,\n ArtifactDefinition,\n CAPSULE_ARTIFACTS_DIR,\n} from '@teambit/builder';\nimport { compact } from 'lodash';\nimport { Capsule } from '@teambit/isolator';\nimport { Component } from '@teambit/component';\n\nimport { ApplicationAspect } from './application.aspect';\nimport { ApplicationMain } from './application.main.runtime';\nimport { AppBuildContext } from './app-build-context';\nimport { Application } from './application';\n\nexport const BUILD_TASK = 'build_application';\nexport const ARTIFACTS_DIR_NAME = 'apps';\n\nexport type OneAppResult = {\n componentResult: ComponentResult;\n artifacts?: ArtifactDefinition[];\n};\n\nexport type OneComponentResult = {\n componentResult: ComponentResult;\n artifacts?: ArtifactDefinition[];\n};\n\nexport type BuildAppResult = {\n componentResult: ComponentResult;\n artifacts?: ArtifactDefinition[];\n};\n\nexport type BuildDeployContexts = {\n deployContext: { publicDir?: string; ssrPublicDir?: string };\n name: string;\n appType: string;\n};\n\nexport type Options = {\n deploy: boolean;\n};\nexport class AppsBuildTask implements BuildTask {\n name = BUILD_TASK;\n aspectId = ApplicationAspect.id;\n readonly location = 'end';\n constructor(private application: ApplicationMain, private opt: Options = { deploy: true }) {}\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const originalSeedersIds = context.capsuleNetwork.originalSeedersCapsules.map((c) => c.component.id.toString());\n const { capsuleNetwork } = context;\n const result: BuiltTaskResult = {\n componentsResults: [],\n };\n\n // const componentsResults = await mapSeries(apps, async (app): Promise<AppsResults | undefined> => {\n await mapSeries(capsuleNetwork.originalSeedersCapsules, async (capsule) => {\n const component = capsule.component;\n if (originalSeedersIds && originalSeedersIds.length && !originalSeedersIds.includes(component.id.toString())) {\n return undefined;\n }\n\n const apps = await this.application.loadAppsFromComponent(component, capsule.path);\n if (!apps || !apps.length) return undefined;\n const componentsResults = await mapSeries(compact(apps), async (app) =>\n this.runForOneApp(app, component, capsule, context)\n );\n const merged = this.mergeAppsResults(compact(componentsResults));\n if (merged) {\n result.componentsResults.push(merged.componentResult);\n if (!result.artifacts) result.artifacts = [];\n result.artifacts.push(...(merged.artifacts || []));\n }\n return undefined;\n });\n\n return result;\n }\n\n private async runForOneApp(\n app: Application,\n component: Component,\n capsule: Capsule,\n context: BuildContext\n ): Promise<OneAppResult | undefined> {\n if (!app.build) return undefined;\n // const { component } = capsule;\n const appBuildContext: AppBuildContext = Object.assign(context, {\n capsule,\n appComponent: component,\n name: app.name,\n artifactsDir: this.getArtifactDirectory(),\n });\n const deployContext = await app.build(appBuildContext);\n const defaultArtifacts: ArtifactDefinition[] = this.getDefaultArtifactDef(app.applicationType || app.name);\n const artifacts = defaultArtifacts.concat(deployContext.artifacts || []);\n\n const getDeployContextFromMetadata = () => {\n if (deployContext.metadata) {\n return deployContext.metadata;\n }\n // if metadata is not defined, don't save deployContext blindly. in node-app for example it includes the entire\n // Network object, with all capsules and components.\n return {};\n };\n\n return {\n artifacts,\n componentResult: {\n component: capsule.component,\n errors: deployContext.errors,\n warnings: deployContext.warnings,\n metadata: { deployContext: getDeployContextFromMetadata(), name: app.name, appType: app.applicationType },\n /**\n * @deprecated - please use metadata instead\n *\n * @guysaar223\n * @ram8\n * TODO: we need to think how to pass private metadata between build pipes, maybe create shared context\n * or create new deploy context on builder\n */\n // @ts-ignore\n _metadata: { deployContext, name: app.name, appType: app.applicationType },\n },\n };\n }\n\n private mergeAppsResults(appsResults: OneAppResult[]): OneComponentResult | undefined {\n if (!appsResults || !appsResults.length) return undefined;\n const merged: OneComponentResult = {\n artifacts: [],\n componentResult: {\n component: appsResults[0].componentResult.component,\n errors: [],\n warnings: [],\n metadata: {\n buildDeployContexts: [],\n },\n },\n };\n appsResults.forEach((appResult) => {\n merged.artifacts = (merged.artifacts || []).concat(appResult.artifacts || []);\n merged.componentResult.errors = (merged.componentResult.errors || []).concat(\n appResult.componentResult.errors || []\n );\n merged.componentResult.warnings = (merged.componentResult.warnings || []).concat(\n appResult.componentResult.warnings || []\n );\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n merged.componentResult.metadata!.buildDeployContexts =\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n (merged.componentResult.metadata!.buildDeployContexts || []).concat(appResult.componentResult.metadata || []);\n });\n return merged;\n }\n\n private getArtifactDirectory() {\n return join(CAPSULE_ARTIFACTS_DIR, ARTIFACTS_DIR_NAME);\n }\n\n private getDefaultArtifactDef(nameSuffix: string): ArtifactDefinition[] {\n return [\n {\n name: `app-build-${nameSuffix}`,\n globPatterns: [`${this.getArtifactDirectory()}/**`],\n },\n ];\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.35/dist/application.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.35/dist/application.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/application",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.35",
|
|
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.
|
|
9
|
+
"version": "1.0.35"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -18,16 +18,16 @@
|
|
|
18
18
|
"@babel/runtime": "7.20.0",
|
|
19
19
|
"@teambit/bit-error": "0.0.404",
|
|
20
20
|
"@teambit/harmony": "0.4.6",
|
|
21
|
-
"@teambit/builder": "1.0.
|
|
22
|
-
"@teambit/component": "1.0.
|
|
23
|
-
"@teambit/isolator": "1.0.
|
|
24
|
-
"@teambit/envs": "1.0.
|
|
21
|
+
"@teambit/builder": "1.0.35",
|
|
22
|
+
"@teambit/component": "1.0.35",
|
|
23
|
+
"@teambit/isolator": "1.0.35",
|
|
24
|
+
"@teambit/envs": "1.0.35",
|
|
25
25
|
"@teambit/cli-table": "0.0.43",
|
|
26
|
-
"@teambit/cli": "0.0.
|
|
27
|
-
"@teambit/aspect-loader": "1.0.
|
|
28
|
-
"@teambit/logger": "0.0.
|
|
29
|
-
"@teambit/watcher": "1.0.
|
|
30
|
-
"@teambit/workspace": "1.0.
|
|
26
|
+
"@teambit/cli": "0.0.805",
|
|
27
|
+
"@teambit/aspect-loader": "1.0.35",
|
|
28
|
+
"@teambit/logger": "0.0.898",
|
|
29
|
+
"@teambit/watcher": "1.0.35",
|
|
30
|
+
"@teambit/workspace": "1.0.35"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/react": "^17.0.8",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@types/testing-library__jest-dom": "5.9.5"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"@teambit/legacy": "1.0.
|
|
43
|
+
"@teambit/legacy": "1.0.586",
|
|
44
44
|
"react": "^16.8.0 || ^17.0.0",
|
|
45
45
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
46
46
|
},
|