Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

Clock

12 exports Since v2.0.0 Source

Constructors

Signature

declare const clockWith: <A, E, R>(f: (clock: Clock) => Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>

Signature

declare const currentTimeMillis: Effect.Effect<number>

Signature

declare const currentTimeNanos: Effect.Effect<bigint>
Since v2.0.0

Signature

declare const make: (_: void) => Clock
Since v2.0.0

Signature

declare const sleep: (duration: Duration.DurationInput) => Effect.Effect<void>

Context

Since v2.0.0

Signature

declare const Clock: Tag<Clock, Clock>

Models

Since v2.0.0

Signature

type CancelToken = () => boolean

Clock

interface
Since v2.0.0

Represents a time-based clock which provides functionality related to time and scheduling.

Signature

interface Clock {
readonly [ClockTypeId]: typeof ClockTypeId;
readonly currentTimeMillis: Effect<number>;
readonly currentTimeNanos: Effect<bigint>;
sleep(duration: Duration): Effect<void>;
unsafeCurrentTimeMillis(): number;
unsafeCurrentTimeNanos(): bigint;
}
Since v2.0.0

Signature

interface ClockScheduler {
unsafeSchedule(task: Task, duration: Duration): CancelToken;
}

Task

type
Since v2.0.0

Signature

type Task = () => void

Symbols

Signature

declare const ClockTypeId: unique symbol
Since v2.0.0

Signature

type ClockTypeId = typeof ClockTypeId