Duration overview
Added in v2.0.0
Table of contents
constructors
days
Signature
export declare const days: (days: number) => Duration
Added in v2.0.0
hours
Signature
export declare const hours: (hours: number) => Duration
Added in v2.0.0
infinity
Signature
export declare const infinity: Duration
Added in v2.0.0
micros
Signature
export declare const micros: (micros: bigint) => Duration
Added in v2.0.0
millis
Signature
export declare const millis: (millis: number) => Duration
Added in v2.0.0
minutes
Signature
export declare const minutes: (minutes: number) => Duration
Added in v2.0.0
nanos
Signature
export declare const nanos: (nanos: bigint) => Duration
Added in v2.0.0
seconds
Signature
export declare const seconds: (seconds: number) => Duration
Added in v2.0.0
weeks
Signature
export declare const weeks: (weeks: number) => Duration
Added in v2.0.0
zero
Signature
export declare const zero: Duration
Added in v2.0.0
getters
toHrTime
Signature
export declare const toHrTime: (self: DurationInput) => [seconds: number, nanos: number]
Added in v2.0.0
toMillis
Signature
export declare const toMillis: (self: DurationInput) => number
Added in v2.0.0
toNanos
Get the duration in nanoseconds as a bigint.
If the duration is infinite, returns Option.none()
Signature
export declare const toNanos: (self: DurationInput) => Option.Option<bigint>
Added in v2.0.0
toSeconds
Signature
export declare const toSeconds: (self: DurationInput) => number
Added in v2.0.0
unsafeToNanos
Get the duration in nanoseconds as a bigint.
If the duration is infinite, it throws an error.
Signature
export declare const unsafeToNanos: (self: DurationInput) => bigint
Added in v2.0.0
guards
isDuration
Signature
export declare const isDuration: (u: unknown) => u is Duration
Added in v2.0.0
isFinite
Signature
export declare const isFinite: (self: Duration) => boolean
Added in v2.0.0
instances
Equivalence
Signature
export declare const Equivalence: equivalence.Equivalence<Duration>
Added in v2.0.0
Order
Signature
export declare const Order: order.Order<Duration>
Added in v2.0.0
math
divide
Signature
export declare const divide: {
(by: number): (self: DurationInput) => Option.Option<Duration>
(self: DurationInput, by: number): Option.Option<Duration>
}
Added in v2.4.19
subtract
Signature
export declare const subtract: {
(that: DurationInput): (self: DurationInput) => Duration
(self: DurationInput, that: DurationInput): Duration
}
Added in v2.0.0
sum
Signature
export declare const sum: {
(that: DurationInput): (self: DurationInput) => Duration
(self: DurationInput, that: DurationInput): Duration
}
Added in v2.0.0
times
Signature
export declare const times: {
(times: number): (self: DurationInput) => Duration
(self: DurationInput, times: number): Duration
}
Added in v2.0.0
unsafeDivide
Signature
export declare const unsafeDivide: {
(by: number): (self: DurationInput) => Duration
(self: DurationInput, by: number): Duration
}
Added in v2.4.19
models
Duration (interface)
Signature
export interface Duration extends Equal.Equal, Pipeable, Inspectable {
readonly [TypeId]: TypeId
readonly value: DurationValue
}
Added in v2.0.0
DurationInput (type alias)
Signature
export type DurationInput =
| Duration
| number // millis
| bigint // nanos
| [seconds: number, nanos: number]
| `${number} ${Unit}`
Added in v2.0.0
DurationValue (type alias)
Signature
export type DurationValue = { _tag: "Millis"; millis: number } | { _tag: "Nanos"; nanos: bigint } | { _tag: "Infinity" }
Added in v2.0.0
Unit (type alias)
Signature
export type Unit =
| "nano"
| "nanos"
| "micro"
| "micros"
| "milli"
| "millis"
| "second"
| "seconds"
| "minute"
| "minutes"
| "hour"
| "hours"
| "day"
| "days"
| "week"
| "weeks"
Added in v2.0.0
pattern matching
match
Signature
export declare const match: {
<A, B>(options: {
readonly onMillis: (millis: number) => A
readonly onNanos: (nanos: bigint) => B
}): (self: DurationInput) => A | B
<A, B>(
self: DurationInput,
options: { readonly onMillis: (millis: number) => A; readonly onNanos: (nanos: bigint) => B }
): A | B
}
Added in v2.0.0
matchWith
Signature
export declare const matchWith: {
<A, B>(
that: DurationInput,
options: {
readonly onMillis: (self: number, that: number) => A
readonly onNanos: (self: bigint, that: bigint) => B
}
): (self: DurationInput) => A | B
<A, B>(
self: DurationInput,
that: DurationInput,
options: {
readonly onMillis: (self: number, that: number) => A
readonly onNanos: (self: bigint, that: bigint) => B
}
): A | B
}
Added in v2.0.0
predicates
between
Checks if a Duration
is between a minimum
and maximum
value.
Signature
export declare const between: {
(options: { minimum: DurationInput; maximum: DurationInput }): (self: DurationInput) => boolean
(self: DurationInput, options: { minimum: DurationInput; maximum: DurationInput }): boolean
}
Added in v2.0.0
equals
Signature
export declare const equals: {
(that: DurationInput): (self: DurationInput) => boolean
(self: DurationInput, that: DurationInput): boolean
}
Added in v2.0.0
greaterThan
Signature
export declare const greaterThan: {
(that: DurationInput): (self: DurationInput) => boolean
(self: DurationInput, that: DurationInput): boolean
}
Added in v2.0.0
greaterThanOrEqualTo
Signature
export declare const greaterThanOrEqualTo: {
(that: DurationInput): (self: DurationInput) => boolean
(self: DurationInput, that: DurationInput): boolean
}
Added in v2.0.0
lessThan
Signature
export declare const lessThan: {
(that: DurationInput): (self: DurationInput) => boolean
(self: DurationInput, that: DurationInput): boolean
}
Added in v2.0.0
lessThanOrEqualTo
Signature
export declare const lessThanOrEqualTo: {
(that: DurationInput): (self: DurationInput) => boolean
(self: DurationInput, that: DurationInput): boolean
}
Added in v2.0.0
symbol
TypeId (type alias)
Signature
export type TypeId = typeof TypeId
Added in v2.0.0
utils
clamp
Signature
export declare const clamp: {
(options: { minimum: DurationInput; maximum: DurationInput }): (self: DurationInput) => Duration
(self: DurationInput, options: { minimum: DurationInput; maximum: DurationInput }): Duration
}
Added in v2.0.0
decode
Signature
export declare const decode: (input: DurationInput) => Duration
Added in v2.0.0
decodeUnknown
Signature
export declare const decodeUnknown: (u: unknown) => Option.Option<Duration>
Added in v2.5.0
format
Converts a Duration
to a human readable string.
Signature
export declare const format: (self: DurationInput) => string
Example
import * as Duration from "effect/Duration"
Duration.format(Duration.millis(1000)) // "1s"
Duration.format(Duration.millis(1001)) // "1s 1ms"
Added in v2.0.0
max
Signature
export declare const max: {
(that: DurationInput): (self: DurationInput) => Duration
(self: DurationInput, that: DurationInput): Duration
}
Added in v2.0.0
min
Signature
export declare const min: {
(that: DurationInput): (self: DurationInput) => Duration
(self: DurationInput, that: DurationInput): Duration
}
Added in v2.0.0