UNPKG

surrogate

Version:

Object method hooks made easy

33 lines (32 loc) 1.53 kB
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; }