UNPKG

@polkadot/api

Version:

Promise and RxJS wrappers around the Polkadot JS RPC

104 lines (90 loc) 2.79 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Events = void 0; var _eventemitter = _interopRequireDefault(require("eventemitter3")); // Copyright 2017-2022 @polkadot/api authors & contributors // SPDX-License-Identifier: Apache-2.0 class Events { #eventemitter = new _eventemitter.default(); emit(type) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } return this.#eventemitter.emit(type, ...args); } /** * @description Attach an eventemitter handler to listen to a specific event * * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error` * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments. * * @example * <BR> * * ```javascript * api.on('connected', (): void => { * console.log('API has been connected to the endpoint'); * }); * * api.on('disconnected', (): void => { * console.log('API has been disconnected from the endpoint'); * }); * ``` */ on(type, handler) { this.#eventemitter.on(type, handler); return this; } /** * @description Remove the given eventemitter handler * * @param type The type of event the callback was attached to. Available events are `connected`, `disconnected`, `ready` and `error` * @param handler The callback to unregister. * * @example * <BR> * * ```javascript * const handler = (): void => { * console.log('Connected !); * }; * * // Start listening * api.on('connected', handler); * * // Stop listening * api.off('connected', handler); * ``` */ off(type, handler) { this.#eventemitter.removeListener(type, handler); return this; } /** * @description Attach an one-time eventemitter handler to listen to a specific event * * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error` * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments. * * @example * <BR> * * ```javascript * api.once('connected', (): void => { * console.log('API has been connected to the endpoint'); * }); * * api.once('disconnected', (): void => { * console.log('API has been disconnected from the endpoint'); * }); * ``` */ once(type, handler) { this.#eventemitter.once(type, handler); return this; } } exports.Events = Events;