@serwist/window
Version:
Simplifies communications with Serwist packages running in the service worker
39 lines • 1.4 kB
TypeScript
import type { SerwistEventTarget } from "./SerwistEventTarget.js";
/**
* A minimal `Event` subclass shim.
* This doesn't *actually* subclass `Event` because not all browsers support
* constructable `EventTarget`, and using a real `Event` will error.
* @private
*/
export declare class SerwistEvent<K extends keyof SerwistEventMap> {
type: K;
target?: SerwistEventTarget;
sw?: ServiceWorker;
originalEvent?: Event;
isExternal?: boolean;
constructor(type: K, props: Omit<SerwistEventMap[K], "target" | "type">);
}
export interface SerwistMessageEvent extends SerwistEvent<"message"> {
data: any;
originalEvent: Event;
ports: readonly MessagePort[];
}
export interface SerwistLifecycleEvent extends SerwistEvent<keyof SerwistLifecycleEventMap> {
isUpdate?: boolean;
}
export interface SerwistLifecycleWaitingEvent extends SerwistLifecycleEvent {
wasWaitingBeforeRegister?: boolean;
}
export interface SerwistLifecycleEventMap {
installing: SerwistLifecycleEvent;
installed: SerwistLifecycleEvent;
waiting: SerwistLifecycleWaitingEvent;
activating: SerwistLifecycleEvent;
activated: SerwistLifecycleEvent;
controlling: SerwistLifecycleEvent;
redundant: SerwistLifecycleEvent;
}
export interface SerwistEventMap extends SerwistLifecycleEventMap {
message: SerwistMessageEvent;
}
//# sourceMappingURL=SerwistEvent.d.ts.map