@teambit/builder 0.0.580 → 0.0.581

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.
Files changed (36) hide show
  1. package/artifact/artifact-definition.ts +6 -0
  2. package/artifact/artifact-factory.ts +2 -12
  3. package/artifact/artifact-list.ts +60 -1
  4. package/artifact/artifact.ts +2 -2
  5. package/artifact/index.ts +1 -1
  6. package/dist/artifact/artifact-definition.d.ts +4 -0
  7. package/dist/artifact/artifact-factory.d.ts +0 -4
  8. package/dist/artifact/artifact-factory.js +1 -12
  9. package/dist/artifact/artifact-factory.js.map +1 -1
  10. package/dist/artifact/artifact-list.d.ts +15 -0
  11. package/dist/artifact/artifact-list.js +66 -1
  12. package/dist/artifact/artifact-list.js.map +1 -1
  13. package/dist/artifact/artifact.d.ts +4 -4
  14. package/dist/artifact/artifact.js.map +1 -1
  15. package/dist/artifact/index.d.ts +1 -1
  16. package/dist/artifact/index.js +6 -0
  17. package/dist/artifact/index.js.map +1 -1
  18. package/dist/builder.main.runtime.d.ts +3 -19
  19. package/dist/builder.main.runtime.js +25 -26
  20. package/dist/builder.main.runtime.js.map +1 -1
  21. package/dist/index.d.ts +3 -2
  22. package/dist/index.js +36 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/storage/default-resolver.d.ts +4 -4
  25. package/dist/storage/default-resolver.js +2 -4
  26. package/dist/storage/default-resolver.js.map +1 -1
  27. package/dist/storage/index.d.ts +1 -1
  28. package/dist/storage/index.js +14 -2
  29. package/dist/storage/index.js.map +1 -1
  30. package/dist/storage/storage-resolver.d.ts +14 -3
  31. package/package-tar/teambit-builder-0.0.581.tgz +0 -0
  32. package/package.json +18 -18
  33. package/storage/default-resolver.ts +5 -7
  34. package/storage/index.ts +1 -1
  35. package/storage/storage-resolver.ts +15 -3
  36. package/package-tar/teambit-builder-0.0.580.tgz +0 -0
@@ -1,3 +1,5 @@
1
+ import { ArtifactStorageResolver } from '..';
2
+
1
3
  export type ArtifactDefinition = {
2
4
  /**
3
5
  * name of the artifact.
@@ -48,5 +50,9 @@ export type ArtifactDefinition = {
48
50
  * storage resolver. can be used to replace where artifacts are stored.
49
51
  * default resolver persists artifacts on scope. (not recommended for large files!)
50
52
  */
53
+ storageResolver?: ArtifactStorageResolver;
54
+ };
55
+
56
+ export type ArtifactModelDefinition = Omit<ArtifactDefinition, 'storageResolver'> & {
51
57
  storageResolver?: string;
52
58
  };
@@ -3,9 +3,8 @@ import globby from 'globby';
3
3
  import { flatten } from 'lodash';
4
4
  import { ArtifactFiles } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';
5
5
  import { Component, ComponentMap } from '@teambit/component';
6
- import type { StorageResolverSlot } from '../builder.main.runtime';
7
6
  import { ArtifactDefinition } from './artifact-definition';
8
- import { DefaultResolver, StorageResolver } from '../storage';
7
+ import { DefaultResolver } from '../storage';
9
8
  import { ArtifactList } from './artifact-list';
10
9
  import { Artifact } from './artifact';
11
10
  import type { BuildContext, BuildTask } from '../build-task';
@@ -16,14 +15,6 @@ export const DEFAULT_CONTEXT = 'component';
16
15
  export type ArtifactMap = ComponentMap<ArtifactList>;
17
16
 
