tyneq / orderedTerminal
Function: orderedTerminal()
orderedTerminal<
TArgs>(name,validate?): <TClass>(target,_context) =>TClass
Defined in: src/plugin/decorators/orderedTerminal.ts:34
Class decorator that registers a TyneqOrderedTerminalOperator subclass as a terminal operator available only on ordered sequences.
The class constructor receives the full OrderedEnumerable as its first argument, giving access to ordered-sequence members (comparers, parent chain, etc.).
Type Parameters
| Type Parameter | Default type |
|---|---|
TArgs extends unknown[] | never |
Parameters
| Parameter | Type | Description |
|---|---|---|
name | string | Method name to expose on ordered 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
@orderedTerminal("isSorted")
class IsSortedOperator<T> extends TyneqOrderedTerminalOperator<T, boolean> {
process(): boolean {
const items = [...this.source];
for (let i = 1; i < items.length; i++) {
if (this.source.comparer(items[i - 1], items[i]) > 0) return false;
}
return true;
}
}