@teambit/builder 0.0.579 → 0.0.583
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifact/artifact-definition.ts +6 -0
- package/artifact/artifact-factory.ts +2 -12
- package/artifact/artifact-list.ts +60 -1
- package/artifact/artifact.ts +2 -2
- package/artifact/index.ts +1 -1
- package/dist/artifact/artifact-definition.d.ts +4 -0
- package/dist/artifact/artifact-factory.d.ts +0 -4
- package/dist/artifact/artifact-factory.js +1 -12
- package/dist/artifact/artifact-factory.js.map +1 -1
- package/dist/artifact/artifact-list.d.ts +15 -0
- package/dist/artifact/artifact-list.js +66 -1
- package/dist/artifact/artifact-list.js.map +1 -1
- package/dist/artifact/artifact.d.ts +4 -4
- package/dist/artifact/artifact.js.map +1 -1
- package/dist/artifact/index.d.ts +1 -1
- package/dist/artifact/index.js +6 -0
- package/dist/artifact/index.js.map +1 -1
- package/dist/builder.main.runtime.d.ts +3 -19
- package/dist/builder.main.runtime.js +25 -26
- package/dist/builder.main.runtime.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +36 -2
- package/dist/index.js.map +1 -1
- package/dist/storage/default-resolver.d.ts +4 -4
- package/dist/storage/default-resolver.js +2 -4
- package/dist/storage/default-resolver.js.map +1 -1
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +14 -2
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/storage-resolver.d.ts +14 -3
- package/package-tar/teambit-builder-0.0.583.tgz +0 -0
- package/package.json +18 -18
- package/storage/default-resolver.ts +5 -7
- package/storage/index.ts +1 -1
- package/storage/storage-resolver.ts +15 -3
- package/tsconfig.json +2 -2
- package/package-tar/teambit-builder-0.0.579.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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|
package/artifact/artifact.ts
CHANGED
|
@@ -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 {
|
|
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:
|
|
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
|
-
|
|
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","
|
|
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
|
-
|
|
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":";;;;;;;;;;;
|
|
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 {
|
|
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:
|
|
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:
|
|
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():
|
|
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 {
|
|
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"]}
|
package/dist/artifact/index.d.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';
|
package/dist/artifact/index.js
CHANGED
|
@@ -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":"
|
|
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
|
-
|
|
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: ((
|
|
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,
|
|
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
|
|
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
|
-
|
|
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,
|
|
473
|
-
const artifactFactory = new (_artifactFactory().ArtifactFactory)(
|
|
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
|
|
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()
|
|
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 {
|
|
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, "
|
|
90
|
+
Object.defineProperty(exports, "FileStorageResolver", {
|
|
73
91
|
enumerable: true,
|
|
74
92
|
get: function () {
|
|
75
|
-
return _storage().
|
|
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":"
|
|
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 {
|
|
3
|
-
import type {
|
|
4
|
-
export declare class DefaultResolver implements
|
|
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,
|
|
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,
|
|
28
|
-
|
|
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","
|
|
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"]}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { WholeArtifactStorageResolver, ArtifactStorageResolver, FileStorageResolver } from './storage-resolver';
|
|
2
2
|
export { DefaultResolver } from './default-resolver';
|
package/dist/storage/index.js
CHANGED
|
@@ -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, "
|
|
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().
|
|
27
|
+
return _storageResolver().WholeArtifactStorageResolver;
|
|
16
28
|
}
|
|
17
29
|
});
|
|
18
30
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
23
|
+
storeFile(component: Component, artifact: Artifact, file: ArtifactVinyl): Promise<string | undefined | void>;
|
|
15
24
|
}
|
|
25
|
+
export declare type ArtifactStorageResolver = FileStorageResolver | WholeArtifactStorageResolver;
|
|
26
|
+
export {};
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/builder",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.583",
|
|
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.
|
|
9
|
+
"version": "0.0.583"
|
|
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.
|
|
26
|
-
"@teambit/envs": "0.0.
|
|
27
|
-
"@teambit/logger": "0.0.
|
|
28
|
-
"@teambit/tester": "0.0.
|
|
29
|
-
"@teambit/isolator": "0.0.
|
|
30
|
-
"@teambit/cli": "0.0.
|
|
31
|
-
"@teambit/workspace": "0.0.
|
|
32
|
-
"@teambit/aspect-loader": "0.0.
|
|
33
|
-
"@teambit/generator": "0.0.
|
|
34
|
-
"@teambit/graphql": "0.0.
|
|
35
|
-
"@teambit/scope": "0.0.
|
|
36
|
-
"@teambit/bit-error": "0.0.
|
|
37
|
-
"@teambit/component-id": "0.0.
|
|
25
|
+
"@teambit/component": "0.0.583",
|
|
26
|
+
"@teambit/envs": "0.0.583",
|
|
27
|
+
"@teambit/logger": "0.0.488",
|
|
28
|
+
"@teambit/tester": "0.0.583",
|
|
29
|
+
"@teambit/isolator": "0.0.583",
|
|
30
|
+
"@teambit/cli": "0.0.400",
|
|
31
|
+
"@teambit/workspace": "0.0.583",
|
|
32
|
+
"@teambit/aspect-loader": "0.0.583",
|
|
33
|
+
"@teambit/generator": "0.0.583",
|
|
34
|
+
"@teambit/graphql": "0.0.583",
|
|
35
|
+
"@teambit/scope": "0.0.583",
|
|
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.
|
|
49
|
+
"@teambit/pipelines.aspect-docs.builder": "0.0.122"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@teambit/legacy": "1.0.
|
|
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.
|
|
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 {
|
|
3
|
-
import type {
|
|
2
|
+
import { WholeArtifactStorageResolver } from './storage-resolver';
|
|
3
|
+
import type { Artifact } from '../artifact';
|
|
4
4
|
|
|
5
|
-
export class DefaultResolver implements
|
|
5
|
+
export class DefaultResolver implements WholeArtifactStorageResolver {
|
|
6
6
|
name = 'default';
|
|
7
7
|
|
|
8
|
-
async store(component: Component,
|
|
9
|
-
|
|
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 {
|
|
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 {
|
|
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
|
-
|
|
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,
|
|
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;
|
package/tsconfig.json
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"skipLibCheck": true,
|
|
16
16
|
"moduleResolution": "node",
|
|
17
17
|
"esModuleInterop": true,
|
|
18
|
+
"resolveJsonModule": true,
|
|
18
19
|
"composite": true,
|
|
19
20
|
"emitDeclarationOnly": true,
|
|
20
21
|
"outDir": "dist",
|
|
@@ -25,8 +26,7 @@
|
|
|
25
26
|
"strict": true,
|
|
26
27
|
"noImplicitAny": false,
|
|
27
28
|
"rootDir": ".",
|
|
28
|
-
"preserveConstEnums": true
|
|
29
|
-
"resolveJsonModule": true
|
|
29
|
+
"preserveConstEnums": true
|
|
30
30
|
},
|
|
31
31
|
"exclude": [
|
|
32
32
|
"dist"
|
|
Binary file
|