MessageStorage
Constructors
Signature
declare function make(storage: Omit<MessageStorage["Type"], "registerReplyHandler" | "unregisterReplyHandler" | "unregisterShardReplyHandlers">): Effect<any>makeEncoded
Added in v1.0.0
Source
Signature
declare const makeEncoded: (encoded: Encoded) => Effect.Effect<MessageStorage["Type"], never, Snowflake.Generator>Constructors
Context
MessageStorage
Added in v1.0.0
Source
Signature
declare class MessageStorage extends any { constructor();}Encoded
Signature
type Encoded = { readonly clearAddress: (address: EntityAddress) => Effect.Effect<void, PersistenceError>; readonly clearReplies: (requestId: Snowflake.Snowflake) => Effect.Effect<void, PersistenceError>; readonly repliesFor: (requestIds: Arr.NonEmptyArray<string>) => Effect.Effect<Array<Reply.ReplyEncoded<any>>, PersistenceError>; readonly repliesForUnfiltered: (requestIds: Arr.NonEmptyArray<string>) => Effect.Effect<Array<Reply.ReplyEncoded<any>>, PersistenceError>; readonly requestIdForPrimaryKey: (primaryKey: string) => Effect.Effect<Option.Option<Snowflake.Snowflake>, PersistenceError>; readonly resetAddress: (address: EntityAddress) => Effect.Effect<void, PersistenceError>; readonly resetShards: (shardIds: Arr.NonEmptyArray<string>) => Effect.Effect<void, PersistenceError>; readonly saveEnvelope: (options: { readonly deliverAt: number | null; readonly envelope: Envelope.Envelope.Encoded; readonly primaryKey: string | null; }) => Effect.Effect<SaveResult.Encoded, PersistenceError>; readonly saveReply: (reply: Reply.ReplyEncoded<any>) => Effect.Effect<void, PersistenceError>; readonly unprocessedMessages: (shardIds: Arr.NonEmptyArray<string>, now: number) => Effect.Effect<Array<{ readonly envelope: Envelope.Envelope.Encoded; readonly lastSentReply: Option.Option<Reply.ReplyEncoded<any>>; }>, PersistenceError>; readonly unprocessedMessagesById: (messageIds: Arr.NonEmptyArray<Snowflake.Snowflake>, now: number) => Effect.Effect<Array<{ readonly envelope: Envelope.Envelope.Encoded; readonly lastSentReply: Option.Option<Reply.ReplyEncoded<any>>; }>, PersistenceError>;}EncodedRepliesOptions type
Added in v1.0.0
Source
Signature
type EncodedRepliesOptions<A> = { readonly cursor: Option.Option<A>; readonly existingRequests: Array<string>; readonly newRequests: Array<string>;}EncodedUnprocessedOptions type
Added in v1.0.0
Source
Signature
type EncodedUnprocessedOptions<A> = { readonly cursor: Option.Option<A>; readonly existingShards: Array<number>; readonly newShards: Array<number>;}Layers
layerMemory
Added in v1.0.0
Source
Signature
declare const layerMemory: Layer.Layer<MessageStorage | MemoryDriver, never, ShardingConfig>Signature
declare const layerNoop: Layer.Layer<MessageStorage>Memory
MemoryDriver
Added in v1.0.0
Source
Signature
declare class MemoryDriver extends any { constructor();}MemoryEntry type
Added in v1.0.0
Source
Signature
type MemoryEntry = { deliverAt: number | null; readonly envelope: Envelope.Request.Encoded; lastReceivedChunk: Option.Option<Reply.ChunkEncoded<any>>; replies: Array<Reply.ReplyEncoded<any>>;}SaveResult
SaveResult
Added in v1.0.0
Source
Signature
declare const SaveResult: { readonly $is: <Tag extends "Success" | "Duplicate">(tag: Tag) => { <T extends SaveResult<any>>(u: T): u is T & { readonly _tag: Tag; }; (u: unknown): u is Extract<Success, { readonly _tag: Tag; }> | Extract<Duplicate<unknown>, { readonly _tag: Tag; }>; }; readonly $match: { <A, B, C, D, Cases extends { Duplicate: (args: Duplicate<A extends Any ? A : never>) => any; Success: (args: Success) => any; }>(cases: Cases): (self: SaveResult<A extends Any ? A : never>) => Unify<ReturnType<Cases["Success" | "Duplicate"]>>; <A, B, C, D, Cases extends { Duplicate: (args: Duplicate<A extends Any ? A : never>) => any; Success: (args: Success) => any; }>(self: SaveResult<A extends Any ? A : never>, cases: Cases): Unify<ReturnType<Cases["Success" | "Duplicate"]>>; }; Duplicate: <A>(args: { readonly lastReceivedReply: Option<Reply<A extends Any ? A : never>>; readonly originalId: Snowflake; }) => Duplicate<A extends Any ? A : never>; Success: <A>(args: void) => Success;}SaveResult
Added in v1.0.0
Source
SaveResult type
Added in v1.0.0
Source
Signature
type SaveResult<R extends Rpc.Any> = SaveResult.Success | SaveResult.Duplicate<R>SaveResultEncoded
Added in v1.0.0
Source
Signature
declare const SaveResultEncoded: { readonly $is: <Tag extends "Success" | "Duplicate">(tag: Tag) => (u: unknown) => u is Extract<Success, { readonly _tag: Tag; }> | Extract<DuplicateEncoded, { readonly _tag: Tag; }>; readonly $match: { <Cases extends { Duplicate: (args: DuplicateEncoded) => any; Success: (args: Success) => any; }>(cases: Cases): (value: Encoded) => Unify<ReturnType<Cases["Success" | "Duplicate"]>>; <Cases extends { Duplicate: (args: DuplicateEncoded) => any; Success: (args: Success) => any; }>(value: Encoded, cases: Cases): Unify<ReturnType<Cases["Success" | "Duplicate"]>>; }; Duplicate: ConstructorFrom<DuplicateEncoded, "_tag">; Success: ConstructorFrom<Success, "_tag">;}