UNPKG

veffect

Version:

powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha

86 lines (69 loc) 2.15 kB
import type * as Fiber from "../../Fiber.js" /** @internal */ export type SuspendedWarningData = Start | Pending | Done /** @internal */ export const OP_SUSPENDED_WARNING_DATA_START = "Start" as const /** @internal */ export type OP_SUSPENDED_WARNING_DATA_START = typeof OP_SUSPENDED_WARNING_DATA_START /** @internal */ export const OP_SUSPENDED_WARNING_DATA_PENDING = "Pending" as const /** @internal */ export type OP_SUSPENDED_WARNING_DATA_PENDING = typeof OP_SUSPENDED_WARNING_DATA_PENDING /** @internal */ export const OP_SUSPENDED_WARNING_DATA_DONE = "Done" as const /** @internal */ export type OP_SUSPENDED_WARNING_DATA_DONE = typeof OP_SUSPENDED_WARNING_DATA_DONE /** @internal */ export interface Start { readonly _tag: OP_SUSPENDED_WARNING_DATA_START } /** @internal */ export interface Pending { readonly _tag: OP_SUSPENDED_WARNING_DATA_PENDING readonly fiber: Fiber.Fiber<void, Error> } /** @internal */ export interface Done { readonly _tag: OP_SUSPENDED_WARNING_DATA_DONE } /** * State indicating that a test has not adjusted the clock. * * @internal */ export const start: SuspendedWarningData = { _tag: OP_SUSPENDED_WARNING_DATA_START } /** * State indicating that a test has adjusted the clock but a fiber is still * running with a reference to the fiber that will display the warning * message. * * @internal */ export const pending = (fiber: Fiber.Fiber<void, Error>): SuspendedWarningData => { return { _tag: OP_SUSPENDED_WARNING_DATA_PENDING, fiber } } /** * State indicating that the warning message has already been displayed. * * @internal */ export const done: SuspendedWarningData = { _tag: OP_SUSPENDED_WARNING_DATA_DONE } /** @internal */ export const isStart = (self: SuspendedWarningData): self is Start => { return self._tag === OP_SUSPENDED_WARNING_DATA_START } /** @internal */ export const isPending = (self: SuspendedWarningData): self is Pending => { return self._tag === OP_SUSPENDED_WARNING_DATA_PENDING } /** @internal */ export const isDone = (self: SuspendedWarningData): self is Done => { return self._tag === OP_SUSPENDED_WARNING_DATA_DONE }