surrogate
Version:
Object method hooks made easy
33 lines (32 loc) • 1.53 kB
TypeScript
import type { INext, NextOptions, NextNode, BailOptions } from '../interfaces';
import type { SurrogateUnwrapped } from '../../interfaces';
import type { SurrogateProxy } from '../../proxy/handler';
import type { HandlerContainer } from '../../containers';
import type { ContextController } from '../context';
import { Which, HookType } from '../../which';
export interface NextConstruct<T extends object> {
new (controller: ContextController<T>, proxy: SurrogateProxy<T>, container: HandlerContainer<T>, hookFor: Which): NextNode<T>;
}
export declare abstract class BaseNext<T extends object> implements INext {
controller: ContextController<T>;
proxy: SurrogateProxy<T>;
container: HandlerContainer<T>;
hookFor: Which;
nextNode: NextNode<T>;
prevNode: NextNode<T>;
didError: Error;
constructor(controller: ContextController<T>, proxy: SurrogateProxy<T>, container: HandlerContainer<T>, hookFor: Which);
skip(times?: number): void;
next({ using, ...options }?: NextOptions): void;
shouldRun(using: any[]): boolean;
get instance(): SurrogateUnwrapped<T>;
get hookType(): HookType;
get context(): import("../../context").Context<T>;
addNext(next: NextNode<T>): void;
get useContext(): import("../../interfaces").Contexts;
private shouldReplace;
protected replace(options: NextOptions): void;
bail(bailOptions?: BailOptions): void;
abstract skipWith(times?: number, ...args: any[]): void;
abstract handleNext(options?: NextOptions): void;
}