| /** | |
| * Marks encoded worker message fields that should move through `postMessage` as | |
| * transfer-list entries. | |
| * | |
| * Worker messages still pass through schema encoding and structured clone, but | |
| * schemas wrapped with `schema` can also report backing resources such as | |
| * `ArrayBuffer`, `ImageData.data.buffer`, or `MessagePort` to a `Collector`. | |
| * Worker platforms then pass the collected values as the transfer list for the | |
| * same `postMessage` call, avoiding copies for large payloads and ports. | |
| * | |
| * @since 4.0.0 | |
| */ | |
| import * as Context from "../../Context.ts"; | |
| import * as Effect from "../../Effect.ts"; | |
| import * as Schema from "../../Schema.ts"; | |
| import * as SchemaGetter from "../../SchemaGetter.ts"; | |
| declare const Collector_base: Context.ServiceClass<Collector, "effect/workers/Transferable/Collector", { | |
| readonly addAll: (_: Iterable<globalThis.Transferable>) => Effect.Effect<void>; | |
| readonly addAllUnsafe: (_: Iterable<globalThis.Transferable>) => void; | |
| readonly read: Effect.Effect<Array<globalThis.Transferable>>; | |
| readonly readUnsafe: () => Array<globalThis.Transferable>; | |
| readonly clearUnsafe: () => Array<globalThis.Transferable>; | |
| readonly clear: Effect.Effect<Array<globalThis.Transferable>>; | |
| }>; | |
| /** | |
| * Service for collecting `Transferable` objects while encoding worker messages | |
| * so they can be passed to `postMessage` transfer lists. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export declare class Collector extends Collector_base { | |
| } | |
| /** | |
| * Creates a mutable `Collector` service directly, exposing unsafe synchronous | |
| * methods for reading, adding, and clearing collected transferables. | |
| * | |
| * @category constructors | |
| * @since 4.0.0 | |
| */ | |
| export declare const makeCollectorUnsafe: () => Collector["Service"]; | |
| /** | |
| * Effect that creates a fresh `Collector` service for accumulating | |
| * transferables. | |
| * | |
| * @category constructors | |
| * @since 4.0.0 | |
| */ | |
| export declare const makeCollector: Effect.Effect<Collector["Service"]>; | |
| /** | |
| * Adds transferables to the current `Collector` when one is present in the | |
| * context, and does nothing otherwise. | |
| * | |
| * @category accessors | |
| * @since 4.0.0 | |
| */ | |
| export declare const addAll: (tranferables: Iterable<globalThis.Transferable>) => Effect.Effect<void>; | |
| /** | |
| * Creates a schema getter that records transferables derived from a value in | |
| * the current `Collector` while passing the value through unchanged. | |
| * | |
| * @category getters | |
| * @since 4.0.0 | |
| */ | |
| export declare const getterAddAll: <A>(f: (_: A) => Iterable<globalThis.Transferable>) => SchemaGetter.Getter<A, A>; | |
| /** | |
| * Schema wrapper whose encode path can record transferables with a `Collector` | |
| * while preserving the wrapped schema's decoded type. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export interface Transferable<S extends Schema.Top> extends Schema.decodeTo<Schema.toType<S["Rebuild"]>, S["Rebuild"]> { | |
| } | |
| /** | |
| * Wraps a schema so encoding records transferables selected from the encoded | |
| * value, enabling worker messages to populate a `postMessage` transfer list. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schema: { | |
| /** | |
| * Wraps a schema so encoding records transferables selected from the encoded | |
| * value, enabling worker messages to populate a `postMessage` transfer list. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| <S extends Schema.Top>(f: (_: S["Encoded"]) => Iterable<globalThis.Transferable>): (self: S) => Transferable<S>; | |
| /** | |
| * Wraps a schema so encoding records transferables selected from the encoded | |
| * value, enabling worker messages to populate a `postMessage` transfer list. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| <S extends Schema.Top>(self: S, f: (_: S["Encoded"]) => Iterable<globalThis.Transferable>): Transferable<S>; | |
| }; | |
| /** | |
| * Schema for transferring `ImageData` values with their pixel data buffer. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const ImageData: Transferable<Schema.declare<ImageData>>; | |
| /** | |
| * Schema for transferring `MessagePort` values as transferable objects. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const MessagePort: Transferable<Schema.declare<MessagePort>>; | |
| /** | |
| * Schema for transferring `Uint8Array` values with their backing buffer. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const Uint8Array: Transferable<Schema.instanceOf<globalThis.Uint8Array<ArrayBuffer>>>; | |
| export {}; | |
| //# sourceMappingURL=Transferable.d.ts.map |
Xet Storage Details
- Size:
- 4.46 kB
- Xet hash:
- 680feea892b5b16ee20a89f7471363d447e8f7aa30e74375cc10f112a76409e4
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.