@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 appDeployContext = Object.assign(context, {
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(appDeployContext);
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 getDeployContextFormMetadata = () => {
100
+ const getDeployContextFromMetadata = () => {
101
101
  if (deployContext.metadata) {
102
102
  return deployContext.metadata;
103
103
  }
104
- return (0, _lodash().omit)(deployContext, 'errors', 'warnings');
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: getDeployContextFormMetadata(),
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.33/dist/application.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.harmony_application@1.0.33/dist/application.docs.mdx';
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.33",
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.33"
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.33",
22
- "@teambit/component": "1.0.33",
23
- "@teambit/isolator": "1.0.33",
24
- "@teambit/envs": "1.0.33",
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.803",
27
- "@teambit/aspect-loader": "1.0.33",
28
- "@teambit/logger": "0.0.896",
29
- "@teambit/watcher": "1.0.33",
30
- "@teambit/workspace": "1.0.33"
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.583",
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
  },