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 Parameter | Default type |
|---|---|
TArgs extends unknown[] | never |
Parameters
| Parameter | Type | Description |
|---|---|---|
name | string | Method name to expose on cached sequences. |
validate? | (...args) => void | Optional eager validation function for user-supplied arguments. |
Returns
<
TClass>(target,_context):TClass
Type Parameters
| Type Parameter |
|---|
TClass extends Constructor<{ process: unknown; }> |
Parameters
| Parameter | Type |
|---|---|
target | TClass |
_context | ClassDecoratorContext<TClass> |
Returns
TClass
Example
ts
@cachedTerminal("cacheSize")
class CacheSizeOperator<T> extends TyneqCachedTerminalOperator<T, number> {
process(): number {
return [...this.source].length;
}
}