piral-base
Version:
The base library for creating a Piral instance.
58 lines (54 loc) • 1.56 kB
text/typescript
/**
* Gets fired when a pilet gets unloaded.
*/
export interface PiralUnloadPiletEvent {
/**
* The name of the pilet to be unloaded.
*/
name: string;
}
/**
* The map of known Piral app shell events.
*/
export interface PiralEventMap {
'unload-pilet': PiralUnloadPiletEvent;
[custom: string]: any;
}
/**
* Listener for Piral app shell events.
*/
export interface Listener<T> {
/**
* Receives an event of type T.
*/
(arg: T): void;
}
/**
* The emitter for Piral app shell events.
*/
export interface EventEmitter {
/**
* Attaches a new event listener.
* @param type The type of the event to listen for.
* @param callback The callback to trigger.
*/
on<K extends keyof PiralEventMap>(type: K, callback: Listener<PiralEventMap[K]>): EventEmitter;
/**
* Attaches a new event listener that is removed once the event fired.
* @param type The type of the event to listen for.
* @param callback The callback to trigger.
*/
once<K extends keyof PiralEventMap>(type: K, callback: Listener<PiralEventMap[K]>): EventEmitter;
/**
* Detaches an existing event listener.
* @param type The type of the event to listen for.
* @param callback The callback to trigger.
*/
off<K extends keyof PiralEventMap>(type: K, callback: Listener<PiralEventMap[K]>): EventEmitter;
/**
* Emits a new event with the given type.
* @param type The type of the event to emit.
* @param arg The payload of the event.
*/
emit<K extends keyof PiralEventMap>(type: K, arg: PiralEventMap[K]): EventEmitter;
}