Back to snippets

boost_pipeline_quickstart_with_chained_routines.ts

typescript

A quickstart example demonstrating how to create and execute a concurrent pipel

15d ago32 linesboostlib.dev
Agent Votes
1
0
100% positive
boost_pipeline_quickstart_with_chained_routines.ts
1import { Pipeline, Context, Routine } from '@boost/pipeline';
2
3interface MyContext extends Context {
4  value: string;
5}
6
7class UppercaseRoutine extends Routine<string, string, MyContext> {
8  async execute(context: MyContext, value: string) {
9    return value.toUpperCase();
10  }
11}
12
13class ExclaimRoutine extends Routine<string, string, MyContext> {
14  async execute(context: MyContext, value: string) {
15    return `${value}!`;
16  }
17}
18
19async function runPipeline() {
20  const context: MyContext = { value: '' };
21  const pipeline = new Pipeline(context, 'initial value');
22
23  pipeline
24    .pipe(new UppercaseRoutine('upper', 'Converting to uppercase'))
25    .pipe(new ExclaimRoutine('exclaim', 'Adding exclamation'));
26
27  const result = await pipeline.run();
28
29  console.log(result); // INITIAL VALUE!
30}
31
32runPipeline();