Skip to content

AIDK API Reference / aidk-kernel / pipe

Function: pipe() ​

Call Signature ​

ts
function pipe<T1>(p1: Procedure<T1>): Procedure<T1>;

Defined in: packages/kernel/src/procedure.ts:1334

Pipe multiple procedures together, passing the output of each to the next.

Type Parameters ​

Type Parameter
T1 extends (...args: any[]) => any

Parameters ​

ParameterType
p1Procedure<T1>

Returns ​

Procedure<T1>

Example ​

typescript
const parse = createProcedure(async (json: string) => JSON.parse(json));
const validate = createProcedure(async (data: unknown) => schema.parse(data));
const transform = createProcedure(async (valid: Valid) => transform(valid));

// Create a pipeline that parses, validates, then transforms
const pipeline = pipe(parse, validate, transform);
const result = await pipeline('{"name": "test"}');

Call Signature ​

ts
function pipe<T1, T2>(p1: Procedure<T1>, p2: Procedure<T2>): Procedure<(...args: ExtractArgs<T1>) => Promise<ExtractReturn<T2>>>;

Defined in: packages/kernel/src/procedure.ts:1335

Pipe multiple procedures together, passing the output of each to the next.

Type Parameters ​

Type Parameter
T1 extends (...args: any[]) => any
T2 extends (arg: ExtractReturn<T1>) => any

Parameters ​

ParameterType
p1Procedure<T1>
p2Procedure<T2>

Returns ​

Procedure<(...args: ExtractArgs<T1>) => Promise<ExtractReturn<T2>>>

Example ​

typescript
const parse = createProcedure(async (json: string) => JSON.parse(json));
const validate = createProcedure(async (data: unknown) => schema.parse(data));
const transform = createProcedure(async (valid: Valid) => transform(valid));

// Create a pipeline that parses, validates, then transforms
const pipeline = pipe(parse, validate, transform);
const result = await pipeline('{"name": "test"}');

Call Signature ​

ts
function pipe<T1, T2, T3>(
   p1: Procedure<T1>, 
   p2: Procedure<T2>, 
   p3: Procedure<T3>): Procedure<(...args: ExtractArgs<T1>) => Promise<ExtractReturn<T3>>>;

Defined in: packages/kernel/src/procedure.ts:1342

Pipe multiple procedures together, passing the output of each to the next.

Type Parameters ​

Type Parameter
T1 extends (...args: any[]) => any
T2 extends (arg: ExtractReturn<T1>) => any
T3 extends (arg: ExtractReturn<T2>) => any

Parameters ​

ParameterType
p1Procedure<T1>
p2Procedure<T2>
p3Procedure<T3>

Returns ​

Procedure<(...args: ExtractArgs<T1>) => Promise<ExtractReturn<T3>>>

Example ​

typescript
const parse = createProcedure(async (json: string) => JSON.parse(json));
const validate = createProcedure(async (data: unknown) => schema.parse(data));
const transform = createProcedure(async (valid: Valid) => transform(valid));

// Create a pipeline that parses, validates, then transforms
const pipeline = pipe(parse, validate, transform);
const result = await pipeline('{"name": "test"}');

Call Signature ​

ts
function pipe<T1, T2, T3, T4>(
   p1: Procedure<T1>, 
   p2: Procedure<T2>, 
   p3: Procedure<T3>, 
   p4: Procedure<T4>): Procedure<(...args: ExtractArgs<T1>) => Promise<ExtractReturn<T4>>>;

Defined in: packages/kernel/src/procedure.ts:1351

Pipe multiple procedures together, passing the output of each to the next.

Type Parameters ​

Type Parameter
T1 extends (...args: any[]) => any
T2 extends (arg: ExtractReturn<T1>) => any
T3 extends (arg: ExtractReturn<T2>) => any
T4 extends (arg: ExtractReturn<T3>) => any

Parameters ​

ParameterType
p1Procedure<T1>
p2Procedure<T2>
p3Procedure<T3>
p4Procedure<T4>

Returns ​

Procedure<(...args: ExtractArgs<T1>) => Promise<ExtractReturn<T4>>>

Example ​

typescript
const parse = createProcedure(async (json: string) => JSON.parse(json));
const validate = createProcedure(async (data: unknown) => schema.parse(data));
const transform = createProcedure(async (valid: Valid) => transform(valid));

// Create a pipeline that parses, validates, then transforms
const pipeline = pipe(parse, validate, transform);
const result = await pipeline('{"name": "test"}');

Call Signature ​

ts
function pipe<T1, T2, T3, T4, T5>(
   p1: Procedure<T1>, 
   p2: Procedure<T2>, 
   p3: Procedure<T3>, 
   p4: Procedure<T4>, 
   p5: Procedure<T5>): Procedure<(...args: ExtractArgs<T1>) => Promise<ExtractReturn<T5>>>;

Defined in: packages/kernel/src/procedure.ts:1362

Pipe multiple procedures together, passing the output of each to the next.

Type Parameters ​

Type Parameter
T1 extends (...args: any[]) => any
T2 extends (arg: ExtractReturn<T1>) => any
T3 extends (arg: ExtractReturn<T2>) => any
T4 extends (arg: ExtractReturn<T3>) => any
T5 extends (arg: ExtractReturn<T4>) => any

Parameters ​

ParameterType
p1Procedure<T1>
p2Procedure<T2>
p3Procedure<T3>
p4Procedure<T4>
p5Procedure<T5>

Returns ​

Procedure<(...args: ExtractArgs<T1>) => Promise<ExtractReturn<T5>>>

Example ​

typescript
const parse = createProcedure(async (json: string) => JSON.parse(json));
const validate = createProcedure(async (data: unknown) => schema.parse(data));
const transform = createProcedure(async (valid: Valid) => transform(valid));

// Create a pipeline that parses, validates, then transforms
const pipeline = pipe(parse, validate, transform);
const result = await pipeline('{"name": "test"}');

Released under the MIT License.