An initializer that will be called once to produce the value.
// Simple initializer:
const regular = doddle(() => 1) satisfies Doddle<number>
// Initializer returning another lazily primitive is flattened:
const lazyNested = doddle(() => doddle(() => 1)) satisfies Doddle<number>
// Async initializer gives a `DoddleAsync` instance:
const lazyAsync = doddle(async () => 1) satisfies DoddleAsync<number>
// Async initializer returning another lazily primitive is flattened:
const asyncDoddle = doddle(async () => doddle(() => 1)) satisfies DoddleAsync<number>
// Async initializer returning another lazily async primitive is flattened:
const asyncDoddleAsync = doddle(async () =>
doddle(async () => 1)
) satisfies DoddleAsync<number>
Creates a Doddle lazy primitive around a given function. Supports both sync and async initializers and flattens nested Doddle or Promise types.
See examples for usage.
// Simple initializer:
const regular = doddle(() => 1) satisfies Doddle<number>
// Initializer returning another lazily primitive is flattened:
const lazyNested = doddle(() => doddle(() => 1)) satisfies Doddle<number>
// Async initializer gives a `DoddleAsync` instance:
const lazyAsync = doddle(async () => 1) satisfies DoddleAsync<number>
// Async initializer returning another lazily primitive is flattened:
const asyncDoddle = doddle(async () => doddle(() => 1)) satisfies DoddleAsync<number>
// Async initializer returning another lazily async primitive is flattened:
const asyncDoddleAsync = doddle(async () =>
doddle(async () => 1)
) satisfies DoddleAsync<number>
Creates a Doddle lazy primitive around a given function. Supports both sync and async initializers and flattens nested Doddle or Promise types.
See examples for usage.
An initializer that will be called once to produce the value.
// Simple initializer:
const regular = doddle(() => 1) satisfies Doddle<number>
// Initializer returning another lazily primitive is flattened:
const lazyNested = doddle(() => doddle(() => 1)) satisfies Doddle<number>
// Async initializer gives a `DoddleAsync` instance:
const lazyAsync = doddle(async () => 1) satisfies DoddleAsync<number>
// Async initializer returning another lazily primitive is flattened:
const asyncDoddle = doddle(async () => doddle(() => 1)) satisfies DoddleAsync<number>
// Async initializer returning another lazily async primitive is flattened:
const asyncDoddleAsync = doddle(async () =>
doddle(async () => 1)
) satisfies DoddleAsync<number>
Creates a Doddle lazy primitive around a given function. Supports both sync and async initializers and flattens nested Doddle or Promise types.
See examples for usage.
// Simple initializer:
const regular = doddle(() => 1) satisfies Doddle<number>
// Initializer returning another lazily primitive is flattened:
const lazyNested = doddle(() => doddle(() => 1)) satisfies Doddle<number>
// Async initializer gives a `DoddleAsync` instance:
const lazyAsync = doddle(async () => 1) satisfies DoddleAsync<number>
// Async initializer returning another lazily primitive is flattened:
const asyncDoddle = doddle(async () => doddle(() => 1)) satisfies DoddleAsync<number>
// Async initializer returning another lazily async primitive is flattened:
const asyncDoddleAsync = doddle(async () =>
doddle(async () => 1)
) satisfies DoddleAsync<number>
Creates a Doddle lazy primitive around a given function. Supports both sync and async initializers and flattens nested Doddle or Promise types.
See examples for usage.
// Simple initializer:
const regular = doddle(() => 1) satisfies Doddle<number>
// Initializer returning another lazily primitive is flattened:
const lazyNested = doddle(() => doddle(() => 1)) satisfies Doddle<number>
// Async initializer gives a `DoddleAsync` instance:
const lazyAsync = doddle(async () => 1) satisfies DoddleAsync<number>
// Async initializer returning another lazily primitive is flattened:
const asyncDoddle = doddle(async () => doddle(() => 1)) satisfies DoddleAsync<number>
// Async initializer returning another lazily async primitive is flattened:
const asyncDoddleAsync = doddle(async () =>
doddle(async () => 1)
) satisfies DoddleAsync<number>
Creates a Doddle lazy primitive around a given function. Supports both sync and async initializers and flattens nested Doddle or Promise types.
See examples for usage.