web-push-notifications
Version:
Pushwoosh web push notifications
57 lines (56 loc) • 2.77 kB
TypeScript
export type EventPayload<Parameters extends Record<string, unknown>> = Parameters & Record<'eventId', string>;
export type EventHandler<Payload extends EventPayload<Record<string, unknown>>> = (payload: Payload) => void | Promise<void>;
export interface EventHandlerMap {
ready: EventHandler<EventPayload<Record<string, never>>>;
'change-enabled-communication': EventHandler<EventPayload<{
isEnabled: boolean;
}>>;
'communication-disabled': EventHandler<EventPayload<Record<string, never>>>;
register: EventHandler<EventPayload<Record<string, never>>>;
unregister: EventHandler<EventPayload<Record<string, never>>>;
'show-subscription-widget': EventHandler<EventPayload<Record<string, never>>>;
'hide-subscription-widget': EventHandler<EventPayload<Record<string, never>>>;
'show-notification-permission-dialog': EventHandler<EventPayload<Record<string, never>>>;
'hide-notification-permission-dialog': EventHandler<EventPayload<{
permission: NotificationPermission;
}>>;
'permission-default': EventHandler<EventPayload<Record<string, never>>>;
'permission-denied': EventHandler<EventPayload<Record<string, never>>>;
'permission-granted': EventHandler<EventPayload<Record<string, never>>>;
'change-permission': EventHandler<EventPayload<{
permission: NotificationPermission;
}>>;
'initialize-service-worker': EventHandler<EventPayload<Record<string, never>>>;
'initialize-service-worker-error': EventHandler<EventPayload<{
error: Error;
}>>;
subscribe: EventHandler<EventPayload<Record<string, never>>>;
unsubscribe: EventHandler<EventPayload<Record<string, never>>>;
'receive-push': EventHandler<EventPayload<{
notification: unknown;
}>>;
'show-notification': EventHandler<EventPayload<{
notification: unknown;
}>>;
'open-notification': EventHandler<EventPayload<{
notification: unknown;
}>>;
'hide-notification': EventHandler<EventPayload<{
notification: unknown;
}>>;
'receive-inbox-message': EventHandler<EventPayload<{
message: unknown;
}>>;
'update-inbox-messages': EventHandler<EventPayload<{
messages: unknown;
}>>;
'receive-in-app-code': EventHandler<EventPayload<{
code: string;
}>>;
'subscribe-popup-ready': EventHandler<EventPayload<Record<string, never>>>;
'subscribe-popup-show': EventHandler<EventPayload<Record<string, never>>>;
'subscribe-popup-hide': EventHandler<EventPayload<Record<string, never>>>;
'subscribe-popup-decline': EventHandler<EventPayload<Record<string, never>>>;
'subscribe-popup-accept': EventHandler<EventPayload<Record<string, never>>>;
}
export type EventName = keyof EventHandlerMap;