@teambit/builder 0.0.571 → 0.0.575
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/dist/builder.main.runtime.d.ts +4 -2
- package/dist/builder.main.runtime.js +23 -2
- package/dist/builder.main.runtime.js.map +1 -1
- package/dist/templates/build-task/files/index-file.d.ts +2 -0
- package/dist/templates/build-task/files/index-file.js +15 -0
- package/dist/templates/build-task/files/index-file.js.map +1 -0
- package/dist/templates/build-task/files/task-file.d.ts +2 -0
- package/dist/templates/build-task/files/task-file.js +67 -0
- package/dist/templates/build-task/files/task-file.js.map +1 -0
- package/dist/templates/build-task/index.d.ts +2 -0
- package/dist/templates/build-task/index.js +45 -0
- package/dist/templates/build-task/index.js.map +1 -0
- package/package-tar/teambit-builder-0.0.575.tgz +0 -0
- package/package.json +18 -17
- package/templates/build-task/files/index-file.ts +5 -0
- package/templates/build-task/files/task-file.ts +58 -0
- package/templates/build-task/index.ts +22 -0
- package/package-tar/teambit-builder-0.0.571.tgz +0 -0
|
@@ -11,6 +11,7 @@ import { Workspace } from '@teambit/workspace';
|
|
|
11
11
|
import { IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';
|
|
12
12
|
import { OnTagOpts } from '@teambit/legacy/dist/scope/scope';
|
|
13
13
|
import { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';
|
|
14
|
+
import { GeneratorMain } from '@teambit/generator';
|
|
14
15
|
import { BuilderService, BuilderServiceOptions } from './builder.service';
|
|
15
16
|
import { BuildTask } from './build-task';
|
|
16
17
|
import { StorageResolver } from './storage';
|
|
@@ -95,7 +96,7 @@ export declare class BuilderMain {
|
|
|
95
96
|
static slots: (((registerFn: () => string) => SlotRegistry<BuildTask>) | ((registerFn: () => string) => SlotRegistry<StorageResolver>))[];
|
|
96
97
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
97
98
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
98
|
-
static provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql]: [
|
|
99
|
+
static provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator]: [
|
|
99
100
|
CLIMain,
|
|
100
101
|
EnvsMain,
|
|
101
102
|
Workspace,
|
|
@@ -103,7 +104,8 @@ export declare class BuilderMain {
|
|
|
103
104
|
IsolatorMain,
|
|
104
105
|
LoggerMain,
|
|
105
106
|
AspectLoaderMain,
|
|
106
|
-
GraphqlMain
|
|
107
|
+
GraphqlMain,
|
|
108
|
+
GeneratorMain
|
|
107
109
|
], config: any, [buildTaskSlot, storageResolversSlot, tagTaskSlot, snapTaskSlot]: [
|
|
108
110
|
TaskSlot,
|
|
109
111
|
StorageResolverSlot,
|
|
@@ -135,6 +135,16 @@ function _isolator() {
|
|
|
135
135
|
return data;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
function _generator() {
|
|
139
|
+
const data = require("@teambit/generator");
|
|
140
|
+
|
|
141
|
+
_generator = function () {
|
|
142
|
+
return data;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
return data;
|
|
146
|
+
}
|
|
147
|
+
|
|
138
148
|
function _artifactFactory() {
|
|
139
149
|
const data = require("./artifact/artifact-factory");
|
|
140
150
|
|
|
@@ -215,6 +225,16 @@ function _artifacts() {
|
|
|
215
225
|
return data;
|
|
216
226
|
}
|
|
217
227
|
|
|
228
|
+
function _buildTask() {
|
|
229
|
+
const data = require("./templates/build-task");
|
|
230
|
+
|
|
231
|
+
_buildTask = function () {
|
|
232
|
+
return data;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
return data;
|
|
236
|
+
}
|
|
237
|
+
|
|
218
238
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
219
239
|
|
|
220
240
|
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; }
|
|
@@ -449,7 +469,7 @@ class BuilderMain {
|
|
|
449
469
|
return this;
|
|
450
470
|
}
|
|
451
471
|
|
|
452
|
-
static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql], config, [buildTaskSlot, storageResolversSlot, tagTaskSlot, snapTaskSlot]) {
|
|
472
|
+
static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator], config, [buildTaskSlot, storageResolversSlot, tagTaskSlot, snapTaskSlot]) {
|
|
453
473
|
const artifactFactory = new (_artifactFactory().ArtifactFactory)(storageResolversSlot);
|
|
454
474
|
const logger = loggerExt.createLogger(_builder().BuilderAspect.id);
|
|
455
475
|
const buildService = new (_builder3().BuilderService)(isolator, logger, buildTaskSlot, 'getBuildPipe', 'build', artifactFactory, scope);
|
|
@@ -458,6 +478,7 @@ class BuilderMain {
|
|
|
458
478
|
const snapService = new (_builder3().BuilderService)(isolator, logger, snapTaskSlot, 'getSnapPipe', 'snap', artifactFactory, scope);
|
|
459
479
|
const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, buildTaskSlot, tagTaskSlot, snapTaskSlot, storageResolversSlot);
|
|
460
480
|
graphql.register((0, _builder2().builderSchema)(builder));
|
|
481
|
+
generator.registerComponentTemplate([_buildTask().buildTaskTemplate]);
|
|
461
482
|
const func = builder.tagListener.bind(builder);
|
|
462
483
|
if (scope) scope.onTag(func);
|
|
463
484
|
|
|
@@ -475,7 +496,7 @@ class BuilderMain {
|
|
|
475
496
|
exports.BuilderMain = BuilderMain;
|
|
476
497
|
(0, _defineProperty2().default)(BuilderMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
477
498
|
(0, _defineProperty2().default)(BuilderMain, "runtime", _cli().MainRuntime);
|
|
478
|
-
(0, _defineProperty2().default)(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect,
|
|
499
|
+
(0, _defineProperty2().default)(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect, _generator().GeneratorAspect]);
|
|
479
500
|
|
|
480
501
|
_builder().BuilderAspect.addRuntime(BuilderMain);
|
|
481
502
|
|
|
@@ -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","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","func","bind","onTag","consumer","isLegacy","commands","BuilderCmd","ArtifactsCmd","unregister","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","ComponentAspect","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, ComponentAspect, 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 { 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';\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 ComponentAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain\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 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","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"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.indexFile = indexFile;
|
|
7
|
+
|
|
8
|
+
function indexFile({
|
|
9
|
+
namePascalCase,
|
|
10
|
+
name
|
|
11
|
+
}) {
|
|
12
|
+
return `export { ${namePascalCase} } from './${name}.task'`;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=index-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index-file.ts"],"names":["indexFile","namePascalCase","name"],"mappings":";;;;;;;AAEO,SAASA,SAAT,CAAmB;AAAEC,EAAAA,cAAF;AAAkBC,EAAAA;AAAlB,CAAnB,EAA+D;AACpE,SAAQ,YAAWD,cAAe,cAAaC,IAAK,QAApD;AACD","sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function indexFile({ namePascalCase, name }: ComponentContext) {\n return `export { ${namePascalCase} } from './${name}.task'`;\n}\n"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.taskFile = taskFile;
|
|
7
|
+
|
|
8
|
+
function taskFile({
|
|
9
|
+
namePascalCase
|
|
10
|
+
}) {
|
|
11
|
+
return `import {
|
|
12
|
+
BuildTask,
|
|
13
|
+
BuildContext,
|
|
14
|
+
BuiltTaskResult,
|
|
15
|
+
ComponentResult,
|
|
16
|
+
} from '@teambit/builder';
|
|
17
|
+
import path from 'path';
|
|
18
|
+
import fs from 'fs';
|
|
19
|
+
|
|
20
|
+
export class ${namePascalCase} implements BuildTask {
|
|
21
|
+
constructor(readonly aspectId: string) {}
|
|
22
|
+
readonly name = '${namePascalCase}';
|
|
23
|
+
|
|
24
|
+
async execute(context: BuildContext): Promise<BuiltTaskResult> {
|
|
25
|
+
// Prepare the component results array which will be used to report back the components proccessed
|
|
26
|
+
// as well as any additional data regarding this build task execution
|
|
27
|
+
const componentsResults: ComponentResult[] = [];
|
|
28
|
+
// The 'seeder capsules' are capsules for components that are built for their own sake -
|
|
29
|
+
// not for the sake of other components that have them as their dependencies
|
|
30
|
+
const capsules = context.capsuleNetwork.seedersCapsules;
|
|
31
|
+
capsules.forEach((capsule) => {
|
|
32
|
+
// Preprate an 'errors' array to report back of any erros during execution (this will be part of the 'Component Results' data)
|
|
33
|
+
const errors: Error[] = [];
|
|
34
|
+
// Each 'capsule' provides data regarding the component as well as the capsule itself
|
|
35
|
+
const componentName = capsule.component.id.name;
|
|
36
|
+
const capsuleDir = capsule.path;
|
|
37
|
+
|
|
38
|
+
const artifactContent = \`The component name is \${componentName}\`
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
// Generate the artifact inside the capsule's diretory
|
|
42
|
+
fs.writeFileSync(
|
|
43
|
+
path.join(capsuleDir, 'output.my-artifact.txt'),
|
|
44
|
+
artifactContent
|
|
45
|
+
);
|
|
46
|
+
} catch (err: any) {
|
|
47
|
+
errors.push(err);
|
|
48
|
+
}
|
|
49
|
+
componentsResults.push({ component: capsule.component, errors });
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
artifacts: [
|
|
54
|
+
{
|
|
55
|
+
generatedBy: this.aspectId,
|
|
56
|
+
name: this.name,
|
|
57
|
+
// The glob pattern for artifacts to include in the comoponent version
|
|
58
|
+
globPatterns: ['**/*.my-artifact.txt'],
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
componentsResults,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}`;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=task-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["task-file.ts"],"names":["taskFile","namePascalCase"],"mappings":";;;;;;;AAEO,SAASA,QAAT,CAAkB;AAAEC,EAAAA;AAAF,CAAlB,EAAwD;AAC7D,SAAQ;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeA,cAAe;AAC9B;AACA,qBAAqBA,cAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EArDE;AAsDD","sourcesContent":["import { ComponentContext } from '@teambit/generator';\n\nexport function taskFile({ namePascalCase }: ComponentContext) {\n return `import {\n BuildTask,\n BuildContext,\n BuiltTaskResult,\n ComponentResult,\n} from '@teambit/builder';\nimport path from 'path';\nimport fs from 'fs';\n\nexport class ${namePascalCase} implements BuildTask {\n constructor(readonly aspectId: string) {}\n readonly name = '${namePascalCase}';\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n // Prepare the component results array which will be used to report back the components proccessed\n // as well as any additional data regarding this build task execution\n const componentsResults: ComponentResult[] = [];\n // The 'seeder capsules' are capsules for components that are built for their own sake - \n // not for the sake of other components that have them as their dependencies\n const capsules = context.capsuleNetwork.seedersCapsules;\n capsules.forEach((capsule) => {\n // Preprate an 'errors' array to report back of any erros during execution (this will be part of the 'Component Results' data)\n const errors: Error[] = [];\n // Each 'capsule' provides data regarding the component as well as the capsule itself\n const componentName = capsule.component.id.name;\n const capsuleDir = capsule.path;\n\n const artifactContent = \\`The component name is \\${componentName}\\`\n\n try {\n // Generate the artifact inside the capsule's diretory\n fs.writeFileSync(\n path.join(capsuleDir, 'output.my-artifact.txt'),\n artifactContent\n );\n } catch (err: any) {\n errors.push(err);\n }\n componentsResults.push({ component: capsule.component, errors });\n });\n\n return {\n artifacts: [\n {\n generatedBy: this.aspectId,\n name: this.name,\n // The glob pattern for artifacts to include in the comoponent version\n globPatterns: ['**/*.my-artifact.txt'],\n },\n ],\n componentsResults,\n };\n }\n}`;\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildTaskTemplate = void 0;
|
|
7
|
+
|
|
8
|
+
function _indexFile() {
|
|
9
|
+
const data = require("./files/index-file");
|
|
10
|
+
|
|
11
|
+
_indexFile = function () {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
return data;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function _taskFile() {
|
|
19
|
+
const data = require("./files/task-file");
|
|
20
|
+
|
|
21
|
+
_taskFile = function () {
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const buildTaskTemplate = {
|
|
29
|
+
name: 'build-task',
|
|
30
|
+
description: 'create a custom build task for your component pipelines',
|
|
31
|
+
hidden: false,
|
|
32
|
+
generateFiles: context => {
|
|
33
|
+
return [{
|
|
34
|
+
relativePath: 'index.ts',
|
|
35
|
+
content: (0, _indexFile().indexFile)(context),
|
|
36
|
+
isMain: true
|
|
37
|
+
}, {
|
|
38
|
+
relativePath: `${context.name}.task.ts`,
|
|
39
|
+
content: (0, _taskFile().taskFile)(context)
|
|
40
|
+
}];
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
exports.buildTaskTemplate = buildTaskTemplate;
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["buildTaskTemplate","name","description","hidden","generateFiles","context","relativePath","content","isMain"],"mappings":";;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEO,MAAMA,iBAAoC,GAAG;AAClDC,EAAAA,IAAI,EAAE,YAD4C;AAElDC,EAAAA,WAAW,EAAE,yDAFqC;AAGlDC,EAAAA,MAAM,EAAE,KAH0C;AAIlDC,EAAAA,aAAa,EAAGC,OAAD,IAA+B;AAC5C,WAAO,CACL;AACEC,MAAAA,YAAY,EAAE,UADhB;AAEEC,MAAAA,OAAO,EAAE,4BAAUF,OAAV,CAFX;AAGEG,MAAAA,MAAM,EAAE;AAHV,KADK,EAML;AACEF,MAAAA,YAAY,EAAG,GAAED,OAAO,CAACJ,IAAK,UADhC;AAEEM,MAAAA,OAAO,EAAE,0BAASF,OAAT;AAFX,KANK,CAAP;AAWD;AAhBiD,CAA7C","sourcesContent":["import { ComponentContext, ComponentTemplate } from '@teambit/generator';\nimport { indexFile } from './files/index-file';\nimport { taskFile } from './files/task-file';\n\nexport const buildTaskTemplate: ComponentTemplate = {\n name: 'build-task',\n description: 'create a custom build task for your component pipelines',\n hidden: false,\n generateFiles: (context: ComponentContext) => {\n return [\n {\n relativePath: 'index.ts',\n content: indexFile(context),\n isMain: true,\n },\n {\n relativePath: `${context.name}.task.ts`,\n content: taskFile(context),\n },\n ];\n },\n};\n"]}
|
|
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.575",
|
|
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.575"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"p-map-series": "2.1.0",
|
|
@@ -22,18 +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/
|
|
34
|
-
"@teambit/
|
|
35
|
-
"@teambit/
|
|
36
|
-
"@teambit/
|
|
25
|
+
"@teambit/component": "0.0.575",
|
|
26
|
+
"@teambit/envs": "0.0.575",
|
|
27
|
+
"@teambit/logger": "0.0.485",
|
|
28
|
+
"@teambit/tester": "0.0.575",
|
|
29
|
+
"@teambit/isolator": "0.0.575",
|
|
30
|
+
"@teambit/cli": "0.0.397",
|
|
31
|
+
"@teambit/workspace": "0.0.575",
|
|
32
|
+
"@teambit/aspect-loader": "0.0.575",
|
|
33
|
+
"@teambit/generator": "0.0.575",
|
|
34
|
+
"@teambit/graphql": "0.0.575",
|
|
35
|
+
"@teambit/scope": "0.0.575",
|
|
36
|
+
"@teambit/bit-error": "0.0.383",
|
|
37
|
+
"@teambit/component-id": "0.0.387"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
39
40
|
"@types/lodash": "4.14.165",
|
|
@@ -45,10 +46,10 @@
|
|
|
45
46
|
"@types/jest": "^26.0.0",
|
|
46
47
|
"@types/react-dom": "^17.0.5",
|
|
47
48
|
"@types/node": "12.20.4",
|
|
48
|
-
"@teambit/pipelines.aspect-docs.builder": "0.0.
|
|
49
|
+
"@teambit/pipelines.aspect-docs.builder": "0.0.119"
|
|
49
50
|
},
|
|
50
51
|
"peerDependencies": {
|
|
51
|
-
"@teambit/legacy": "1.0.
|
|
52
|
+
"@teambit/legacy": "1.0.183",
|
|
52
53
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
53
54
|
"react": "^16.8.0 || ^17.0.0"
|
|
54
55
|
},
|
|
@@ -76,7 +77,7 @@
|
|
|
76
77
|
"react": "-"
|
|
77
78
|
},
|
|
78
79
|
"peerDependencies": {
|
|
79
|
-
"@teambit/legacy": "1.0.
|
|
80
|
+
"@teambit/legacy": "1.0.183",
|
|
80
81
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
81
82
|
"react": "^16.8.0 || ^17.0.0"
|
|
82
83
|
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ComponentContext } from '@teambit/generator';
|
|
2
|
+
|
|
3
|
+
export function taskFile({ namePascalCase }: ComponentContext) {
|
|
4
|
+
return `import {
|
|
5
|
+
BuildTask,
|
|
6
|
+
BuildContext,
|
|
7
|
+
BuiltTaskResult,
|
|
8
|
+
ComponentResult,
|
|
9
|
+
} from '@teambit/builder';
|
|
10
|
+
import path from 'path';
|
|
11
|
+
import fs from 'fs';
|
|
12
|
+
|
|
13
|
+
export class ${namePascalCase} implements BuildTask {
|
|
14
|
+
constructor(readonly aspectId: string) {}
|
|
15
|
+
readonly name = '${namePascalCase}';
|
|
16
|
+
|
|
17
|
+
async execute(context: BuildContext): Promise<BuiltTaskResult> {
|
|
18
|
+
// Prepare the component results array which will be used to report back the components proccessed
|
|
19
|
+
// as well as any additional data regarding this build task execution
|
|
20
|
+
const componentsResults: ComponentResult[] = [];
|
|
21
|
+
// The 'seeder capsules' are capsules for components that are built for their own sake -
|
|
22
|
+
// not for the sake of other components that have them as their dependencies
|
|
23
|
+
const capsules = context.capsuleNetwork.seedersCapsules;
|
|
24
|
+
capsules.forEach((capsule) => {
|
|
25
|
+
// Preprate an 'errors' array to report back of any erros during execution (this will be part of the 'Component Results' data)
|
|
26
|
+
const errors: Error[] = [];
|
|
27
|
+
// Each 'capsule' provides data regarding the component as well as the capsule itself
|
|
28
|
+
const componentName = capsule.component.id.name;
|
|
29
|
+
const capsuleDir = capsule.path;
|
|
30
|
+
|
|
31
|
+
const artifactContent = \`The component name is \${componentName}\`
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
// Generate the artifact inside the capsule's diretory
|
|
35
|
+
fs.writeFileSync(
|
|
36
|
+
path.join(capsuleDir, 'output.my-artifact.txt'),
|
|
37
|
+
artifactContent
|
|
38
|
+
);
|
|
39
|
+
} catch (err: any) {
|
|
40
|
+
errors.push(err);
|
|
41
|
+
}
|
|
42
|
+
componentsResults.push({ component: capsule.component, errors });
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
artifacts: [
|
|
47
|
+
{
|
|
48
|
+
generatedBy: this.aspectId,
|
|
49
|
+
name: this.name,
|
|
50
|
+
// The glob pattern for artifacts to include in the comoponent version
|
|
51
|
+
globPatterns: ['**/*.my-artifact.txt'],
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
componentsResults,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}`;
|
|
58
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ComponentContext, ComponentTemplate } from '@teambit/generator';
|
|
2
|
+
import { indexFile } from './files/index-file';
|
|
3
|
+
import { taskFile } from './files/task-file';
|
|
4
|
+
|
|
5
|
+
export const buildTaskTemplate: ComponentTemplate = {
|
|
6
|
+
name: 'build-task',
|
|
7
|
+
description: 'create a custom build task for your component pipelines',
|
|
8
|
+
hidden: false,
|
|
9
|
+
generateFiles: (context: ComponentContext) => {
|
|
10
|
+
return [
|
|
11
|
+
{
|
|
12
|
+
relativePath: 'index.ts',
|
|
13
|
+
content: indexFile(context),
|
|
14
|
+
isMain: true,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
relativePath: `${context.name}.task.ts`,
|
|
18
|
+
content: taskFile(context),
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
},
|
|
22
|
+
};
|
|
Binary file
|