UNPKG

@monstermann/tinybench-pretty-printer

Version:
50 lines (49 loc) 1.96 kB
import { Alignment, Style } from "@monstermann/tables"; import { Task, TaskResultCompleted } from "tinybench"; //#region src/types.d.ts type TaskWithResult = Task & { result: TaskResultCompleted; }; type CountMethod = "none" | "shortest" | "highest" | "lowest" | "mean" | "thousands" | "millions" | "billions"; type DurationMethod = "shortest" | "highest" | "lowest" | "mean" | "nanoseconds" | "microseconds" | "milliseconds" | "seconds"; type SummaryMethod = "x" | "%"; type SortMethod = false | "asc" | "desc" | ((tasks: TaskWithResult[]) => TaskWithResult[]); type DefaultColumn = "name" | "summary" | "ops" | "time" | "margin" | "samples"; type ColumnContext = { fastestTask: TaskWithResult; locales: Intl.LocalesArgument; slowestTask: TaskWithResult; task: TaskWithResult; tasks: TaskWithResult[]; formatCount: (method: CountMethod, value: number, values: number[]) => string; formatDuration: (method: DurationMethod, value: number, values: number[]) => string; formatNumber: (value: number) => string; }; type ColumnOptions = { header: string; headerAlignment: Alignment; headerStyle: Style[]; rowAlignment: Alignment; rowStyle: Style[]; }; type Column = ColumnOptions & { content: (ctx: ColumnContext) => string; }; type Columns<T extends string> = Record<T, Column>; type NameOptions = Partial<ColumnOptions>; type SummaryOptions = Partial<ColumnOptions & { fastestTitle: string; method: SummaryMethod; }>; type OpsOptions = Partial<ColumnOptions & { method: CountMethod; }>; type TimeOptions = Partial<ColumnOptions & { method: DurationMethod; }>; type MarginOptions = Partial<ColumnOptions>; type SamplesOptions = Partial<ColumnOptions & { method: CountMethod; }>; //#endregion export { Column, ColumnContext, ColumnOptions, Columns, CountMethod, DefaultColumn, DurationMethod, MarginOptions, NameOptions, OpsOptions, SamplesOptions, SortMethod, SummaryMethod, SummaryOptions, TaskWithResult, TimeOptions };