| /** | |
| * Describes request values whose results can be persisted. | |
| * | |
| * A `Persistable` request has a primary key and schemas for its success and | |
| * error results. `Persistence` and `PersistedCache` use that information to | |
| * store the request's `Exit` value and restore it later from a backing store. | |
| * | |
| * @since 4.0.0 | |
| */ | |
| import type * as Duration from "../../Duration.ts"; | |
| import type * as Effect from "../../Effect.ts"; | |
| import type * as Exit from "../../Exit.ts"; | |
| import * as PrimaryKey from "../../PrimaryKey.ts"; | |
| import * as Request from "../../Request.ts"; | |
| import * as Schema from "../../Schema.ts"; | |
| import type * as Types from "../../Types.ts"; | |
| import type { PersistenceError } from "./Persistence.ts"; | |
| /** | |
| * Defines the property key used to attach success and error schemas to persistable | |
| * requests. | |
| * | |
| * **When to use** | |
| * | |
| * Use to implement persistable request values by attaching success and error | |
| * schemas at this property key. | |
| * | |
| * @category symbols | |
| * @since 4.0.0 | |
| */ | |
| export declare const symbol: "~effect/persistence/Persistable"; | |
| /** | |
| * A primary-keyed request value whose success and error results can be | |
| * serialized for persistence. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export interface Persistable<A extends Schema.Top, E extends Schema.Top> extends PrimaryKey.PrimaryKey { | |
| readonly [symbol]: { | |
| readonly success: A; | |
| readonly error: E; | |
| }; | |
| } | |
| /** | |
| * Any persistable request regardless of its success and error schemas. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type Any = Persistable<Schema.Top, Schema.Top>; | |
| /** | |
| * Extracts the success schema from a persistable request. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type SuccessSchema<A extends Any> = A["~effect/persistence/Persistable"]["success"]; | |
| /** | |
| * Extracts the success value type from a persistable request. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type Success<A extends Any> = A["~effect/persistence/Persistable"]["success"]["Type"]; | |
| /** | |
| * Extracts the error schema from a persistable request. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type ErrorSchema<A extends Any> = A["~effect/persistence/Persistable"]["error"]; | |
| /** | |
| * Extracts the error value type from a persistable request. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type Error<A extends Any> = A["~effect/persistence/Persistable"]["error"]["Type"]; | |
| /** | |
| * Services required to decode a persisted success or error value for the | |
| * request. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type DecodingServices<A extends Any> = A["~effect/persistence/Persistable"]["success"]["DecodingServices"] | A["~effect/persistence/Persistable"]["error"]["DecodingServices"]; | |
| /** | |
| * Services required to encode a success or error value for persistence. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type EncodingServices<A extends Any> = A["~effect/persistence/Persistable"]["success"]["EncodingServices"] | A["~effect/persistence/Persistable"]["error"]["EncodingServices"]; | |
| /** | |
| * All schema services required to encode and decode a persistable request | |
| * result. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type Services<A extends Any> = A["~effect/persistence/Persistable"]["success"]["DecodingServices"] | A["~effect/persistence/Persistable"]["success"]["EncodingServices"] | A["~effect/persistence/Persistable"]["error"]["DecodingServices"] | A["~effect/persistence/Persistable"]["error"]["EncodingServices"]; | |
| /** | |
| * Computes the time to live for a persisted result from the result `Exit` and | |
| * request value. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type TimeToLiveFn<K extends Any> = (exit: Exit.Exit<Success<K>, Error<K>>, request: K) => Duration.Input; | |
| /** | |
| * Creates request classes that implement `Persistable` and `Request.Request`. | |
| * | |
| * **Details** | |
| * | |
| * The generated class stores the supplied tag, derives its primary key from | |
| * the payload, and carries schemas for persisted success and error exits. | |
| * | |
| * @category constructors | |
| * @since 4.0.0 | |
| */ | |
| export declare const Class: <Config extends { | |
| payload: Record<string, unknown>; | |
| requires?: any; | |
| requestError?: any; | |
| } = { | |
| payload: {}; | |
| }>() => <const Tag extends string, A extends Schema.Top = Schema.Void, E extends Schema.Top = Schema.Never>(tag: Tag, options: { | |
| readonly primaryKey: (payload: Config["payload"]) => string; | |
| readonly success?: A | undefined; | |
| readonly error?: E | undefined; | |
| }) => new (args: Types.EqualsWith<Config["payload"], {}, void, { readonly [P in keyof Config["payload"] as P extends "_tag" ? never : P]: Config["payload"][P]; }>) => { | |
| readonly _tag: Tag; | |
| } & { readonly [K in keyof Config["payload"]]: Config["payload"][K]; } & Persistable<A, E> & Request.Request<A["Type"], E["Type"] | ("requestError" extends keyof Config ? Config["requestError"] : (PersistenceError | Schema.SchemaError)), A["DecodingServices"] | A["EncodingServices"] | E["DecodingServices"] | E["EncodingServices"] | ("requires" extends keyof Config ? Config["requires"] : never)>; | |
| /** | |
| * Returns the cached `Exit` schema for a persistable request's success and | |
| * error schemas. | |
| * | |
| * @category accessors | |
| * @since 4.0.0 | |
| */ | |
| export declare const exitSchema: <A extends Schema.Top, E extends Schema.Top>(self: Persistable<A, E>) => Schema.Exit<A, E, Schema.Defect>; | |
| /** | |
| * Encodes an `Exit` for a persistable request using its success and error | |
| * schemas. | |
| * | |
| * @category serialization | |
| * @since 4.0.0 | |
| */ | |
| export declare const serializeExit: <A extends Schema.Top, E extends Schema.Top>(self: Persistable<A, E>, exit: Exit.Exit<A["Type"], E["Type"]>) => Effect.Effect<unknown, Schema.SchemaError, A["EncodingServices"] | E["EncodingServices"]>; | |
| /** | |
| * Decodes a persisted value into an `Exit` for a persistable request using its | |
| * success and error schemas. | |
| * | |
| * @category serialization | |
| * @since 4.0.0 | |
| */ | |
| export declare const deserializeExit: <A extends Schema.Top, E extends Schema.Top>(self: Persistable<A, E>, encoded: unknown) => Effect.Effect<Exit.Exit<A["Type"], E["Type"]>, Schema.SchemaError, A["DecodingServices"] | E["DecodingServices"]>; | |
| //# sourceMappingURL=Persistable.d.ts.map |
Xet Storage Details
- Size:
- 6.12 kB
- Xet hash:
- 314a29e80ffebec69608767a7a13a371382f7ca005dc5d3ddfde184cee56dbb7
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.