@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
JavaScript
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==