256 lines
7.9 KiB
TypeScript
256 lines
7.9 KiB
TypeScript
/**
|
|
* @since 2.0.0
|
|
*/
|
|
import type * as Arr from "./Array.js";
|
|
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";
|
|
/**
|
|
* @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: {
|
|
/**
|
|
* 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
|
|
*/
|
|
(childId: FiberId.Single): (self: FiberRefs) => FiberRefs;
|
|
/**
|
|
* 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
|
|
*/
|
|
(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: {
|
|
/**
|
|
* 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
|
|
*/
|
|
<A>(fiberRef: FiberRef.FiberRef<A>): (self: FiberRefs) => Option.Option<A>;
|
|
/**
|
|
* 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
|
|
*/
|
|
<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: {
|
|
/**
|
|
* 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
|
|
*/
|
|
<A>(fiberRef: FiberRef.FiberRef<A>): (self: FiberRefs) => 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
|
|
*/
|
|
<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: {
|
|
/**
|
|
* 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
|
|
*/
|
|
(fiberId: FiberId.Single, that: FiberRefs): (self: FiberRefs) => FiberRefs;
|
|
/**
|
|
* 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
|
|
*/
|
|
(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: {
|
|
/**
|
|
* Updates the value of the specified `FiberRef` using the provided `FiberId`
|
|
*
|
|
* @since 2.0.0
|
|
* @category utils
|
|
*/
|
|
<A>(options: {
|
|
readonly fiberId: FiberId.Single;
|
|
readonly fiberRef: FiberRef.FiberRef<A>;
|
|
readonly value: A;
|
|
}): (self: FiberRefs) => FiberRefs;
|
|
/**
|
|
* Updates the value of the specified `FiberRef` using the provided `FiberId`
|
|
*
|
|
* @since 2.0.0
|
|
* @category utils
|
|
*/
|
|
<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: {
|
|
/**
|
|
* Updates the values of the specified `FiberRef` & value pairs using the provided `FiberId`
|
|
*
|
|
* @since 2.0.0
|
|
* @category utils
|
|
*/
|
|
(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;
|
|
/**
|
|
* Updates the values of the specified `FiberRef` & value pairs using the provided `FiberId`
|
|
*
|
|
* @since 2.0.0
|
|
* @category utils
|
|
*/
|
|
(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
|