(label?: string, ...args: ReadonlyArray<any>): Effect.Effect<void>Logs the elapsed time for an existing timer without stopping it, allowing progress reports for long-running operations.
Example (Logging timer progress)
import { Console, Effect } from "effect"
const program = Effect.gen(function*() {
yield* Effect.scoped(
Effect.gen(function*() {
yield* Console.time("long-operation")
yield* Effect.sleep("500 millis")
yield* Console.timeLog("long-operation", "Halfway done")
yield* Effect.sleep("500 millis")
// Timer ends when scope closes
})
)
})export const const timeLog: (
label?: string,
...args: ReadonlyArray<any>
) => Effect.Effect<void>
Logs the elapsed time for an existing timer without stopping it, allowing progress reports for long-running operations.
Example (Logging timer progress)
import { Console, Effect } from "effect"
const program = Effect.gen(function*() {
yield* Effect.scoped(
Effect.gen(function*() {
yield* Console.time("long-operation")
yield* Effect.sleep("500 millis")
yield* Console.timeLog("long-operation", "Halfway done")
yield* Effect.sleep("500 millis")
// Timer ends when scope closes
})
)
})
timeLog = (label: string | undefinedlabel?: string, ...args: readonly any[]args: interface ReadonlyArray<T>ReadonlyArray<any>): import EffectEffect.interface Effect<out A, out E = never, out R = never>The Effect interface defines a value that lazily describes a workflow or
job. The workflow requires some context R, and may fail with an error of
type E, or succeed with a value of type A.
When to use
Use when you need to represent a lazy, composable workflow that can require
services, fail with a typed error, or succeed with a typed value.
Details
Effect values model resourceful interaction with the outside world,
including synchronous, asynchronous, concurrent, and parallel interaction.
They use a fiber-based concurrency model, with built-in support for
scheduling, fine-grained interruption, structured concurrency, and high
scalability.
To run an Effect value, you need a Runtime, which is a type that is
capable of executing Effect values.
Effect<void> =>
const consoleWith: <A, E, R>(
f: (console: Console) => Effect.Effect<A, E, R>
) => Effect.Effect<A, E, R>
Creates an Effect that provides access to the current console service and lets you perform operations with it within an Effect context.
Example (Accessing the current console service)
import { Console, Effect } from "effect"
const program = Console.consoleWith((console) =>
Effect.sync(() => {
console.log("Hello, world!")
console.error("This is an error message")
})
)
consoleWith((console: Console(parameter) console: {
assert: (condition: boolean, ...args: ReadonlyArray<any>) => void;
clear: () => void;
count: (label?: string) => void;
countReset: (label?: string) => void;
debug: (...args: ReadonlyArray<any>) => void;
dir: (item: any, options?: any) => void;
dirxml: (...args: ReadonlyArray<any>) => void;
error: (...args: ReadonlyArray<any>) => void;
group: (...args: ReadonlyArray<any>) => void;
groupCollapsed: (...args: ReadonlyArray<any>) => void;
groupEnd: () => void;
info: (...args: ReadonlyArray<any>) => void;
log: (...args: ReadonlyArray<any>) => void;
table: (tabularData: any, properties?: ReadonlyArray<string>) => void;
time: (label?: string) => void;
timeEnd: (label?: string) => void;
timeLog: (label?: string, ...args: ReadonlyArray<any>) => void;
trace: (...args: ReadonlyArray<any>) => void;
warn: (...args: ReadonlyArray<any>) => void;
}
console) =>
import effecteffect.const sync: <A>(
thunk: LazyArg<A>
) => Effect.Effect<A>
sync(() => {
console: Console(parameter) console: {
assert: (condition: boolean, ...args: ReadonlyArray<any>) => void;
clear: () => void;
count: (label?: string) => void;
countReset: (label?: string) => void;
debug: (...args: ReadonlyArray<any>) => void;
dir: (item: any, options?: any) => void;
dirxml: (...args: ReadonlyArray<any>) => void;
error: (...args: ReadonlyArray<any>) => void;
group: (...args: ReadonlyArray<any>) => void;
groupCollapsed: (...args: ReadonlyArray<any>) => void;
groupEnd: () => void;
info: (...args: ReadonlyArray<any>) => void;
log: (...args: ReadonlyArray<any>) => void;
table: (tabularData: any, properties?: ReadonlyArray<string>) => void;
time: (label?: string) => void;
timeEnd: (label?: string) => void;
timeLog: (label?: string, ...args: ReadonlyArray<any>) => void;
trace: (...args: ReadonlyArray<any>) => void;
warn: (...args: ReadonlyArray<any>) => void;
}
console.Console.timeLog(label?: string, ...args: ReadonlyArray<any>): voidtimeLog(label: string | undefinedlabel, ...args: readonly any[]args)
})
)