@actyx/sdk
Version:
Actyx SDK
114 lines (113 loc) • 4.62 kB
TypeScript
import * as t from 'io-ts';
import { DoPersistEvents, DoQuery, DoSubscribe, DoSubscribeMonotonic, EventStore, RequestOffsets } from '../internal_common/eventStore';
import { MultiplexedWebsocket } from './multiplexedWebsocket';
import { AllEventsSortOrders, PersistedEventsSortOrders } from './types';
export declare const enum RequestTypes {
SourceId = "/ax/events/getSourceId",
Present = "/ax/events/requestPresent",
PersistedEvents = "/ax/events/requestPersistedEvents",
AllEvents = "/ax/events/requestAllEvents",
PersistEvents = "/ax/events/persistEvents",
HighestSeen = "/ax/events/highestSeenOffsets",
Connectivity = "/ax/events/requestConnectivity"
}
declare const ValueOrLimit: t.UnionC<[t.NumberC, t.LiteralC<"min">, t.LiteralC<"max">]>;
export declare type ValueOrLimit = t.TypeOf<typeof ValueOrLimit>;
export declare const PersistedEventsRequest: t.ReadonlyC<t.TypeC<{
minEventKey: t.UnionC<[t.NullC, t.ReadonlyC<t.TypeC<{
lamport: t.NumberC;
psn: t.NumberC;
sourceId: t.StringC;
}>>]>;
fromPsnsExcluding: t.ReadonlyC<t.TypeC<{
psns: t.ReadonlyC<t.RecordC<t.StringC, t.NumberC>>;
default: t.UnionC<[t.NumberC, t.LiteralC<"min">, t.LiteralC<"max">]>;
}>>;
toPsnsIncluding: t.ReadonlyC<t.TypeC<{
psns: t.ReadonlyC<t.RecordC<t.StringC, t.NumberC>>;
default: t.UnionC<[t.NumberC, t.LiteralC<"min">, t.LiteralC<"max">]>;
}>>;
subscriptionSet: t.TaggedUnionC<"type", [t.TypeC<{
type: t.LiteralC<"empty">;
}>, t.TypeC<{
type: t.LiteralC<"all">;
}>, t.TypeC<{
type: t.LiteralC<"or">;
subscriptions: t.ReadonlyArrayC<t.ReadonlyC<t.TypeC<{
semantics: t.StringC;
name: t.StringC;
sourceId: t.StringC;
}>>>;
}>, t.TypeC<{
type: t.LiteralC<"tags">;
subscriptions: t.ReadonlyArrayC<t.ReadonlyC<t.TypeC<{
tags: t.ReadonlyArrayC<t.StringC>;
local: t.BooleanC;
}>>>;
}>]>;
sortOrder: import("./types").EnumType<PersistedEventsSortOrders>;
count: t.UnionC<[t.NumberC, t.LiteralC<"min">, t.LiteralC<"max">]>;
}>>;
export declare type PersistedEventsRequest = t.TypeOf<typeof PersistedEventsRequest>;
export declare const AllEventsRequest: t.ReadonlyC<t.TypeC<{
fromPsnsExcluding: t.ReadonlyC<t.TypeC<{
psns: t.ReadonlyC<t.RecordC<t.StringC, t.NumberC>>;
default: t.UnionC<[t.NumberC, t.LiteralC<"min">, t.LiteralC<"max">]>;
}>>;
minEventKey: t.UnionC<[t.NullC, t.ReadonlyC<t.TypeC<{
lamport: t.NumberC;
psn: t.NumberC;
sourceId: t.StringC;
}>>]>;
toPsnsIncluding: t.ReadonlyC<t.TypeC<{
psns: t.ReadonlyC<t.RecordC<t.StringC, t.NumberC>>;
default: t.UnionC<[t.NumberC, t.LiteralC<"min">, t.LiteralC<"max">]>;
}>>;
subscriptionSet: t.TaggedUnionC<"type", [t.TypeC<{
type: t.LiteralC<"empty">;
}>, t.TypeC<{
type: t.LiteralC<"all">;
}>, t.TypeC<{
type: t.LiteralC<"or">;
subscriptions: t.ReadonlyArrayC<t.ReadonlyC<t.TypeC<{
semantics: t.StringC;
name: t.StringC;
sourceId: t.StringC;
}>>>;
}>, t.TypeC<{
type: t.LiteralC<"tags">;
subscriptions: t.ReadonlyArrayC<t.ReadonlyC<t.TypeC<{
tags: t.ReadonlyArrayC<t.StringC>;
local: t.BooleanC;
}>>>;
}>]>;
sortOrder: import("./types").EnumType<AllEventsSortOrders>;
count: t.UnionC<[t.NumberC, t.LiteralC<"min">, t.LiteralC<"max">]>;
}>>;
export declare type AllEventsRequest = t.TypeOf<typeof AllEventsRequest>;
export declare const PersistEventsRequest: t.ReadonlyC<t.TypeC<{
events: t.ReadonlyArrayC<t.ReadonlyC<t.TypeC<{
semantics: t.StringC;
name: t.StringC;
timestamp: t.NumberC;
tags: t.Type<string[], string[] | undefined, unknown>;
payload: t.UnknownC;
}>>>;
}>>;
export declare type PersistEventsRequest = t.TypeOf<typeof PersistEventsRequest>;
export declare const getSourceId: (multiplexedWebsocket: MultiplexedWebsocket) => Promise<string>;
export declare class WebsocketEventStore implements EventStore {
private readonly multiplexer;
readonly sourceId: string;
private _present;
private _highestSeen;
constructor(multiplexer: MultiplexedWebsocket, sourceId: string);
offsets: RequestOffsets;
queryUnchecked: () => never;
subscribeUnchecked: () => never;
query: DoQuery;
subscribe: DoSubscribe;
subscribeMonotonic: DoSubscribeMonotonic;
persistEvents: DoPersistEvents;
}
export {};