@authup/core-realtime-kit
Version:
Package containing a toolkit for the core realtime service.
82 lines (81 loc) • 3.12 kB
text/typescript
import { Manager, ManagerOptions, Socket } from "socket.io-client";
//#region src/types.d.ts
type STCEventContext<T extends Record<string, any>> = T & {
meta: {
roomName?: string;
roomId?: string | number;
};
};
type EventTarget = string | number | undefined;
interface EventCallback<T = any> {
(error: Error | null): void;
(error: Error | null, data: T): void;
}
type DefaultEvents = {
[event: string]: any;
};
type STSEvents = {
[event: string]: (...args: any[]) => void;
};
type STCEvents = {
[event: string]: (...args: any[]) => void;
};
type CTSEvents = {
[event: string]: (...args: any[]) => void;
};
type DisconnectDescription = {
description: string;
context?: unknown;
};
//#endregion
//#region src/client/manager/types.d.ts
type ClientManagerTokenSyncFn = () => string | undefined;
type ClientManagerTokenAsyncFn = () => Promise<string | undefined>;
type ClientManagerTokenFn = ClientManagerTokenSyncFn | ClientManagerTokenAsyncFn;
type ClientManagerContext = {
url: string;
options?: Partial<ManagerOptions>;
token?: string | ClientManagerTokenFn;
};
//#endregion
//#region src/client/manager/module.d.ts
declare class ClientManager<ListenEvents extends DefaultEvents = STCEvents, EmitEvents extends DefaultEvents = CTSEvents> {
protected manager: Manager<ListenEvents, EmitEvents>;
protected sockets: Map<string, Socket<ListenEvents, EmitEvents>>;
protected tokenFn: ClientManagerTokenFn;
constructor(ctx: ClientManagerContext);
get options(): Partial<ManagerOptions>;
connect(namespace?: string): Promise<Socket<ListenEvents, EmitEvents>>;
disconnect(namespace?: string): Promise<void>;
reconnect(namespace?: string): Promise<Socket<ListenEvents, EmitEvents>>;
reconnectAll(): Promise<Socket<ListenEvents, EmitEvents>[]>;
inject(namespace?: string): Socket<ListenEvents, EmitEvents>;
eject(namespace?: string): void;
}
//#endregion
//#region src/event/constants.d.ts
declare enum EventNameSuffix {
CREATED = "created",
DELETED = "deleted",
UPDATED = "updated",
SUBSCRIBE = "subscribe",
UNSUBSCRIBE = "unsubscribe"
}
//#endregion
//#region src/event/types.d.ts
type EventPayload = {
event: string;
type: string;
data: Record<string, any>;
};
type EventFullName<ENTITY extends string = string, EVENT extends string = string> = `${ENTITY}${Capitalize<EVENT>}`;
//#endregion
//#region src/event/helpers.d.ts
declare function buildEventFullName<ENTITY extends string, VERB extends string>(entity: ENTITY, event: VERB): EventFullName<ENTITY, VERB>;
//#endregion
//#region src/helpers.d.ts
declare function isEventTarget(input: unknown): input is EventTarget;
declare function isEventCallback(input: unknown, fnArgs?: number): input is EventCallback;
//#endregion
export { CTSEvents, ClientManager, ClientManagerContext, ClientManagerTokenAsyncFn, ClientManagerTokenFn, ClientManagerTokenSyncFn, DefaultEvents, DisconnectDescription, EventCallback, EventFullName, EventNameSuffix, EventPayload, EventTarget, STCEventContext, STCEvents, STSEvents, buildEventFullName, isEventCallback, isEventTarget };
//# sourceMappingURL=index.d.mts.map