18
17
  export class ArtifactFactory {
19
- constructor(private storageResolverSlot: StorageResolverSlot) {}
20
-
21
- private getResolver(resolvers: StorageResolver[], name?: string) {
22
- const defaultResolver = new DefaultResolver();
23
- const userResolver = resolvers.find((resolver) => resolver.name === name);
24
- return userResolver || defaultResolver;
25
- }
26
-
27
18
  private resolvePaths(root: string, def: ArtifactDefinition): string[] {
28
19
  const patternsFlattened = flatten(def.globPatterns);
29
20
  const paths = globby.sync(patternsFlattened, { cwd: root });
@@ -61,8 +52,7 @@ export class ArtifactFactory {
61
52
  }
62
53
 
63
54
  private getStorageResolver(def: ArtifactDefinition) {
64
- const storageResolvers = this.storageResolverSlot.values();
65
- return this.getResolver(storageResolvers, def.storageResolver);
55
+ return def.storageResolver || new DefaultResolver();
66
56
  }
67
57
 
68
58
  private toComponentMap(context: BuildContext, artifactMap: [string, Artifact][]) {
@@ -1,6 +1,12 @@
1
1
  import { Component } from '@teambit/component';
2
2
  import type { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';
3
3
  import type { Artifact } from './artifact';
4
+ import {
5
+ ArtifactStorageResolver,
6
+ FileStorageResolver,
7
+ WholeArtifactStorageResolver,
8
+ DefaultResolver,
9
+ } from '../storage';
4
10
 
5
11
  export type ResolverMap = { [key: string]: Artifact[] };
6
12
 
@@ -56,9 +62,62 @@ export class ArtifactList {
56
62
  if (!artifacts.length) return;
57
63
  const storageResolver = artifacts[0].storageResolver;
58
64
  const artifactList = new ArtifactList(artifacts);
59
- await storageResolver.store(component, artifactList);
65
+ const artifactPromises = artifactList.artifacts.map(async (artifact) => {
66
+ return this.storeArtifact(storageResolver, artifact, component);
67
+ });
68
+ await Promise.all(artifactPromises);
60
69
  });
61
70
 
62
71
  return Promise.all(promises);
63
72
  }
73
+
74
+ private async storeArtifact(storageResolver: ArtifactStorageResolver, artifact: Artifact, component: Component) {
75
+ // For now we are always storing also using the default resolver
76
+ if (storageResolver.name !== 'default') {
77
+ const defaultResolver = new DefaultResolver();
78
+ await defaultResolver.store(component, artifact);
79
+ }
80
+ // @ts-ignore
81
+ if (storageResolver.store && typeof storageResolver.store === 'function') {
82
+ return this.storeWholeArtifactByResolver(storageResolver as WholeArtifactStorageResolver, artifact, component);
83
+ }
84
+ return this.storeArtifactFilesByResolver(storageResolver as FileStorageResolver, artifact, component);
85
+ }
86
+
87
+ /**
88
+ * Send the entire artifact to the resolver then get back the result for all files from the resolver
89
+ * @param storageResolver
90
+ * @param artifact
91
+ * @param component
92
+ */
93
+ private async storeWholeArtifactByResolver(
94
+ storageResolver: WholeArtifactStorageResolver,
95
+ artifact: Artifact,
96
+ component: Component
97
+ ) {
98
+ const results = await storageResolver.store(component, artifact);
99
+ if (!results) return;
100
+ artifact.files.vinyls.map(async (file) => {
101
+ const url = results[file.relative];
102
+ if (url) {
103
+ file.url = url;
104
+ }
105
+ });
106
+ }
107
+
108
+ /**
109
+ * Go over the artifact files and send them to the resolver one by one
110
+ * @param storageResolver
111
+ * @param artifact
112
+ * @param component
113
+ */
114
+ private storeArtifactFilesByResolver(storageResolver: FileStorageResolver, artifact: Artifact, component: Component) {
115
+ const promises = artifact.files.vinyls.map(async (file) => {
116
+ const url = await storageResolver.storeFile(component, artifact, file);
117
+ if (url) {
118
+ file.url = url;
119
+ }
120
+ });
121
+ return Promise.all(promises);
122
+ }
64
123
  }
@@ -1,6 +1,6 @@
1
1
  import type { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';
2
2
  import type { BuildTask } from '../build-task';
3
- import type { StorageResolver } from '../storage';
3
+ import type { ArtifactStorageResolver } from '../storage';
4
4
  import type { ArtifactDefinition } from './artifact-definition';
5
5
 
6
6
  export class Artifact {
@@ -13,7 +13,7 @@ export class Artifact {
13
13
  /**
14
14
  * storage resolver. can be used to replace where artifacts are stored.
15
15
  */
16
- readonly storageResolver: StorageResolver,
16
+ readonly storageResolver: ArtifactStorageResolver,
17
17
 
18
18
  readonly files: ArtifactFiles,
19
19
 
package/artifact/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { ArtifactDefinition } from './artifact-definition';
1
+ export { ArtifactDefinition, ArtifactModelDefinition } from './artifact-definition';
2
2
  export { ExtensionArtifact } from './extension-artifact';
3
3
  export { Artifact } from './artifact';
4
4
  export { ArtifactList } from './artifact-list';
@@ -1,3 +1,4 @@
1
+ import { ArtifactStorageResolver } from '..';
1
2
  export declare type ArtifactDefinition = {
2
3
  /**
3
4
  * name of the artifact.
@@ -41,5 +42,8 @@ export declare type ArtifactDefinition = {
41
42
  * storage resolver. can be used to replace where artifacts are stored.
42
43
  * default resolver persists artifacts on scope. (not recommended for large files!)
43
44
  */
45
+ storageResolver?: ArtifactStorageResolver;
46
+ };
47
+ export declare type ArtifactModelDefinition = Omit<ArtifactDefinition, 'storageResolver'> & {
44
48
  storageResolver?: string;
45
49
  };
@@ -1,5 +1,4 @@
1
1
  import { Component, ComponentMap } from '@teambit/component';
2
- import type { StorageResolverSlot } from '../builder.main.runtime';
3
2
  import { ArtifactDefinition } from './artifact-definition';
4
3
  import { ArtifactList } from './artifact-list';
5
4
  import { Artifact } from './artifact';
@@ -7,9 +6,6 @@ import type { BuildContext, BuildTask } from '../build-task';
7
6
  export declare const DEFAULT_CONTEXT = "component";
8
7
  export declare type ArtifactMap = ComponentMap<ArtifactList>;
9
8
  export declare class ArtifactFactory {
10
- private storageResolverSlot;
11
- constructor(storageResolverSlot: StorageResolverSlot);
12
- private getResolver;
13
9
  private resolvePaths;
14
10
  private getArtifactContextPath;
15
11
  private getArtifactContext;
@@ -103,16 +103,6 @@ const DEFAULT_CONTEXT = 'component';
103
103
  exports.DEFAULT_CONTEXT = DEFAULT_CONTEXT;
104
104
 
105
105
  class ArtifactFactory {
106
- constructor(storageResolverSlot) {
107
- this.storageResolverSlot = storageResolverSlot;
108
- }
109
-
110
- getResolver(resolvers, name) {
111
- const defaultResolver = new (_storage().DefaultResolver)();
112
- const userResolver = resolvers.find(resolver => resolver.name === name);
113
- return userResolver || defaultResolver;
114
- }
115
-
116
106
  resolvePaths(root, def) {
117
107
  const patternsFlattened = (0, _lodash().flatten)(def.globPatterns);
118
108
 
@@ -154,8 +144,7 @@ class ArtifactFactory {
154
144
  }
155
145
 
156
146
  getStorageResolver(def) {
157
- const storageResolvers = this.storageResolverSlot.values();
158
- return this.getResolver(storageResolvers, def.storageResolver);
147
+ return def.storageResolver || new (_storage().DefaultResolver)();
159
148
  }
160
149
 
161
150
  toComponentMap(context, artifactMap) {
@@ -1 +1 @@
1
- {"version":3,"sources":["artifact-factory.ts"],"names":["DEFAULT_CONTEXT","ArtifactFactory","constructor","storageResolverSlot","getResolver","resolvers","name","defaultResolver","DefaultResolver","userResolver","find","resolver","resolvePaths","root","def","patternsFlattened","globPatterns","paths","globby","sync","cwd","getArtifactContextPath","context","component","artifactContext","getArtifactContext","capsulePath","capsuleNetwork","graphCapsules","getCapsule","id","path","CapsuleNotFound","capsulesRootDir","createFromComponent","task","storageResolver","getStorageResolver","rootDir","getRootDir","length","undefined","Artifact","ArtifactFiles","storageResolvers","values","toComponentMap","artifactMap","ComponentMap","as","components","toString","artifacts","filter","targetId","map","artifact","ArtifactList","generate","defs","tupleArr","forEach","capsuleDir","push"],"mappings":"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","sourcesContent":["import { join } from 'path';\nimport globby from 'globby';\nimport { flatten } from 'lodash';\nimport { ArtifactFiles } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { Component, ComponentMap } from '@teambit/component';\nimport type { StorageResolverSlot } from '../builder.main.runtime';\nimport { ArtifactDefinition } from './artifact-definition';\nimport { DefaultResolver, StorageResolver } from '../storage';\nimport { ArtifactList } from './artifact-list';\nimport { Artifact } from './artifact';\nimport type { BuildContext, BuildTask } from '../build-task';\nimport { CapsuleNotFound } from '../exceptions';\n\nexport const DEFAULT_CONTEXT = 'component';\n\nexport type ArtifactMap = ComponentMap<ArtifactList>;\n\nexport class ArtifactFactory {\n constructor(private storageResolverSlot: StorageResolverSlot) {}\n\n private getResolver(resolvers: StorageResolver[], name?: string) {\n const defaultResolver = new DefaultResolver();\n const userResolver = resolvers.find((resolver) => resolver.name === name);\n return userResolver || defaultResolver;\n }\n\n private resolvePaths(root: string, def: ArtifactDefinition): string[] {\n const patternsFlattened = flatten(def.globPatterns);\n const paths = globby.sync(patternsFlattened, { cwd: root });\n return paths;\n }\n\n private getArtifactContextPath(context: BuildContext, component: Component, def: ArtifactDefinition) {\n const artifactContext = this.getArtifactContext(def);\n if (artifactContext === 'component') {\n const capsulePath = context.capsuleNetwork.graphCapsules.getCapsule(component.id)?.path;\n if (!capsulePath) throw new CapsuleNotFound(component.id);\n return capsulePath;\n }\n\n return context.capsuleNetwork.capsulesRootDir;\n }\n\n private getArtifactContext(def: ArtifactDefinition) {\n return def.context || DEFAULT_CONTEXT;\n }\n\n createFromComponent(\n context: BuildContext,\n component: Component,\n def: ArtifactDefinition,\n task: BuildTask\n ): Artifact | undefined {\n const storageResolver = this.getStorageResolver(def);\n const rootDir = this.getArtifactContextPath(context, component, def);\n const paths = this.resolvePaths(this.getRootDir(rootDir, def), def);\n if (!paths || !paths.length) {\n return undefined;\n }\n return new Artifact(def, storageResolver, new ArtifactFiles(paths), rootDir, task);\n }\n\n private getStorageResolver(def: ArtifactDefinition) {\n const storageResolvers = this.storageResolverSlot.values();\n return this.getResolver(storageResolvers, def.storageResolver);\n }\n\n private toComponentMap(context: BuildContext, artifactMap: [string, Artifact][]) {\n return ComponentMap.as<ArtifactList>(context.components, (component) => {\n const id = component.id.toString();\n const artifacts = artifactMap.filter(([targetId]) => targetId === id).map(([, artifact]) => artifact);\n\n return new ArtifactList(artifacts);\n });\n }\n\n private getRootDir(rootDir: string, def: ArtifactDefinition) {\n if (!def.rootDir) return rootDir;\n return join(rootDir, def.rootDir);\n }\n\n /**\n * generate artifacts from a build context according to the spec defined in the artifact definitions.\n */\n generate(context: BuildContext, defs: ArtifactDefinition[], task: BuildTask): ComponentMap<ArtifactList> {\n const tupleArr: [string, Artifact][] = [];\n\n defs.forEach((def) => {\n const artifactContext = this.getArtifactContext(def);\n if (artifactContext === 'env') {\n const capsuleDir = context.capsuleNetwork.capsulesRootDir;\n const rootDir = this.getRootDir(capsuleDir, def);\n const paths = this.resolvePaths(rootDir, def);\n if (paths && paths.length) {\n const artifact = new Artifact(\n def,\n this.getStorageResolver(def),\n new ArtifactFiles(this.resolvePaths(rootDir, def)),\n rootDir,\n task\n );\n\n return context.components.forEach((component) => {\n tupleArr.push([component.id.toString(), artifact]);\n });\n }\n }\n\n return context.components.forEach((component) => {\n const artifact = this.createFromComponent(context, component, def, task);\n if (artifact) {\n tupleArr.push([component.id.toString(), artifact]);\n }\n });\n });\n\n return this.toComponentMap(context, tupleArr);\n }\n}\n"]}
1
+ {"version":3,"sources":["artifact-factory.ts"],"names":["DEFAULT_CONTEXT","ArtifactFactory","resolvePaths","root","def","patternsFlattened","globPatterns","paths","globby","sync","cwd","getArtifactContextPath","context","component","artifactContext","getArtifactContext","capsulePath","capsuleNetwork","graphCapsules","getCapsule","id","path","CapsuleNotFound","capsulesRootDir","createFromComponent","task","storageResolver","getStorageResolver","rootDir","getRootDir","length","undefined","Artifact","ArtifactFiles","DefaultResolver","toComponentMap","artifactMap","ComponentMap","as","components","toString","artifacts","filter","targetId","map","artifact","ArtifactList","generate","defs","tupleArr","forEach","capsuleDir","push"],"mappings":"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","sourcesContent":["import { join } from 'path';\nimport globby from 'globby';\nimport { flatten } from 'lodash';\nimport { ArtifactFiles } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { ArtifactDefinition } from './artifact-definition';\nimport { DefaultResolver } from '../storage';\nimport { ArtifactList } from './artifact-list';\nimport { Artifact } from './artifact';\nimport type { BuildContext, BuildTask } from '../build-task';\nimport { CapsuleNotFound } from '../exceptions';\n\nexport const DEFAULT_CONTEXT = 'component';\n\nexport type ArtifactMap = ComponentMap<ArtifactList>;\n\nexport class ArtifactFactory {\n private resolvePaths(root: string, def: ArtifactDefinition): string[] {\n const patternsFlattened = flatten(def.globPatterns);\n const paths = globby.sync(patternsFlattened, { cwd: root });\n return paths;\n }\n\n private getArtifactContextPath(context: BuildContext, component: Component, def: ArtifactDefinition) {\n const artifactContext = this.getArtifactContext(def);\n if (artifactContext === 'component') {\n const capsulePath = context.capsuleNetwork.graphCapsules.getCapsule(component.id)?.path;\n if (!capsulePath) throw new CapsuleNotFound(component.id);\n return capsulePath;\n }\n\n return context.capsuleNetwork.capsulesRootDir;\n }\n\n private getArtifactContext(def: ArtifactDefinition) {\n return def.context || DEFAULT_CONTEXT;\n }\n\n createFromComponent(\n context: BuildContext,\n component: Component,\n def: ArtifactDefinition,\n task: BuildTask\n ): Artifact | undefined {\n const storageResolver = this.getStorageResolver(def);\n const rootDir = this.getArtifactContextPath(context, component, def);\n const paths = this.resolvePaths(this.getRootDir(rootDir, def), def);\n if (!paths || !paths.length) {\n return undefined;\n }\n return new Artifact(def, storageResolver, new ArtifactFiles(paths), rootDir, task);\n }\n\n private getStorageResolver(def: ArtifactDefinition) {\n return def.storageResolver || new DefaultResolver();\n }\n\n private toComponentMap(context: BuildContext, artifactMap: [string, Artifact][]) {\n return ComponentMap.as<ArtifactList>(context.components, (component) => {\n const id = component.id.toString();\n const artifacts = artifactMap.filter(([targetId]) => targetId === id).map(([, artifact]) => artifact);\n\n return new ArtifactList(artifacts);\n });\n }\n\n private getRootDir(rootDir: string, def: ArtifactDefinition) {\n if (!def.rootDir) return rootDir;\n return join(rootDir, def.rootDir);\n }\n\n /**\n * generate artifacts from a build context according to the spec defined in the artifact definitions.\n */\n generate(context: BuildContext, defs: ArtifactDefinition[], task: BuildTask): ComponentMap<ArtifactList> {\n const tupleArr: [string, Artifact][] = [];\n\n defs.forEach((def) => {\n const artifactContext = this.getArtifactContext(def);\n if (artifactContext === 'env') {\n const capsuleDir = context.capsuleNetwork.capsulesRootDir;\n const rootDir = this.getRootDir(capsuleDir, def);\n const paths = this.resolvePaths(rootDir, def);\n if (paths && paths.length) {\n const artifact = new Artifact(\n def,\n this.getStorageResolver(def),\n new ArtifactFiles(this.resolvePaths(rootDir, def)),\n rootDir,\n task\n );\n\n return context.components.forEach((component) => {\n tupleArr.push([component.id.toString(), artifact]);\n });\n }\n }\n\n return context.components.forEach((component) => {\n const artifact = this.createFromComponent(context, component, def, task);\n if (artifact) {\n tupleArr.push([component.id.toString(), artifact]);\n }\n });\n });\n\n return this.toComponentMap(context, tupleArr);\n }\n}\n"]}
@@ -23,4 +23,19 @@ export declare class ArtifactList {
23
23
  * store all artifacts using the configured storage resolvers.
24
24
  */
25
25
  store(component: Component): Promise<void[]>;
26
+ private storeArtifact;
27
+ /**
28
+ * Send the entire artifact to the resolver then get back the result for all files from the resolver
29
+ * @param storageResolver
30
+ * @param artifact
31
+ * @param component
32
+ */
33
+ private storeWholeArtifactByResolver;
34
+ /**
35
+ * Go over the artifact files and send them to the resolver one by one
36
+ * @param storageResolver
37
+ * @param artifact
38
+ * @param component
39
+ */
40
+ private storeArtifactFilesByResolver;
26
41
  }
@@ -9,6 +9,16 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.ArtifactList = void 0;
11
11
 
12
+ function _storage() {
13
+ const data = require("../storage");
14
+
15
+ _storage = function () {
16
+ return data;
17
+ };
18
+
19
+ return data;
20
+ }
21
+
12
22
  class ArtifactList {
13
23
  constructor(artifacts) {
14
24
  this.artifacts = artifacts;
@@ -67,7 +77,62 @@ class ArtifactList {
67
77
  if (!artifacts.length) return;
68
78
  const storageResolver = artifacts[0].storageResolver;
69
79
  const artifactList = new ArtifactList(artifacts);
70
- await storageResolver.store(component, artifactList);
80
+ const artifactPromises = artifactList.artifacts.map(async artifact => {
81
+ return this.storeArtifact(storageResolver, artifact, component);
82
+ });
83
+ await Promise.all(artifactPromises);
84
+ });
85
+ return Promise.all(promises);
86
+ }
87
+
88
+ async storeArtifact(storageResolver, artifact, component) {
89
+ // For now we are always storing also using the default resolver
90
+ if (storageResolver.name !== 'default') {
91
+ const defaultResolver = new (_storage().DefaultResolver)();
92
+ await defaultResolver.store(component, artifact);
93
+ } // @ts-ignore
94
+
95
+
96
+ if (storageResolver.store && typeof storageResolver.store === 'function') {
97
+ return this.storeWholeArtifactByResolver(storageResolver, artifact, component);
98
+ }
99
+
100
+ return this.storeArtifactFilesByResolver(storageResolver, artifact, component);
101
+ }
102
+ /**
103
+ * Send the entire artifact to the resolver then get back the result for all files from the resolver
104
+ * @param storageResolver
105
+ * @param artifact
106
+ * @param component
107
+ */
108
+
109
+
110
+ async storeWholeArtifactByResolver(storageResolver, artifact, component) {
111
+ const results = await storageResolver.store(component, artifact);
112
+ if (!results) return;
113
+ artifact.files.vinyls.map(async file => {
114
+ const url = results[file.relative];
115
+
116
+ if (url) {
117
+ file.url = url;
118
+ }
119
+ });
120
+ }
121
+ /**
122
+ * Go over the artifact files and send them to the resolver one by one
123
+ * @param storageResolver
124
+ * @param artifact
125
+ * @param component
126
+ */
127
+
128
+
129
+ storeArtifactFilesByResolver(storageResolver, artifact, component) {
130
+ const promises = artifact.files.vinyls.map(async file => {
131
+ const url = await storageResolver.storeFile(component, artifact, file);
132
+
133
+ if (url) {
134
+ file.url = url;
135
+ }
71
136
  });
72
137
  return Promise.all(promises);
73
138
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["artifact-list.ts"],"names":["ArtifactList","constructor","artifacts","toArray","groupByResolver","resolverMap","forEach","artifact","storageResolver","resolverArray","name","length","push","toObject","map","groupByTaskId","reduce","acc","taskId","task","aspectId","store","component","byResolvers","promises","Object","keys","key","artifactList","Promise","all"],"mappings":";;;;;;;;;;;AAMO,MAAMA,YAAN,CAAmB;AACxBC,EAAAA,WAAW,CAAUC,SAAV,EAAiC;AAAA,SAAvBA,SAAuB,GAAvBA,SAAuB;AAAE;AAE9C;AACF;AACA;;;AACEC,EAAAA,OAAO,GAAG;AACR,WAAO,KAAKD,SAAZ;AACD;AAED;AACF;AACA;;;AACEE,EAAAA,eAAe,GAAgB;AAC7B,UAAMC,WAAwB,GAAG,EAAjC;AACA,SAAKH,SAAL,CAAeI,OAAf,CAAwBC,QAAD,IAAc;AACnC,YAAMC,eAAe,GAAGD,QAAQ,CAACC,eAAjC;AACA,YAAMC,aAAa,GAAGJ,WAAW,CAACG,eAAe,CAACE,IAAjB,CAAjC;;AACA,UAAI,CAACD,aAAL,EAAoB;AAClBJ,QAAAA,WAAW,CAACG,eAAe,CAACE,IAAjB,CAAX,GAAoC,CAACH,QAAD,CAApC;AACA;AACD;;AACD,UAAIE,aAAa,CAACE,MAAlB,EAA0B;AACxBN,QAAAA,WAAW,CAACG,eAAe,CAACE,IAAjB,CAAX,CAAkCE,IAAlC,CAAuCL,QAAvC;AACD;AACF,KAVD;AAYA,WAAOF,WAAP;AACD;;AAEDQ,EAAAA,QAAQ,GAAqB;AAC3B,WAAO,KAAKX,SAAL,CAAeY,GAAf,CAAoBP,QAAD,IAAcA,QAAQ,CAACM,QAAT,EAAjC,CAAP;AACD;;AAEDE,EAAAA,aAAa,GAAG;AACd,WAAO,KAAKb,SAAL,CAAec,MAAf,CAAsB,CAACC,GAAD,EAAmCV,QAAnC,KAAgD;AAC3E,YAAMW,MAAM,GAAGX,QAAQ,CAACY,IAAT,CAAcC,QAA7B;AACAH,MAAAA,GAAG,CAACC,MAAD,CAAH,GAAcX,QAAd;AACA,aAAOU,GAAP;AACD,KAJM,EAIJ,EAJI,CAAP;AAKD;AAED;AACF;AACA;;;AACa,QAALI,KAAK,CAACC,SAAD,EAAuB;AAChC,UAAMC,WAAW,GAAG,KAAKnB,eAAL,EAApB;AACA,UAAMoB,QAAQ,GAAGC,MAAM,CAACC,IAAP,CAAYH,WAAZ,EAAyBT,GAAzB,CAA6B,MAAOa,GAAP,IAAe;AAC3D,YAAMzB,SAAS,GAAGqB,WAAW,CAACI,GAAD,CAA7B;AACA,UAAI,CAACzB,SAAS,CAACS,MAAf,EAAuB;AACvB,YAAMH,eAAe,GAAGN,SAAS,CAAC,CAAD,CAAT,CAAaM,eAArC;AACA,YAAMoB,YAAY,GAAG,IAAI5B,YAAJ,CAAiBE,SAAjB,CAArB;AACA,YAAMM,eAAe,CAACa,KAAhB,CAAsBC,SAAtB,EAAiCM,YAAjC,CAAN;AACD,KANgB,CAAjB;AAQA,WAAOC,OAAO,CAACC,GAAR,CAAYN,QAAZ,CAAP;AACD;;AAxDuB","sourcesContent":["import { Component } from '@teambit/component';\nimport type { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport type { Artifact } from './artifact';\n\nexport type ResolverMap = { [key: string]: Artifact[] };\n\nexport class ArtifactList {\n constructor(readonly artifacts: Artifact[]) {}\n\n /**\n * return an array of artifact objects.\n */\n toArray() {\n return this.artifacts;\n }\n\n /**\n * group artifacts by the storage resolver.\n */\n groupByResolver(): ResolverMap {\n const resolverMap: ResolverMap = {};\n this.artifacts.forEach((artifact) => {\n const storageResolver = artifact.storageResolver;\n const resolverArray = resolverMap[storageResolver.name];\n if (!resolverArray) {\n resolverMap[storageResolver.name] = [artifact];\n return;\n }\n if (resolverArray.length) {\n resolverMap[storageResolver.name].push(artifact);\n }\n });\n\n return resolverMap;\n }\n\n toObject(): ArtifactObject[] {\n return this.artifacts.map((artifact) => artifact.toObject());\n }\n\n groupByTaskId() {\n return this.artifacts.reduce((acc: { [key: string]: Artifact }, artifact) => {\n const taskId = artifact.task.aspectId;\n acc[taskId] = artifact;\n return acc;\n }, {});\n }\n\n /**\n * store all artifacts using the configured storage resolvers.\n */\n async store(component: Component) {\n const byResolvers = this.groupByResolver();\n const promises = Object.keys(byResolvers).map(async (key) => {\n const artifacts = byResolvers[key];\n if (!artifacts.length) return;\n const storageResolver = artifacts[0].storageResolver;\n const artifactList = new ArtifactList(artifacts);\n await storageResolver.store(component, artifactList);\n });\n\n return Promise.all(promises);\n }\n}\n"]}
1
+ {"version":3,"sources":["artifact-list.ts"],"names":["ArtifactList","constructor","artifacts","toArray","groupByResolver","resolverMap","forEach","artifact","storageResolver","resolverArray","name","length","push","toObject","map","groupByTaskId","reduce","acc","taskId","task","aspectId","store","component","byResolvers","promises","Object","keys","key","artifactList","artifactPromises","storeArtifact","Promise","all","defaultResolver","DefaultResolver","storeWholeArtifactByResolver","storeArtifactFilesByResolver","results","files","vinyls","file","url","relative","storeFile"],"mappings":"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","sourcesContent":["import { Component } from '@teambit/component';\nimport type { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport type { Artifact } from './artifact';\nimport {\n ArtifactStorageResolver,\n FileStorageResolver,\n WholeArtifactStorageResolver,\n DefaultResolver,\n} from '../storage';\n\nexport type ResolverMap = { [key: string]: Artifact[] };\n\nexport class ArtifactList {\n constructor(readonly artifacts: Artifact[]) {}\n\n /**\n * return an array of artifact objects.\n */\n toArray() {\n return this.artifacts;\n }\n\n /**\n * group artifacts by the storage resolver.\n */\n groupByResolver(): ResolverMap {\n const resolverMap: ResolverMap = {};\n this.artifacts.forEach((artifact) => {\n const storageResolver = artifact.storageResolver;\n const resolverArray = resolverMap[storageResolver.name];\n if (!resolverArray) {\n resolverMap[storageResolver.name] = [artifact];\n return;\n }\n if (resolverArray.length) {\n resolverMap[storageResolver.name].push(artifact);\n }\n });\n\n return resolverMap;\n }\n\n toObject(): ArtifactObject[] {\n return this.artifacts.map((artifact) => artifact.toObject());\n }\n\n groupByTaskId() {\n return this.artifacts.reduce((acc: { [key: string]: Artifact }, artifact) => {\n const taskId = artifact.task.aspectId;\n acc[taskId] = artifact;\n return acc;\n }, {});\n }\n\n /**\n * store all artifacts using the configured storage resolvers.\n */\n async store(component: Component) {\n const byResolvers = this.groupByResolver();\n const promises = Object.keys(byResolvers).map(async (key) => {\n const artifacts = byResolvers[key];\n if (!artifacts.length) return;\n const storageResolver = artifacts[0].storageResolver;\n const artifactList = new ArtifactList(artifacts);\n const artifactPromises = artifactList.artifacts.map(async (artifact) => {\n return this.storeArtifact(storageResolver, artifact, component);\n });\n await Promise.all(artifactPromises);\n });\n\n return Promise.all(promises);\n }\n\n private async storeArtifact(storageResolver: ArtifactStorageResolver, artifact: Artifact, component: Component) {\n // For now we are always storing also using the default resolver\n if (storageResolver.name !== 'default') {\n const defaultResolver = new DefaultResolver();\n await defaultResolver.store(component, artifact);\n }\n // @ts-ignore\n if (storageResolver.store && typeof storageResolver.store === 'function') {\n return this.storeWholeArtifactByResolver(storageResolver as WholeArtifactStorageResolver, artifact, component);\n }\n return this.storeArtifactFilesByResolver(storageResolver as FileStorageResolver, artifact, component);\n }\n\n /**\n * Send the entire artifact to the resolver then get back the result for all files from the resolver\n * @param storageResolver\n * @param artifact\n * @param component\n */\n private async storeWholeArtifactByResolver(\n storageResolver: WholeArtifactStorageResolver,\n artifact: Artifact,\n component: Component\n ) {\n const results = await storageResolver.store(component, artifact);\n if (!results) return;\n artifact.files.vinyls.map(async (file) => {\n const url = results[file.relative];\n if (url) {\n file.url = url;\n }\n });\n }\n\n /**\n * Go over the artifact files and send them to the resolver one by one\n * @param storageResolver\n * @param artifact\n * @param component\n */\n private storeArtifactFilesByResolver(storageResolver: FileStorageResolver, artifact: Artifact, component: Component) {\n const promises = artifact.files.vinyls.map(async (file) => {\n const url = await storageResolver.storeFile(component, artifact, file);\n if (url) {\n file.url = url;\n }\n });\n return Promise.all(promises);\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';
2
2
  import type { BuildTask } from '../build-task';
3
- import type { StorageResolver } from '../storage';
3
+ import type { ArtifactStorageResolver } from '../storage';
4
4
  import type { ArtifactDefinition } from './artifact-definition';
5
5
  export declare class Artifact {
6
6
  /**
@@ -10,7 +10,7 @@ export declare class Artifact {
10
10
  /**
11
11
  * storage resolver. can be used to replace where artifacts are stored.
12
12
  */
13
- readonly storageResolver: StorageResolver;
13
+ readonly storageResolver: ArtifactStorageResolver;
14
14
  readonly files: ArtifactFiles;
15
15
  /**
16
16
  * join this with `this.paths` to get the absolute paths
@@ -34,7 +34,7 @@ export declare class Artifact {
34
34
  /**
35
35
  * storage resolver. can be used to replace where artifacts are stored.
36
36
  */
37
- storageResolver: StorageResolver, files: ArtifactFiles,
37
+ storageResolver: ArtifactStorageResolver, files: ArtifactFiles,
38
38
  /**
39
39
  * join this with `this.paths` to get the absolute paths
40
40
  */
@@ -49,7 +49,7 @@ export declare class Artifact {
49
49
  * timestamp of the artifact creation.
50
50
  */
51
51
  timestamp?: number);
52
- get storage(): StorageResolver;
52
+ get storage(): ArtifactStorageResolver;
53
53
  /**
54
54
  * name of the artifact.
55
55
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["artifact.ts"],"names":["Artifact","constructor","def","storageResolver","files","rootDir","task","timestamp","Date","now","storage","name","description","generatedBy","aspectId","tar","toObject","id"],"mappings":";;;;;;;;;AAKO,MAAMA,QAAN,CAAe;AACpBC,EAAAA,WAAW;AACT;AACJ;AACA;AACaC,EAAAA,GAJA;AAMT;AACJ;AACA;AACaC,EAAAA,eATA,EAWAC,KAXA;AAaT;AACJ;AACA;AACaC,EAAAA,OAhBA;AAkBT;AACJ;AACA;AACA;AACA;AACaC,EAAAA,IAvBA;AAyBT;AACJ;AACA;AACaC,EAAAA,SAAiB,GAAGC,IAAI,CAACC,GAAL,EA5BpB,EA6BT;AAAA,SAzBSP,GAyBT,GAzBSA,GAyBT;AAAA,SApBSC,eAoBT,GApBSA,eAoBT;AAAA,SAlBSC,KAkBT,GAlBSA,KAkBT;AAAA,SAbSC,OAaT,GAbSA,OAaT;AAAA,SANSC,IAMT,GANSA,IAMT;AAAA,SADSC,SACT,GADSA,SACT;AAAE;;AAEO,MAAPG,OAAO,GAAG;AACZ,WAAO,KAAKP,eAAZ;AACD;AAED;AACF;AACA;;;AACU,MAAJQ,IAAI,GAAW;AACjB,WAAO,KAAKT,GAAL,CAASS,IAAhB;AACD;AAED;AACF;AACA;;;AACiB,MAAXC,WAAW,GAAG;AAChB,WAAO,KAAKV,GAAL,CAASU,WAAhB;AACD;AAED;AACF;AACA;;;AACiB,MAAXC,WAAW,GAAW;AACxB,WAAO,KAAKX,GAAL,CAASW,WAAT,IAAwB,KAAKP,IAAL,CAAUQ,QAAzC;AACD;AAED;AACF;AACA;;;AACEC,EAAAA,GAAG,GAAG,CAAE;;AAERC,EAAAA,QAAQ,GAAmB;AACzB,WAAO;AACLL,MAAAA,IAAI,EAAE,KAAKA,IADN;AAELC,MAAAA,WAAW,EAAE,KAAKA,WAFb;AAGLC,MAAAA,WAAW,EAAE,KAAKA,WAHb;AAILH,MAAAA,OAAO,EAAE,KAAKP,eAAL,CAAqBQ,IAJzB;AAKLL,MAAAA,IAAI,EAAE;AACJW,QAAAA,EAAE,EAAE,KAAKX,IAAL,CAAUQ,QADV;AAEJH,QAAAA,IAAI,EAAE,KAAKL,IAAL,CAAUK;AAFZ,OALD;AASLP,MAAAA,KAAK,EAAE,KAAKA;AATP,KAAP;AAWD;;AA1EmB","sourcesContent":["import type { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport type { BuildTask } from '../build-task';\nimport type { StorageResolver } from '../storage';\nimport type { ArtifactDefinition } from './artifact-definition';\n\nexport class Artifact {\n constructor(\n /**\n * definition of the artifact.\n */\n readonly def: ArtifactDefinition,\n\n /**\n * storage resolver. can be used to replace where artifacts are stored.\n */\n readonly storageResolver: StorageResolver,\n\n readonly files: ArtifactFiles,\n\n /**\n * join this with `this.paths` to get the absolute paths\n */\n readonly rootDir: string,\n\n /**\n * the declaring task.\n * todo: change this to taskDescriptor that has only the metadata of the task, so it could be\n * saved into the model.\n */\n readonly task: BuildTask,\n\n /**\n * timestamp of the artifact creation.\n */\n readonly timestamp: number = Date.now()\n ) {}\n\n get storage() {\n return this.storageResolver;\n }\n\n /**\n * name of the artifact.\n */\n get name(): string {\n return this.def.name;\n }\n\n /**\n * description of the artifact.\n */\n get description() {\n return this.def.description;\n }\n\n /**\n * aspect id (string) that generated the artifact\n */\n get generatedBy(): string {\n return this.def.generatedBy || this.task.aspectId;\n }\n\n /**\n * archive all artifact files into a tar.\n */\n tar() {}\n\n toObject(): ArtifactObject {\n return {\n name: this.name,\n description: this.description,\n generatedBy: this.generatedBy,\n storage: this.storageResolver.name,\n task: {\n id: this.task.aspectId,\n name: this.task.name,\n },\n files: this.files,\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["artifact.ts"],"names":["Artifact","constructor","def","storageResolver","files","rootDir","task","timestamp","Date","now","storage","name","description","generatedBy","aspectId","tar","toObject","id"],"mappings":";;;;;;;;;AAKO,MAAMA,QAAN,CAAe;AACpBC,EAAAA,WAAW;AACT;AACJ;AACA;AACaC,EAAAA,GAJA;AAMT;AACJ;AACA;AACaC,EAAAA,eATA,EAWAC,KAXA;AAaT;AACJ;AACA;AACaC,EAAAA,OAhBA;AAkBT;AACJ;AACA;AACA;AACA;AACaC,EAAAA,IAvBA;AAyBT;AACJ;AACA;AACaC,EAAAA,SAAiB,GAAGC,IAAI,CAACC,GAAL,EA5BpB,EA6BT;AAAA,SAzBSP,GAyBT,GAzBSA,GAyBT;AAAA,SApBSC,eAoBT,GApBSA,eAoBT;AAAA,SAlBSC,KAkBT,GAlBSA,KAkBT;AAAA,SAbSC,OAaT,GAbSA,OAaT;AAAA,SANSC,IAMT,GANSA,IAMT;AAAA,SADSC,SACT,GADSA,SACT;AAAE;;AAEO,MAAPG,OAAO,GAAG;AACZ,WAAO,KAAKP,eAAZ;AACD;AAED;AACF;AACA;;;AACU,MAAJQ,IAAI,GAAW;AACjB,WAAO,KAAKT,GAAL,CAASS,IAAhB;AACD;AAED;AACF;AACA;;;AACiB,MAAXC,WAAW,GAAG;AAChB,WAAO,KAAKV,GAAL,CAASU,WAAhB;AACD;AAED;AACF;AACA;;;AACiB,MAAXC,WAAW,GAAW;AACxB,WAAO,KAAKX,GAAL,CAASW,WAAT,IAAwB,KAAKP,IAAL,CAAUQ,QAAzC;AACD;AAED;AACF;AACA;;;AACEC,EAAAA,GAAG,GAAG,CAAE;;AAERC,EAAAA,QAAQ,GAAmB;AACzB,WAAO;AACLL,MAAAA,IAAI,EAAE,KAAKA,IADN;AAELC,MAAAA,WAAW,EAAE,KAAKA,WAFb;AAGLC,MAAAA,WAAW,EAAE,KAAKA,WAHb;AAILH,MAAAA,OAAO,EAAE,KAAKP,eAAL,CAAqBQ,IAJzB;AAKLL,MAAAA,IAAI,EAAE;AACJW,QAAAA,EAAE,EAAE,KAAKX,IAAL,CAAUQ,QADV;AAEJH,QAAAA,IAAI,EAAE,KAAKL,IAAL,CAAUK;AAFZ,OALD;AASLP,MAAAA,KAAK,EAAE,KAAKA;AATP,KAAP;AAWD;;AA1EmB","sourcesContent":["import type { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport type { BuildTask } from '../build-task';\nimport type { ArtifactStorageResolver } from '../storage';\nimport type { ArtifactDefinition } from './artifact-definition';\n\nexport class Artifact {\n constructor(\n /**\n * definition of the artifact.\n */\n readonly def: ArtifactDefinition,\n\n /**\n * storage resolver. can be used to replace where artifacts are stored.\n */\n readonly storageResolver: ArtifactStorageResolver,\n\n readonly files: ArtifactFiles,\n\n /**\n * join this with `this.paths` to get the absolute paths\n */\n readonly rootDir: string,\n\n /**\n * the declaring task.\n * todo: change this to taskDescriptor that has only the metadata of the task, so it could be\n * saved into the model.\n */\n readonly task: BuildTask,\n\n /**\n * timestamp of the artifact creation.\n */\n readonly timestamp: number = Date.now()\n ) {}\n\n get storage() {\n return this.storageResolver;\n }\n\n /**\n * name of the artifact.\n */\n get name(): string {\n return this.def.name;\n }\n\n /**\n * description of the artifact.\n */\n get description() {\n return this.def.description;\n }\n\n /**\n * aspect id (string) that generated the artifact\n */\n get generatedBy(): string {\n return this.def.generatedBy || this.task.aspectId;\n }\n\n /**\n * archive all artifact files into a tar.\n */\n tar() {}\n\n toObject(): ArtifactObject {\n return {\n name: this.name,\n description: this.description,\n generatedBy: this.generatedBy,\n storage: this.storageResolver.name,\n task: {\n id: this.task.aspectId,\n name: this.task.name,\n },\n files: this.files,\n };\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- export { ArtifactDefinition } from './artifact-definition';
1
+ export { ArtifactDefinition, ArtifactModelDefinition } from './artifact-definition';
2
2
  export { ExtensionArtifact } from './extension-artifact';
3
3
  export { Artifact } from './artifact';
4
4
  export { ArtifactList } from './artifact-list';
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "ArtifactMap", {
33
33
  return _artifactFactory().ArtifactMap;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "ArtifactModelDefinition", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _artifactDefinition().ArtifactModelDefinition;
40
+ }
41
+ });
36
42
  Object.defineProperty(exports, "ExtensionArtifact", {
37
43
  enumerable: true,
38
44
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { ArtifactDefinition } from './artifact-definition';\nexport { ExtensionArtifact } from './extension-artifact';\nexport { Artifact } from './artifact';\nexport { ArtifactList } from './artifact-list';\nexport { ArtifactFactory, ArtifactMap } from './artifact-factory';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { ArtifactDefinition, ArtifactModelDefinition } from './artifact-definition';\nexport { ExtensionArtifact } from './extension-artifact';\nexport { Artifact } from './artifact';\nexport { ArtifactList } from './artifact-list';\nexport { ArtifactFactory, ArtifactMap } from './artifact-factory';\n"]}
@@ -14,12 +14,10 @@ import { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/
14
14
  import { GeneratorMain } from '@teambit/generator';
15
15
  import { BuilderService, BuilderServiceOptions } from './builder.service';
16
16
  import { BuildTask } from './build-task';
17
- import { StorageResolver } from './storage';
18
17
  import { TaskResultsList } from './task-results-list';
19
18
  import { AspectData, PipelineReport } from './build-pipeline-result-list';
20
19
  import { Serializable } from './types';
21
20
  export declare type TaskSlot = SlotRegistry<BuildTask[]>;
22
- export declare type StorageResolverSlot = SlotRegistry<StorageResolver>;
23
21
  export declare type BuilderData = {
24
22
  pipeline: PipelineReport[];
25
23
  artifacts: ArtifactObject[] | undefined;
@@ -37,19 +35,10 @@ export declare class BuilderMain {
37
35
  private buildTaskSlot;
38
36
  private tagTaskSlot;
39
37
  private snapTaskSlot;
40
- private storageResolversSlot;
41
- constructor(envs: EnvsMain, workspace: Workspace, buildService: BuilderService, tagService: BuilderService, snapService: BuilderService, scope: ScopeMain, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, buildTaskSlot: TaskSlot, tagTaskSlot: TaskSlot, snapTaskSlot: TaskSlot, storageResolversSlot: StorageResolverSlot);
38
+ constructor(envs: EnvsMain, workspace: Workspace, buildService: BuilderService, tagService: BuilderService, snapService: BuilderService, scope: ScopeMain, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, buildTaskSlot: TaskSlot, tagTaskSlot: TaskSlot, snapTaskSlot: TaskSlot);
42
39
  private storeArtifacts;
43
40
  private pipelineResultsToBuilderData;
44
41
  tagListener(components: Component[], options?: OnTagOpts, isolateOptions?: IsolateComponentsOptions): Promise<OnTagResults>;
45
- /**
46
- * register a new storage resolver.
47
- */
48
- registerStorageResolver(storageResolver: StorageResolver): this;
49
- /**
50
- * get storage resolver by name. otherwise, returns default.
51
- */
52
- getStorageResolver(name: string): StorageResolver | undefined;
53
42
  getArtifactsVinylByExtension(component: Component, aspectName: string): Promise<ArtifactVinyl[]>;
54
43
  getArtifactsVinylByExtensionAndName(component: Component, aspectName: string, name: string): Promise<ArtifactVinyl[]>;
55
44
  getArtifactsByName(component: Component, name: string): ArtifactObject[] | undefined;
@@ -93,7 +82,7 @@ export declare class BuilderMain {
93
82
  * this pipeline is running once the build-pipeline has completed.
94
83
  */
95
84
  registerSnapTasks(tasks: BuildTask[]): this;
96
- static slots: (((registerFn: () => string) => SlotRegistry<BuildTask>) | ((registerFn: () => string) => SlotRegistry<StorageResolver>))[];
85
+ static slots: ((registerFn: () => string) => SlotRegistry<BuildTask>)[];
97
86
  static runtime: import("@teambit/harmony").RuntimeDefinition;
98
87
  static dependencies: import("@teambit/harmony").Aspect[];
99
88
  static provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator]: [
@@ -106,10 +95,5 @@ export declare class BuilderMain {
106
95
  AspectLoaderMain,
107
96
  GraphqlMain,
108
97
  GeneratorMain
109
- ], config: any, [buildTaskSlot, storageResolversSlot, tagTaskSlot, snapTaskSlot]: [
110
- TaskSlot,
111
- StorageResolverSlot,
112
- TaskSlot,
113
- TaskSlot
114
- ]): Promise<BuilderMain>;
98
+ ], config: any, [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]): Promise<BuilderMain>;
115
99
  }
@@ -135,6 +135,16 @@ function _isolator() {
135
135
  return data;
136
136
  }
137
137
 
138
+ function _artifactFiles() {
139
+ const data = require("@teambit/legacy/dist/consumer/component/sources/artifact-files");
140
+
141
+ _artifactFiles = function () {
142
+ return data;
143
+ };
144
+
145
+ return data;
146
+ }
147
+
138
148
  function _generator() {
139
149
  const data = require("@teambit/generator");
140
150
 
@@ -240,7 +250,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
240
250
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
241
251
 
242
252
  class BuilderMain {
243
- constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, buildTaskSlot, tagTaskSlot, snapTaskSlot, storageResolversSlot) {
253
+ constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, buildTaskSlot, tagTaskSlot, snapTaskSlot) {
244
254
  this.envs = envs;
245
255
  this.workspace = workspace;
246
256
  this.buildService = buildService;
@@ -252,7 +262,6 @@ class BuilderMain {
252
262
  this.buildTaskSlot = buildTaskSlot;
253
263
  this.tagTaskSlot = tagTaskSlot;
254
264
  this.snapTaskSlot = snapTaskSlot;
255
- this.storageResolversSlot = storageResolversSlot;
256
265
  }
257
266
 
258
267
  async storeArtifacts(tasksResults) {
@@ -313,23 +322,6 @@ class BuilderMain {
313
322
  builderDataMap,
314
323
  pipeResults
315
324
  };
316
- }
317
- /**
318
- * register a new storage resolver.
319
- */
320
-
321
-
322
- registerStorageResolver(storageResolver) {
323
- this.storageResolversSlot.register(storageResolver);
324
- return this;
325
- }
326
- /**
327
- * get storage resolver by name. otherwise, returns default.
328
- */
329
-
330
-
331
- getStorageResolver(name) {
332
- return this.storageResolversSlot.values().find(storageResolver => storageResolver.name === name);
333
325
  } // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props
334
326
 
335
327
 
@@ -375,9 +367,16 @@ class BuilderMain {
375
367
  }
376
368
 
377
369
  getBuilderData(component) {
378
- var _component$state$aspe;
379
-
380
- return (_component$state$aspe = component.state.aspects.get(_builder().BuilderAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : _component$state$aspe.data;
370
+ var _component$state$aspe, _data$artifacts;
371
+
372
+ const data = (_component$state$aspe = component.state.aspects.get(_builder().BuilderAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : _component$state$aspe.data;
373
+ if (!data) return undefined;
374
+ (_data$artifacts = data.artifacts) === null || _data$artifacts === void 0 ? void 0 : _data$artifacts.forEach(artifact => {
375
+ if (!(artifact.files instanceof _artifactFiles().ArtifactFiles)) {
376
+ artifact.files = _artifactFiles().ArtifactFiles.fromObject(artifact.files);
377
+ }
378
+ });
379
+ return data;
381
380
  }
382
381
  /**
383
382
  * build given components for release.
@@ -469,14 +468,14 @@ class BuilderMain {
469
468
  return this;
470
469
  }
471
470
 
472
- static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator], config, [buildTaskSlot, storageResolversSlot, tagTaskSlot, snapTaskSlot]) {
473
- const artifactFactory = new (_artifactFactory().ArtifactFactory)(storageResolversSlot);
471
+ static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator], config, [buildTaskSlot, tagTaskSlot, snapTaskSlot]) {
472
+ const artifactFactory = new (_artifactFactory().ArtifactFactory)();
474
473
  const logger = loggerExt.createLogger(_builder().BuilderAspect.id);
475
474
  const buildService = new (_builder3().BuilderService)(isolator, logger, buildTaskSlot, 'getBuildPipe', 'build', artifactFactory, scope);
476
475
  envs.registerService(buildService);
477
476
  const tagService = new (_builder3().BuilderService)(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);
478
477
  const snapService = new (_builder3().BuilderService)(isolator, logger, snapTaskSlot, 'getSnapPipe', 'snap', artifactFactory, scope);
479
- const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, buildTaskSlot, tagTaskSlot, snapTaskSlot, storageResolversSlot);
478
+ const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, buildTaskSlot, tagTaskSlot, snapTaskSlot);
480
479
  graphql.register((0, _builder2().builderSchema)(builder));
481
480
  generator.registerComponentTemplate([_buildTask().buildTaskTemplate]);
482
481
  const func = builder.tagListener.bind(builder);
@@ -494,7 +493,7 @@ class BuilderMain {
494
493
  }
495
494
 
496
495
  exports.BuilderMain = BuilderMain;
497
- (0, _defineProperty2().default)(BuilderMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
496
+ (0, _defineProperty2().default)(BuilderMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
498
497
  (0, _defineProperty2().default)(BuilderMain, "runtime", _cli().MainRuntime);
499
498
  (0, _defineProperty2().default)(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect, _generator().GeneratorAspect]);
500
499
 
@@ -1 +1 @@
1
- {"version":3,"sources":["builder.main.runtime.ts"],"names":["BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","buildTaskSlot","tagTaskSlot","snapTaskSlot","storageResolversSlot","storeArtifacts","tasksResults","artifacts","flatMap","t","storeP","map","artifactMap","Promise","all","toArray","component","artifactList","store","err","ArtifactStorageError","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","id","pipelineReport","getPipelineReportOfComponent","artifactsData","getArtifactsDataOfComponent","pipeline","tagListener","options","isolateOptions","pipeResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","envsExecutionResults","build","emptyRootDir","skipTests","throwErrorsIfExist","allTasksResults","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","registerStorageResolver","storageResolver","register","getStorageResolver","name","values","find","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","legacyScope","getArtifactsVinylByExtensionAndName","getArtifactsByExtensionAndName","getArtifactsByName","getArtifacts","filter","artifact","task","getDataByAspect","getBuilderData","data","aspectData","aspectId","state","aspects","get","BuilderAspect","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","buildResult","runOnce","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","tasks","registerDeployTasks","registerTagTasks","registerSnapTasks","provider","cli","loggerExt","graphql","generator","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","consumer","isLegacy","commands","BuilderCmd","ArtifactsCmd","unregister","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"mappings":"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","sourcesContent":["import { flatten } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain, OnTagResults } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { OnTagOpts } from '@teambit/legacy/dist/scope/scope';\nimport { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { ArtifactList } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask } from './build-task';\nimport { StorageResolver } from './storage';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { Serializable } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\n\nexport type StorageResolverSlot = SlotRegistry<StorageResolver>;\n\nexport type BuilderData = {\n pipeline: PipelineReport[];\n artifacts: ArtifactObject[] | undefined;\n aspectsData: AspectData[];\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot,\n private storageResolversSlot: StorageResolverSlot\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n const storeP = artifacts.map(async (artifactMap: ComponentMap<ArtifactList>) => {\n return Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n return await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component);\n }\n })\n );\n });\n await Promise.all(storeP);\n }\n\n private pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<BuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<BuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifactsData = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts: artifactsData, aspectsData };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap } = options;\n const envsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n { skipTests: options.skipTests }\n );\n if (throwOnError && !forceDeploy) envsExecutionResults.throwErrorsIfExist();\n const allTasksResults = [...envsExecutionResults.tasksResults];\n pipeResults.push(envsExecutionResults);\n if (forceDeploy || (!disableTagAndSnapPipelines && !envsExecutionResults.hasErrors())) {\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, isolateOptions)\n : await this.runTagTasks(components, isolateOptions);\n if (throwOnError) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n return { builderDataMap, pipeResults };\n }\n\n /**\n * register a new storage resolver.\n */\n registerStorageResolver(storageResolver: StorageResolver) {\n this.storageResolversSlot.register(storageResolver);\n return this;\n }\n\n /**\n * get storage resolver by name. otherwise, returns default.\n */\n getStorageResolver(name: string): StorageResolver | undefined {\n return this.storageResolversSlot.values().find((storageResolver) => storageResolver.name === name);\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByExtension(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtension(component, aspectName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id.scope as string, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndName(component, aspectName, name);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id.scope as string, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.name === name);\n }\n\n getArtifactsByExtension(component: Component, aspectName: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName);\n }\n\n getArtifactsByExtensionAndName(component: Component, aspectName: string, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.name === name);\n }\n\n getDataByAspect(component: Component, aspectName: string): Serializable | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: Component): ArtifactObject[] | undefined {\n return this.getBuilderData(component)?.artifacts;\n }\n\n getBuilderData(component: Component): BuilderData | undefined {\n return component.state.aspects.get(BuilderAspect.id)?.data as BuilderData | undefined;\n }\n\n /**\n * build given components for release.\n * for each one of the envs it runs a series of tasks.\n * in case of an error in a task, it stops the execution of that env and continue to the next\n * env. at the end, the results contain the data and errors per env.\n */\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = { seedersOnly: isolateOptions?.seedersOnly, ...(builderOptions || {}) };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(components: Component[], isolateOptions?: IsolateComponentsOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, { seedersOnly: isolateOptions?.seedersOnly });\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], isolateOptions?: IsolateComponentsOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, { seedersOnly: isolateOptions?.seedersOnly });\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n static slots = [\n Slot.withType<BuildTask>(),\n Slot.withType<StorageResolver>(),\n Slot.withType<BuildTask>(),\n Slot.withType<BuildTask>(),\n ];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain\n ],\n config,\n [buildTaskSlot, storageResolversSlot, tagTaskSlot, snapTaskSlot]: [\n TaskSlot,\n StorageResolverSlot,\n TaskSlot,\n TaskSlot\n ]\n ) {\n const artifactFactory = new ArtifactFactory(storageResolversSlot);\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot,\n storageResolversSlot\n );\n\n graphql.register(builderSchema(builder));\n generator.registerComponentTemplate([buildTaskTemplate]);\n const func = builder.tagListener.bind(builder);\n if (scope) scope.onTag(func);\n if (workspace && !workspace.consumer.isLegacy) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.unregister('build');\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"]}
1
+ {"version":3,"sources":["builder.main.runtime.ts"],"names":["BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","buildTaskSlot","tagTaskSlot","snapTaskSlot","storeArtifacts","tasksResults","artifacts","flatMap","t","storeP","map","artifactMap","Promise","all","toArray","component","artifactList","store","err","ArtifactStorageError","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","id","pipelineReport","getPipelineReportOfComponent","artifactsData","getArtifactsDataOfComponent","pipeline","tagListener","options","isolateOptions","pipeResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","envsExecutionResults","build","emptyRootDir","skipTests","throwErrorsIfExist","allTasksResults","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","legacyScope","getArtifactsVinylByExtensionAndName","name","getArtifactsByExtensionAndName","getArtifactsByName","getArtifacts","filter","artifact","task","getDataByAspect","getBuilderData","data","find","aspectData","aspectId","state","aspects","get","BuilderAspect","undefined","forEach","ArtifactFiles","fromObject","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","buildResult","runOnce","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","tasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","provider","cli","loggerExt","graphql","generator","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","consumer","isLegacy","commands","BuilderCmd","ArtifactsCmd","unregister","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"mappings":"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","sourcesContent":["import { flatten } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain, OnTagResults } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { OnTagOpts } from '@teambit/legacy/dist/scope/scope';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { ArtifactList } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { Serializable } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\n\nexport type BuilderData = {\n pipeline: PipelineReport[];\n artifacts: ArtifactObject[] | undefined;\n aspectsData: AspectData[];\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n const storeP = artifacts.map(async (artifactMap: ComponentMap<ArtifactList>) => {\n return Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n return await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component);\n }\n })\n );\n });\n await Promise.all(storeP);\n }\n\n private pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<BuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<BuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifactsData = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts: artifactsData, aspectsData };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap } = options;\n const envsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n { skipTests: options.skipTests }\n );\n if (throwOnError && !forceDeploy) envsExecutionResults.throwErrorsIfExist();\n const allTasksResults = [...envsExecutionResults.tasksResults];\n pipeResults.push(envsExecutionResults);\n if (forceDeploy || (!disableTagAndSnapPipelines && !envsExecutionResults.hasErrors())) {\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, isolateOptions)\n : await this.runTagTasks(components, isolateOptions);\n if (throwOnError) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n return { builderDataMap, pipeResults };\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByExtension(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtension(component, aspectName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id.scope as string, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndName(component, aspectName, name);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id.scope as string, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.name === name);\n }\n\n getArtifactsByExtension(component: Component, aspectName: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName);\n }\n\n getArtifactsByExtensionAndName(component: Component, aspectName: string, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.name === name);\n }\n\n getDataByAspect(component: Component, aspectName: string): Serializable | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: Component): ArtifactObject[] | undefined {\n return this.getBuilderData(component)?.artifacts;\n }\n\n getBuilderData(component: Component): BuilderData | undefined {\n const data = component.state.aspects.get(BuilderAspect.id)?.data as BuilderData | undefined;\n if (!data) return undefined;\n data.artifacts?.forEach((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifact.files = ArtifactFiles.fromObject(artifact.files);\n }\n });\n return data;\n }\n\n /**\n * build given components for release.\n * for each one of the envs it runs a series of tasks.\n * in case of an error in a task, it stops the execution of that env and continue to the next\n * env. at the end, the results contain the data and errors per env.\n */\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = { seedersOnly: isolateOptions?.seedersOnly, ...(builderOptions || {}) };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(components: Component[], isolateOptions?: IsolateComponentsOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, { seedersOnly: isolateOptions?.seedersOnly });\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], isolateOptions?: IsolateComponentsOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, { seedersOnly: isolateOptions?.seedersOnly });\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n\n graphql.register(builderSchema(builder));\n generator.registerComponentTemplate([buildTaskTemplate]);\n const func = builder.tagListener.bind(builder);\n if (scope) scope.onTag(func);\n if (workspace && !workspace.consumer.isLegacy) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.unregister('build');\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"]}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export { BuildContext, BuildTask, BuiltTaskResult, TaskLocation, BuildTaskHelper
4
4
  export type { BuilderMain, BuilderData } from './builder.main.runtime';
