Skip to content

tyneq


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 ParameterDefault type
TArgs extends unknown[]never

Parameters

ParameterTypeDescription
namestringMethod name to expose on every sequence.
validate?(...args) => voidOptional eager validation function for user-supplied arguments.

Returns

<TClass>(target, _context): TClass

Type Parameters

Type Parameter
TClass extends (...args) => object

Parameters

ParameterType
targetTClass
_contextClassDecoratorContext

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;
    }
}