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

172 lines 5.46 kB
/** * @since 2.0.0 */ import type * as Effect from "./Effect.js"; import type * as FiberId from "./FiberId.js"; import type * as FiberRef from "./FiberRef.js"; import type * as HashSet from "./HashSet.js"; import type * as Option from "./Option.js"; import type { Pipeable } from "./Pipeable.js"; import type * as Arr from "./ReadonlyArray.js"; /** * @since 2.0.0 * @category symbols */ export declare const FiberRefsSym: unique symbol; /** * @since 2.0.0 * @category symbols */ export type FiberRefsSym = typeof FiberRefsSym; /** * `FiberRefs` is a data type that represents a collection of `FiberRef` values. * * This allows safely propagating `FiberRef` values across fiber boundaries, for * example between an asynchronous producer and consumer. * * @since 2.0.0 * @category models */ export interface FiberRefs extends Pipeable { readonly [FiberRefsSym]: FiberRefsSym; readonly locals: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>; } declare const delete_: { <A>(fiberRef: FiberRef.FiberRef<A>): (self: FiberRefs) => FiberRefs; <A>(self: FiberRefs, fiberRef: FiberRef.FiberRef<A>): FiberRefs; }; export { /** * Deletes the specified `FiberRef` from the `FibterRefs`. * * @since 2.0.0 * @category utils */ delete_ as delete }; /** * Returns a set of each `FiberRef` in this collection. * * @since 2.0.0 * @category getters */ export declare const fiberRefs: (self: FiberRefs) => HashSet.HashSet<FiberRef.FiberRef<any>>; /** * Forks this collection of fiber refs as the specified child fiber id. This * will potentially modify the value of the fiber refs, as determined by the * individual fiber refs that make up the collection. * * @since 2.0.0 * @category utils */ export declare const forkAs: { (childId: FiberId.Single): (self: FiberRefs) => FiberRefs; (self: FiberRefs, childId: FiberId.Single): FiberRefs; }; /** * Gets the value of the specified `FiberRef` in this collection of `FiberRef` * values if it exists or `None` otherwise. * * @since 2.0.0 * @category getters */ export declare const get: { <A>(fiberRef: FiberRef.FiberRef<A>): (self: FiberRefs) => Option.Option<A>; <A>(self: FiberRefs, fiberRef: FiberRef.FiberRef<A>): Option.Option<A>; }; /** * Gets the value of the specified `FiberRef` in this collection of `FiberRef` * values if it exists or the `initial` value of the `FiberRef` otherwise. * * @since 2.0.0 * @category getters */ export declare const getOrDefault: { <A>(fiberRef: FiberRef.FiberRef<A>): (self: FiberRefs) => A; <A>(self: FiberRefs, fiberRef: FiberRef.FiberRef<A>): A; }; /** * Joins this collection of fiber refs to the specified collection, as the * specified fiber id. This will perform diffing and merging to ensure * preservation of maximum information from both child and parent refs. * * @since 2.0.0 * @category utils */ export declare const joinAs: { (fiberId: FiberId.Single, that: FiberRefs): (self: FiberRefs) => FiberRefs; (self: FiberRefs, fiberId: FiberId.Single, that: FiberRefs): FiberRefs; }; /** * Set each ref to either its value or its default. * * @since 2.0.0 * @category utils */ export declare const setAll: (self: FiberRefs) => Effect.Effect<void>; /** * Updates the value of the specified `FiberRef` using the provided `FiberId` * * @since 2.0.0 * @category utils */ export declare const updateAs: { <A>(options: { readonly fiberId: FiberId.Single; readonly fiberRef: FiberRef.FiberRef<A>; readonly value: A; }): (self: FiberRefs) => FiberRefs; <A>(self: FiberRefs, options: { readonly fiberId: FiberId.Single; readonly fiberRef: FiberRef.FiberRef<A>; readonly value: A; }): FiberRefs; }; /** * Updates the values of the specified `FiberRef` & value pairs using the provided `FiberId` * * @since 2.0.0 * @category utils */ export declare const updateManyAs: { (options: { readonly forkAs?: FiberId.Single | undefined; readonly entries: readonly [ readonly [ FiberRef.FiberRef<any>, readonly [readonly [FiberId.Single, any], ...Array<readonly [FiberId.Single, any]>] ], ...Array<readonly [ FiberRef.FiberRef<any>, readonly [readonly [FiberId.Single, any], ...Array<readonly [FiberId.Single, any]>] ]> ]; }): (self: FiberRefs) => FiberRefs; (self: FiberRefs, options: { readonly forkAs?: FiberId.Single | undefined; readonly entries: readonly [ readonly [ FiberRef.FiberRef<any>, readonly [readonly [FiberId.Single, any], ...Array<readonly [FiberId.Single, any]>] ], ...Array<readonly [ FiberRef.FiberRef<any>, readonly [readonly [FiberId.Single, any], ...Array<readonly [FiberId.Single, any]>] ]> ]; }): FiberRefs; }; /** * Note: it will not copy the provided Map, make sure to provide a fresh one. * * @since 2.0.0 * @category unsafe */ export declare const unsafeMake: (fiberRefLocals: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>) => FiberRefs; /** * The empty collection of `FiberRef` values. * * @category constructors * @since 2.0.0 */ export declare const empty: () => FiberRefs; //# sourceMappingURL=FiberRefs.d.ts.map