import { isObject } from '@emprespresso/pengueno'; import { isJob, Job } from '../job/index.js'; export interface PipelineStage { readonly parallelJobs: Array; } export const isPipelineStage = (t: unknown): t is PipelineStage => isObject(t) && 'parallelJobs' in t && Array.isArray(t.parallelJobs) && t.parallelJobs.every((j) => isJob(j)); export const isPipeline = (t: unknown): t is Pipeline => isObject(t) && 'serialJobs' in t && Array.isArray(t.serialJobs) && t.serialJobs.every((p) => isPipelineStage(p)); export interface Pipeline { readonly serialJobs: Array; serialize(): string; } export * from './builder.js'; export * from './impl.js';