tyneq / terminal
Function: terminal()
terminal<
TArgs>(name,validate?): <TClass>(target,_context) =>TClass
Defined in: src/plugin/decorators/terminal.ts:34
Class decorator that registers a class as a terminal operator.
The class must have a process() method returning the result. Validation runs eagerly at the call site before the class is instantiated.
Type Parameters
| Type Parameter | Default type |
|---|---|
TArgs extends unknown[] | never |
Parameters
| Parameter | Type | Description |
|---|---|---|
name | string | Method name to expose on every sequence. |
validate? | (...args) => void | Optional eager validation function for user-supplied arguments. |
Returns
<
TClass>(target,_context):TClass
Type Parameters
| Type Parameter |
|---|
TClass extends (...args) => object |
Parameters
| Parameter | Type |
|---|---|
target | TClass |
_context | ClassDecoratorContext |
Returns
TClass
Example
ts
import { terminal } from "tyneq/plugin";
import { TyneqTerminalOperator } from "tyneq/plugin";
import type { Enumerable } from "tyneq";
@terminal("product")
class ProductOperator extends TyneqTerminalOperator<number, number> {
public process(): number {
let result = 1;
for (const item of this.source) result *= item;
return result;
}
}