UNPKG

iso-bench

Version:

Small benchmark library focused in avoiding optimization/deoptimization pollution between tests by isolating them.

33 lines (32 loc) 1.38 kB
import * as Stream from "stream"; import { Test, TestOptions } from "./Test"; import { Processor } from "./Processor"; export type AsyncCallback = (resolve: () => void, reject: (error: unknown) => void) => void; export type AsyncSetupCallback<T> = (resolve: () => void, reject: (error: unknown) => void, setup: T) => void; export type IsoBenchOptions = { parallel?: number; } & TestOptions; export declare class IsoBench { #private; readonly name: string; processors: Processor[]; tests: Test[]; currentTests: Test[]; options: Required<IsoBenchOptions>; running: boolean; done: boolean; private _waiting; constructor(name?: string, options?: IsoBenchOptions); static IfMaster(cb: () => void): void; addAsync(name: string, callback: AsyncCallback, options?: TestOptions): this; addAsync<T>(name: string, callback: AsyncSetupCallback<T>, setup: () => T, options?: TestOptions): this; add(name: string, callback: () => void, options?: TestOptions): this; add<T>(name: string, callback: (setup: T) => void, setup: () => T, options?: TestOptions): this; addProcessor(processorCallback: () => Processor): this; consoleLog(): this; streamLog(streamCallback: () => Stream.Writable): this; endGroup(name: string): this; run(): Promise<void>; protected wait(): Promise<void>; private _start; }