Skip to content

tyneq


tyneq / cachedTerminal

Function: cachedTerminal()

cachedTerminal<TArgs>(name, validate?): <TClass>(target, _context) => TClass

Defined in: src/plugin/decorators/cachedTerminal.ts:30

Class decorator that registers a TyneqCachedTerminalOperator subclass as a terminal operator available only on cached sequences.

The class constructor receives the full CachedEnumerable as its first argument, giving access to cached-sequence members (refresh(), internal cache, etc.).

Type Parameters

Type ParameterDefault type
TArgs extends unknown[]never

Parameters

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

Returns

<TClass>(target, _context): TClass

Type Parameters

Type Parameter
TClass extends Constructor<{ process: unknown; }>

Parameters

ParameterType
targetTClass
_contextClassDecoratorContext<TClass>

Returns

TClass

Example

ts
@cachedTerminal("cacheSize")
class CacheSizeOperator<T> extends TyneqCachedTerminalOperator<T, number> {
    process(): number {
        return [...this.source].length;
    }
}