@intuitionrobotics/push-pub-sub
Version:
46 lines • 1.71 kB
TypeScript
import { type DB_Object } from "@intuitionrobotics/ts-common";
export type SubscribeProps = {
[prop: string]: string | number;
};
export type BaseSubscriptionData = {
props?: SubscribeProps;
pushKey: string;
};
export type SubscriptionDataRegistration<D = any> = BaseSubscriptionData & {
callBack: (data?: D) => void;
};
export type SubscriptionData = BaseSubscriptionData & {
data?: any;
};
export type Language = {
language?: string;
};
export type Request_PushRegister = FirebaseToken & PushSessionId & Language & {
subscriptions: BaseSubscriptionData[];
};
export type Request_ReadPush = DB_Object & {
read: boolean;
};
export type Response_PushRegister = DB_Notifications[];
export type DB_PushSession = FirebaseToken & PushSessionId & Language & {
timestamp: number;
userId?: string;
};
export type DB_Notifications = DB_Object & SubscriptionData & {
userId?: string;
timestamp: number;
read: boolean;
persistent?: boolean;
};
export type DB_PushKeys = PushSessionId & BaseSubscriptionData;
export type FirebaseToken = {
firebaseToken: string;
};
export type PushSessionId = {
pushSessionId: string;
};
export type MessageType<_S extends string, _P extends SubscribeProps, _D> = {};
export type IFP<Binder extends MessageType<any, any, any>> = Binder extends MessageType<infer S, any, any> ? S extends string ? S : never : never;
export type ISP<Binder extends MessageType<any, any, any>> = Binder extends MessageType<any, infer P, any> ? P extends SubscribeProps ? P : never : never;
export type ITP<Binder extends MessageType<any, any, any>> = Binder extends MessageType<any, any, infer D> ? D : never;
//# sourceMappingURL=types.d.ts.map