@catladder/pipeline
Version:
Panter workflow for cloud CI/CD and DevOps
32 lines (29 loc) • 939 B
text/typescript
import { getAllEnvsByTrigger } from "../config/configruedEnvs";
import type { ComponentContext, PipelineType } from "../types";
import type { Config, PipelineTrigger } from "../types/config";
import { createComponentContext } from "./createComponentContext";
export type CreateAllComponentsContextProps = {
config: Config;
trigger: PipelineTrigger;
pipelineType: PipelineType;
};
export const createAllComponentsContext = async ({
config,
trigger,
pipelineType,
}: CreateAllComponentsContextProps): Promise<Array<ComponentContext>> => {
return await Promise.all(
Object.keys(config.components).flatMap((componentName) => {
const envs = getAllEnvsByTrigger(config, componentName, trigger);
return envs.map(async (env) => {
return await createComponentContext({
config,
componentName,
env,
trigger,
pipelineType,
});
});
}),
);
};