UNPKG

empty-piral

Version:

An empty app shell with no dependencies.

110 lines (105 loc) 2.71 kB
/** * Defines the API accessible from pilets. */ export interface PiletApi extends EventEmitter { /** * Gets the metadata of the current pilet. */ meta: PiletMetadata; } /** * 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; } /** * Describes the metadata of a pilet available in its API. */ export interface PiletMetadata { /** * The name of the pilet, i.e., the package id. */ name: string; /** * The version of the pilet. Should be semantically versioned. */ version: string; /** * Provides the version of the specification for this pilet. */ spec: string; /** * Provides some custom metadata for the pilet. */ custom?: any; /** * Optionally indicates the global require reference, if any. */ requireRef?: string; /** * Additional shared dependencies from the pilet. */ dependencies: Record<string, string>; /** * Provides some configuration to be used in the pilet. */ config: Record<string, any>; /** * The URL of the main script of the pilet. */ link: string; /** * The base path to the pilet. Can be used to make resource requests * and override the public path. */ basePath: string; } /** * Listener for Piral app shell events. */ export interface Listener<T> { /** * Receives an event of type T. */ (arg: T): void; } /** * The map of known Piral app shell events. */ export interface PiralEventMap { "unload-pilet": PiralUnloadPiletEvent; [custom: string]: any; } /** * Gets fired when a pilet gets unloaded. */ export interface PiralUnloadPiletEvent { /** * The name of the pilet to be unloaded. */ name: string; }