UNPKG

@prettyfluid/zentinel

Version:

Integration helper for Zentinel

39 lines (38 loc) 1.79 kB
import { ZentinelObject, ZentinelRequest } from "."; import { ZentinelMessageTypes } from "../../core"; import { CheckUser, Consumer, ProviderLogoUrl, Question } from "../auth"; import { Category } from "../categories"; export declare type ZentinelResponse<Type extends ZentinelMessageTypes> = { messageId: string; type: ZentinelMessageTypes; body?: ZentinelResponseBodyType<Type>; error?: ZentinelError; }; export interface ZentinelError { message: string; errorInstance: Error; request: ZentinelRequest<ZentinelMessageTypes>; } export interface ZentinelResponseBodyTypes { [ZentinelMessageTypes.login]: Consumer & { publicKey: string; }; [ZentinelMessageTypes.restoreSession]: Consumer; [ZentinelMessageTypes.token]: string; [ZentinelMessageTypes.initSessionPopup]: Consumer; [ZentinelMessageTypes.getCategory]: Category; [ZentinelMessageTypes.loadData]: ZentinelObject; [ZentinelMessageTypes.saveData]: string; [ZentinelMessageTypes.registration]: Consumer; [ZentinelMessageTypes.confirmEmail]: string; [ZentinelMessageTypes.updateSharing]: boolean; [ZentinelMessageTypes.checkUser]: CheckUser; [ZentinelMessageTypes.sendConfirmMigrationEmail]: boolean; [ZentinelMessageTypes.sendConfirmRegistrationEmail]: boolean; [ZentinelMessageTypes.checkToken]: boolean; [ZentinelMessageTypes.getAllQuestions]: Question[]; [ZentinelMessageTypes.getMyQuestions]: Question[]; [ZentinelMessageTypes.getProviderLogoUrl]: ProviderLogoUrl; } export declare type ZentinelResponseBodyType<Type extends ZentinelMessageTypes> = Type extends keyof ZentinelResponseBodyTypes ? ZentinelResponseBodyTypes[Type] : never; export declare type ZentinelResponseMessage = ZentinelResponse<ZentinelMessageTypes>;