UNPKG

@kephas/core

Version:

Provides a common infrastructure for all the other Kephas Framework components: ambient services, dynamic reflection, composition, application management, and others.

34 lines 3.6 kB
import { Deferrable } from "../deferrable"; /** * Helper class for working with services. * * @export * @class ServiceHelper */ export class ServiceHelper { /** * Initializes the service asynchronously, provided it implements either the * Initializable or AsyncInitializable interfaces. * * @static * @param {{ [key: string]: any }} service * @param {Context} [context] The context to pass to the initialization method. * @returns {Promise<void>} A promise returning the asynchronous result. * @memberof ServiceHelper */ static initializeAsync(service, context) { if (service.initializeAsync) { return service.initializeAsync(context); } const deferrable = new Deferrable(); if (service.initialize) { deferrable.resolve(true); service.initialize(context); } else { deferrable.resolve(false); } return deferrable.promise; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZUhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlcGhhcy9jb3JlL3NyYy9saWIvc2VydmljZXMvc2VydmljZUhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFDdEI7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUErQixFQUFFLE9BQWlCO1FBQ3JFLElBQUksT0FBTyxDQUFDLGVBQWUsRUFBRTtZQUN6QixPQUFPLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRXBDLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUNwQixVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0I7YUFDSTtZQUNELFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0I7UUFFRCxPQUFPLFVBQVUsQ0FBQyxPQUF3QixDQUFDO0lBQy9DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmVycmFibGUgfSBmcm9tIFwiLi4vZGVmZXJyYWJsZVwiO1xyXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIi4vY29udGV4dFwiO1xyXG5cclxuLyoqXHJcbiAqIEhlbHBlciBjbGFzcyBmb3Igd29ya2luZyB3aXRoIHNlcnZpY2VzLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBTZXJ2aWNlSGVscGVyXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2VydmljZUhlbHBlciB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIHRoZSBzZXJ2aWNlIGFzeW5jaHJvbm91c2x5LCBwcm92aWRlZCBpdCBpbXBsZW1lbnRzIGVpdGhlciB0aGVcclxuICAgICAqIEluaXRpYWxpemFibGUgb3IgQXN5bmNJbml0aWFsaXphYmxlIGludGVyZmFjZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHN0YXRpY1xyXG4gICAgICogQHBhcmFtIHt7IFtrZXk6IHN0cmluZ106IGFueSB9fSBzZXJ2aWNlXHJcbiAgICAgKiBAcGFyYW0ge0NvbnRleHR9IFtjb250ZXh0XSBUaGUgY29udGV4dCB0byBwYXNzIHRvIHRoZSBpbml0aWFsaXphdGlvbiBtZXRob2QuXHJcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gQSBwcm9taXNlIHJldHVybmluZyB0aGUgYXN5bmNocm9ub3VzIHJlc3VsdC5cclxuICAgICAqIEBtZW1iZXJvZiBTZXJ2aWNlSGVscGVyXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpbml0aWFsaXplQXN5bmMoc2VydmljZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY29udGV4dD86IENvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoc2VydmljZS5pbml0aWFsaXplQXN5bmMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2UuaW5pdGlhbGl6ZUFzeW5jKGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVmZXJyYWJsZSA9IG5ldyBEZWZlcnJhYmxlKCk7XHJcblxyXG4gICAgICAgIGlmIChzZXJ2aWNlLmluaXRpYWxpemUpIHtcclxuICAgICAgICAgICAgZGVmZXJyYWJsZS5yZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICBzZXJ2aWNlLmluaXRpYWxpemUoY29udGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkZWZlcnJhYmxlLnJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGRlZmVycmFibGUucHJvbWlzZSBhcyBQcm9taXNlPHZvaWQ+O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==