5
5
  export type { PipelineReport } from './build-pipeline-result-list';
6
6
  export { BuilderAspect } from './builder.aspect';
7
- export { StorageResolver } from './storage';
8
- export { Artifact, ArtifactList, ArtifactFactory, ArtifactDefinition } from './artifact';
7
+ export { WholeArtifactStorageResolver, FileStorageResolver, ArtifactStorageResolver } from './storage';
8
+ export { Artifact, ArtifactList, ArtifactFactory, ArtifactDefinition, ArtifactModelDefinition } from './artifact';
9
9
  export { TaskResultsList } from './task-results-list';
10
+ export { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';
package/dist/index.js CHANGED
@@ -27,6 +27,24 @@ Object.defineProperty(exports, "ArtifactList", {
27
27
  return _artifact().ArtifactList;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "ArtifactModelDefinition", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _artifact().ArtifactModelDefinition;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "ArtifactStorageResolver", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _storage().ArtifactStorageResolver;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "ArtifactVinyl", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _artifact2().ArtifactVinyl;
46
+ }
47
+ });
30
48
  Object.defineProperty(exports, "BuildContext", {
31
49
  enumerable: true,
32
50
  get: function () {
@@ -69,10 +87,10 @@ Object.defineProperty(exports, "ComponentResult", {
69
87
  return _types().ComponentResult;
70
88
  }
71
89
  });
72
- Object.defineProperty(exports, "StorageResolver", {
90
+ Object.defineProperty(exports, "FileStorageResolver", {
73
91
  enumerable: true,
74
92
  get: function () {
75
- return _storage().StorageResolver;
93
+ return _storage().FileStorageResolver;
76
94
  }
77
95
  });
78
96
  Object.defineProperty(exports, "TaskLocation", {
@@ -93,6 +111,12 @@ Object.defineProperty(exports, "TaskResultsList", {
93
111
  return _taskResultsList().TaskResultsList;
94
112
  }
95
113
  });
114
+ Object.defineProperty(exports, "WholeArtifactStorageResolver", {
115
+ enumerable: true,
116
+ get: function () {
117
+ return _storage().WholeArtifactStorageResolver;
118
+ }
119
+ });
96
120
 
97
121
  function _buildPipe() {
98
122
  const data = require("./build-pipe");
@@ -164,4 +188,14 @@ function _taskResultsList() {
164
188
  return data;
165
189
  }
166
190
 
191
+ function _artifact2() {
192
+ const data = require("@teambit/legacy/dist/consumer/component/sources/artifact");
193
+
194
+ _artifact2 = function () {
195
+ return data;
196
+ };
197
+
198
+ return data;
199
+ }
200
+
167
201
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { BuildPipe } from './build-pipe';\nexport { ComponentResult, TaskMetadata } from './types';\nexport { BuildContext, BuildTask, BuiltTaskResult, TaskLocation, BuildTaskHelper } from './build-task';\nexport type { BuilderMain, BuilderData } from './builder.main.runtime';\nexport type { PipelineReport } from './build-pipeline-result-list';\nexport { BuilderAspect } from './builder.aspect';\nexport { StorageResolver } from './storage';\nexport { Artifact, ArtifactList, ArtifactFactory, ArtifactDefinition } from './artifact';\nexport { TaskResultsList } from './task-results-list';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { BuildPipe } from './build-pipe';\nexport { ComponentResult, TaskMetadata } from './types';\nexport { BuildContext, BuildTask, BuiltTaskResult, TaskLocation, BuildTaskHelper } from './build-task';\nexport type { BuilderMain, BuilderData } from './builder.main.runtime';\nexport type { PipelineReport } from './build-pipeline-result-list';\nexport { BuilderAspect } from './builder.aspect';\nexport { WholeArtifactStorageResolver, FileStorageResolver, ArtifactStorageResolver } from './storage';\nexport { Artifact, ArtifactList, ArtifactFactory, ArtifactDefinition, ArtifactModelDefinition } from './artifact';\nexport { TaskResultsList } from './task-results-list';\nexport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Component } from '@teambit/component';
2
- import { StorageResolver } from './storage-resolver';
3
- import type { ArtifactList } from '../artifact';
4
- export declare class DefaultResolver implements StorageResolver {
2
+ import { WholeArtifactStorageResolver } from './storage-resolver';
3
+ import type { Artifact } from '../artifact';
4
+ export declare class DefaultResolver implements WholeArtifactStorageResolver {
5
5
  name: string;
6
- store(component: Component, artifactList: ArtifactList): Promise<void>;
6
+ store(component: Component, artifact: Artifact): Promise<void>;
7
7
  }
@@ -24,10 +24,8 @@ class DefaultResolver {
24
24
  (0, _defineProperty2().default)(this, "name", 'default');
25
25
  }
26
26
 
27
- async store(component, artifactList) {
28
- artifactList.artifacts.forEach(artifact => {
29
- artifact.files.populateVinylsFromPaths(artifact.rootDir);
30
- });
27
+ async store(component, artifact) {
28
+ artifact.files.populateVinylsFromPaths(artifact.rootDir);
31
29
  }
32
30
 
33
31
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["default-resolver.ts"],"names":["DefaultResolver","store","component","artifactList","artifacts","forEach","artifact","files","populateVinylsFromPaths","rootDir"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,eAAN,CAAiD;AAAA;AAAA,kDAC/C,SAD+C;AAAA;;AAG3C,QAALC,KAAK,CAACC,SAAD,EAAuBC,YAAvB,EAAmD;AAC5DA,IAAAA,YAAY,CAACC,SAAb,CAAuBC,OAAvB,CAAgCC,QAAD,IAAc;AAC3CA,MAAAA,QAAQ,CAACC,KAAT,CAAeC,uBAAf,CAAuCF,QAAQ,CAACG,OAAhD;AACD,KAFD;AAGD;;AAPqD","sourcesContent":["import { Component } from '@teambit/component';\nimport { StorageResolver } from './storage-resolver';\nimport type { ArtifactList } from '../artifact';\n\nexport class DefaultResolver implements StorageResolver {\n name = 'default';\n\n async store(component: Component, artifactList: ArtifactList) {\n artifactList.artifacts.forEach((artifact) => {\n artifact.files.populateVinylsFromPaths(artifact.rootDir);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["default-resolver.ts"],"names":["DefaultResolver","store","component","artifact","files","populateVinylsFromPaths","rootDir"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIO,MAAMA,eAAN,CAA8D;AAAA;AAAA,kDAC5D,SAD4D;AAAA;;AAGxD,QAALC,KAAK,CAACC,SAAD,EAAuBC,QAAvB,EAA2C;AACpDA,IAAAA,QAAQ,CAACC,KAAT,CAAeC,uBAAf,CAAuCF,QAAQ,CAACG,OAAhD;AACD;;AALkE","sourcesContent":["import { Component } from '@teambit/component';\nimport { WholeArtifactStorageResolver } from './storage-resolver';\nimport type { Artifact } from '../artifact';\n\nexport class DefaultResolver implements WholeArtifactStorageResolver {\n name = 'default';\n\n async store(component: Component, artifact: Artifact) {\n artifact.files.populateVinylsFromPaths(artifact.rootDir);\n }\n}\n"]}
@@ -1,2 +1,2 @@
1
- export { StorageResolver } from './storage-resolver';
1
+ export { WholeArtifactStorageResolver, ArtifactStorageResolver, FileStorageResolver } from './storage-resolver';
2
2
  export { DefaultResolver } from './default-resolver';
@@ -3,16 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "ArtifactStorageResolver", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _storageResolver().ArtifactStorageResolver;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "DefaultResolver", {
7
13
  enumerable: true,
8
14
  get: function () {
9
15
  return _defaultResolver().DefaultResolver;
10
16
  }
11
17
  });
12
- Object.defineProperty(exports, "StorageResolver", {
18
+ Object.defineProperty(exports, "FileStorageResolver", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _storageResolver().FileStorageResolver;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "WholeArtifactStorageResolver", {
13
25
  enumerable: true,
14
26
  get: function () {
15
- return _storageResolver().StorageResolver;
27
+ return _storageResolver().WholeArtifactStorageResolver;
16
28
  }
17
29
  });
18
30
 
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { StorageResolver } from './storage-resolver';\nexport { DefaultResolver } from './default-resolver';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export { WholeArtifactStorageResolver, ArtifactStorageResolver, FileStorageResolver } from './storage-resolver';\nexport { DefaultResolver } from './default-resolver';\n"]}
@@ -1,15 +1,26 @@
1
1
  import { Component } from '@teambit/component';
2
- import { ArtifactList } from '../artifact';
2
+ import { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';
3
+ import { Artifact } from '../artifact';
3
4
  export declare type StoreResult = {
4
5
  [path: string]: string;
5
6
  };
6
- export interface StorageResolver {
7
+ interface BaseStorageResolver {
7
8
  /**
8
9
  * name of the storage resolver.
9
10
  */
10
11
  name: string;
12
+ }
13
+ export interface WholeArtifactStorageResolver extends BaseStorageResolver {
14
+ /**
15
+ * store artifacts in the storage.
16
+ */
17
+ store(component: Component, artifact: Artifact): Promise<StoreResult | undefined | void>;
18
+ }
19
+ export interface FileStorageResolver extends BaseStorageResolver {
11
20
  /**
12
21
  * store artifacts in the storage.
13
22
  */
14
- store(component: Component, artifacts: ArtifactList): Promise<void>;
23
+ storeFile(component: Component, artifact: Artifact, file: ArtifactVinyl): Promise<string | undefined | void>;
15
24
  }
25
+ export declare type ArtifactStorageResolver = FileStorageResolver | WholeArtifactStorageResolver;
26
+ export {};
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/builder",
3
- "version": "0.0.580",
3
+ "version": "0.0.581",
4
4
  "homepage": "https://bit.dev/teambit/pipelines/builder",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.pipelines",
8
8
  "name": "builder",
9
- "version": "0.0.580"
9
+ "version": "0.0.581"
10
10
  },
11
11
  "dependencies": {
12
12
  "p-map-series": "2.1.0",
@@ -22,19 +22,19 @@
22
22
  "globby": "11.0.1",
23
23
  "@babel/runtime": "7.12.18",
24
24
  "core-js": "^3.0.0",
25
- "@teambit/component": "0.0.580",
26
- "@teambit/envs": "0.0.580",
27
- "@teambit/logger": "0.0.487",
28
- "@teambit/tester": "0.0.580",
29
- "@teambit/isolator": "0.0.580",
30
- "@teambit/cli": "0.0.399",
31
- "@teambit/workspace": "0.0.580",
32
- "@teambit/aspect-loader": "0.0.580",
33
- "@teambit/generator": "0.0.580",
34
- "@teambit/graphql": "0.0.580",
35
- "@teambit/scope": "0.0.580",
36
- "@teambit/bit-error": "0.0.385",
37
- "@teambit/component-id": "0.0.389"
25
+ "@teambit/component": "0.0.581",
26
+ "@teambit/envs": "0.0.581",
27
+ "@teambit/logger": "0.0.488",
28
+ "@teambit/tester": "0.0.581",
29
+ "@teambit/isolator": "0.0.581",
30
+ "@teambit/cli": "0.0.400",
31
+ "@teambit/workspace": "0.0.581",
32
+ "@teambit/aspect-loader": "0.0.581",
33
+ "@teambit/generator": "0.0.581",
34
+ "@teambit/graphql": "0.0.581",
35
+ "@teambit/scope": "0.0.581",
36
+ "@teambit/bit-error": "0.0.386",
37
+ "@teambit/component-id": "0.0.390"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/lodash": "4.14.165",
@@ -46,10 +46,10 @@
46
46
  "@types/jest": "^26.0.0",
47
47
  "@types/react-dom": "^17.0.5",
48
48
  "@types/node": "12.20.4",
49
- "@teambit/pipelines.aspect-docs.builder": "0.0.121"
49
+ "@teambit/pipelines.aspect-docs.builder": "0.0.122"
50
50
  },
51
51
  "peerDependencies": {
52
- "@teambit/legacy": "1.0.185",
52
+ "@teambit/legacy": "1.0.186",
53
53
  "react-dom": "^16.8.0 || ^17.0.0",
54
54
  "react": "^16.8.0 || ^17.0.0"
55
55
  },
@@ -77,7 +77,7 @@
77
77
  "react": "-"
78
78
  },
79
79
  "peerDependencies": {
80
- "@teambit/legacy": "1.0.185",
80
+ "@teambit/legacy": "1.0.186",
81
81
  "react-dom": "^16.8.0 || ^17.0.0",
82
82
  "react": "^16.8.0 || ^17.0.0"
83
83
  }
@@ -1,13 +1,11 @@
1
1
  import { Component } from '@teambit/component';
2
- import { StorageResolver } from './storage-resolver';
3
- import type { ArtifactList } from '../artifact';
2
+ import { WholeArtifactStorageResolver } from './storage-resolver';
3
+ import type { Artifact } from '../artifact';
4
4
 
5
- export class DefaultResolver implements StorageResolver {
5
+ export class DefaultResolver implements WholeArtifactStorageResolver {
6
6
  name = 'default';
7
7
 
8
- async store(component: Component, artifactList: ArtifactList) {
9
- artifactList.artifacts.forEach((artifact) => {
10
- artifact.files.populateVinylsFromPaths(artifact.rootDir);
11
- });
8
+ async store(component: Component, artifact: Artifact) {
9
+ artifact.files.populateVinylsFromPaths(artifact.rootDir);
12
10
  }
13
11
  }
package/storage/index.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { StorageResolver } from './storage-resolver';
1
+ export { WholeArtifactStorageResolver, ArtifactStorageResolver, FileStorageResolver } from './storage-resolver';
2
2
  export { DefaultResolver } from './default-resolver';
@@ -1,18 +1,30 @@
1
1
  import { Component } from '@teambit/component';
2
- import { ArtifactList } from '../artifact';
2
+ import { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';
3
+ import { Artifact } from '../artifact';
3
4
 
4
5
  export type StoreResult = {
5
6
  [path: string]: string;
6
7
  };
7
8
 
8
- export interface StorageResolver {
9
+ interface BaseStorageResolver {
9
10
  /**
10
11
  * name of the storage resolver.
11
12
  */
12
13
  name: string;
14
+ }
13
15
 
16
+ export interface WholeArtifactStorageResolver extends BaseStorageResolver {
14
17
  /**
15
18
  * store artifacts in the storage.
16
19
  */
17
- store(component: Component, artifacts: ArtifactList): Promise<void>;
20
+ store(component: Component, artifact: Artifact): Promise<StoreResult | undefined | void>;
18
21
  }
22
+
23
+ export interface FileStorageResolver extends BaseStorageResolver {
24
+ /**
25
+ * store artifacts in the storage.
26
+ */
27
+ storeFile(component: Component, artifact: Artifact, file: ArtifactVinyl): Promise<string | undefined | void>;
28
+ }
29
+
30
+ export type ArtifactStorageResolver = FileStorageResolver | WholeArtifactStorageResolver;