Documentation / @agentick/kernel / compose
Function: compose() ​
Call Signature ​
compose<
T1>(p1):Procedure<T1>
Defined in: kernel/src/procedure.ts:1743
Compose multiple procedures into a single procedure (right-to-left execution). This is the functional programming convention: compose(a, b, c)(x) = a(b(c(x)))
For left-to-right execution, use pipe() instead.
Type Parameters ​
T1 ​
T1 extends (...args) => any
Parameters ​
p1 ​
Procedure<T1>
Returns ​
Procedure<T1>
Example ​
const format = createProcedure((s: string) => s.toUpperCase());
const validate = createProcedure((s: string) => s.trim());
const parse = createProcedure((input: string) => input);
// compose executes right-to-left: parse -> validate -> format
const pipeline = compose(format, validate, parse);
const result = await pipeline(' hello '); // "HELLO"Call Signature ​
compose<
T1,T2>(p1,p2):Procedure<(...args) =>Promise<ExtractReturn<T1>>>
Defined in: kernel/src/procedure.ts:1744
Compose multiple procedures into a single procedure (right-to-left execution). This is the functional programming convention: compose(a, b, c)(x) = a(b(c(x)))
For left-to-right execution, use pipe() instead.
Type Parameters ​
T1 ​
T1 extends (arg) => any
T2 ​
T2 extends (...args) => any
Parameters ​
p1 ​
Procedure<T1>
p2 ​
Procedure<T2>
Returns ​
Procedure<(...args) => Promise<ExtractReturn<T1>>>
Example ​
const format = createProcedure((s: string) => s.toUpperCase());
const validate = createProcedure((s: string) => s.trim());
const parse = createProcedure((input: string) => input);
// compose executes right-to-left: parse -> validate -> format
const pipeline = compose(format, validate, parse);
const result = await pipeline(' hello '); // "HELLO"Call Signature ​
compose<
T1,T2,T3>(p1,p2,p3):Procedure<(...args) =>Promise<ExtractReturn<T1>>>
Defined in: kernel/src/procedure.ts:1751
Compose multiple procedures into a single procedure (right-to-left execution). This is the functional programming convention: compose(a, b, c)(x) = a(b(c(x)))
For left-to-right execution, use pipe() instead.
Type Parameters ​
T1 ​
T1 extends (arg) => any
T2 ​
T2 extends (arg) => any
T3 ​
T3 extends (...args) => any
Parameters ​
p1 ​
Procedure<T1>
p2 ​
Procedure<T2>
p3 ​
Procedure<T3>
Returns ​
Procedure<(...args) => Promise<ExtractReturn<T1>>>
Example ​
const format = createProcedure((s: string) => s.toUpperCase());
const validate = createProcedure((s: string) => s.trim());
const parse = createProcedure((input: string) => input);
// compose executes right-to-left: parse -> validate -> format
const pipeline = compose(format, validate, parse);
const result = await pipeline(' hello '); // "HELLO"Call Signature ​
compose<
T1,T2,T3,T4>(p1,p2,p3,p4):Procedure<(...args) =>Promise<ExtractReturn<T1>>>
Defined in: kernel/src/procedure.ts:1760
Compose multiple procedures into a single procedure (right-to-left execution). This is the functional programming convention: compose(a, b, c)(x) = a(b(c(x)))
For left-to-right execution, use pipe() instead.
Type Parameters ​
T1 ​
T1 extends (arg) => any
T2 ​
T2 extends (arg) => any
T3 ​
T3 extends (arg) => any
T4 ​
T4 extends (...args) => any
Parameters ​
p1 ​
Procedure<T1>
p2 ​
Procedure<T2>
p3 ​
Procedure<T3>
p4 ​
Procedure<T4>
Returns ​
Procedure<(...args) => Promise<ExtractReturn<T1>>>
Example ​
const format = createProcedure((s: string) => s.toUpperCase());
const validate = createProcedure((s: string) => s.trim());
const parse = createProcedure((input: string) => input);
// compose executes right-to-left: parse -> validate -> format
const pipeline = compose(format, validate, parse);
const result = await pipeline(' hello '); // "HELLO"Call Signature ​
compose<
T1,T2,T3,T4,T5>(p1,p2,p3,p4,p5):Procedure<(...args) =>Promise<ExtractReturn<T1>>>
Defined in: kernel/src/procedure.ts:1771
Compose multiple procedures into a single procedure (right-to-left execution). This is the functional programming convention: compose(a, b, c)(x) = a(b(c(x)))
For left-to-right execution, use pipe() instead.
Type Parameters ​
T1 ​
T1 extends (arg) => any
T2 ​
T2 extends (arg) => any
T3 ​
T3 extends (arg) => any
T4 ​
T4 extends (arg) => any
T5 ​
T5 extends (...args) => any
Parameters ​
p1 ​
Procedure<T1>
p2 ​
Procedure<T2>
p3 ​
Procedure<T3>
p4 ​
Procedure<T4>
p5 ​
Procedure<T5>
Returns ​
Procedure<(...args) => Promise<ExtractReturn<T1>>>
Example ​
const format = createProcedure((s: string) => s.toUpperCase());
const validate = createProcedure((s: string) => s.trim());
const parse = createProcedure((input: string) => input);
// compose executes right-to-left: parse -> validate -> format
const pipeline = compose(format, validate, parse);
const result = await pipeline(' hello '); // "HELLO"