@ema/js-base-library
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.
163 lines • 11 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { ConfigService } from '../config/config-service';
import { configDefaults } from '../config/config-defaults';
import { TranslateService } from '../translate/translate-service';
/** @type {?} */
const singleton = Symbol();
/** @type {?} */
const singletonEnforcer = Symbol();
export class BaseService {
/**
* @param {?} enforcer
*/
constructor(enforcer) {
if (enforcer !== singletonEnforcer) {
throw new Error('Cannot construct singleton');
}
this._configService = ConfigService.instance;
this._translateService = TranslateService.instance;
this._type = 'BaseService';
this._environment = {
global: this.getGlobal(),
started: Math.round(+new Date() / 1000),
type: 'js'
};
}
/**
* @param {?} config
* @param {?=} useDefaults
* @param {?=} namespace
* @return {?}
*/
initApp(config, useDefaults = false, namespace = undefined) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
if (namespace) {
this.initGlobalNameSpace(namespace);
}
if (useDefaults) {
this.config.setDefaults(configDefaults);
}
if (typeof config === 'string') {
/** @type {?} */
let configFetched = yield this.config.fetch(config, true);
return configFetched;
}
if (typeof config === 'object') {
this.config.add(config);
return config;
}
});
}
/**
* @param {?} url
* @return {?}
*/
fetchJson(url) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
/** @type {?} */
const response = yield fetch(url);
/** @type {?} */
const json = yield response.json();
return json;
});
}
;
/**
* @return {?}
*/
getGlobal() {
if (typeof self !== 'undefined') {
return self;
}
if (typeof window !== 'undefined') {
return window;
}
// @ts-ignore
if (typeof global !== 'undefined') {
return global;
}
throw new Error('unable to locate global object');
}
/**
* @param {?=} namespace
* @return {?}
*/
initGlobalNameSpace(namespace = '_ema') {
this.config.set('globalNameSpace', namespace);
this.getGlobal()[namespace] = this;
}
/**
* @return {?}
*/
get config() {
return this._configService;
}
/**
* @return {?}
*/
get environment() {
return this._environment;
}
/**
* @return {?}
*/
get translation() {
return this._translateService;
}
/**
* @return {?}
*/
get translateService() {
return this._translateService;
}
/**
* @return {?}
*/
static get instance() {
if (!this[singleton]) {
this[singleton] = new BaseService(singletonEnforcer);
}
return this[singleton];
}
/**
* @return {?}
*/
get type() {
return this._type;
}
/**
* @param {?} value
* @return {?}
*/
set type(value) {
this._type = value;
}
}
if (false) {
/**
* @type {?}
* @private
*/
BaseService.prototype._environment;
/**
* @type {?}
* @private
*/
BaseService.prototype._configService;
/**
* @type {?}
* @private
*/
BaseService.prototype._translateService;
/**
* @type {?}
* @private
*/
BaseService.prototype._type;
/* Skipping unhandled member: ;*/
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGVtYS9qcy1iYXNlLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvYmFzZS9iYXNlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztNQUU1RCxTQUFTLEdBQUcsTUFBTSxFQUFFOztNQUNwQixpQkFBaUIsR0FBRyxNQUFNLEVBQUU7QUFFbEMsTUFBTSxPQUFPLFdBQVc7Ozs7SUFTcEIsWUFBWSxRQUFRO1FBQ2hCLElBQUksUUFBUSxLQUFLLGlCQUFpQixFQUFFO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztTQUNqRDtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztZQUN2QyxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUE7SUFDTCxDQUFDOzs7Ozs7O0lBRUssT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUFFLFlBQW9CLFNBQVM7O1lBQ3BFLElBQUcsU0FBUyxFQUFFO2dCQUNWLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN2QztZQUNELElBQUcsV0FBVyxFQUFFO2dCQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7O29CQUN4QixhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO2dCQUN6RCxPQUFPLGFBQWEsQ0FBQzthQUN4QjtZQUNELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEIsT0FBTyxNQUFNLENBQUM7YUFDakI7UUFDTCxDQUFDO0tBQUE7Ozs7O0lBRUssU0FBUyxDQUFDLEdBQVc7OztrQkFDakIsUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQzs7a0JBQzNCLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztLQUFBO0lBQUEsQ0FBQzs7OztJQUVGLFNBQVM7UUFDTCxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDakQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFBRSxPQUFPLE1BQU0sQ0FBQztTQUFFO1FBQ3JELGFBQWE7UUFDYixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFFLE9BQU8sTUFBTSxDQUFDO1NBQUU7UUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Ozs7O0lBRUQsbUJBQW1CLENBQUMsWUFBb0IsTUFBTTtRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7Ozs7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQzs7OztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDOzs7O0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQzs7OztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7Ozs7SUFFRCxNQUFNLEtBQUssUUFBUTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDeEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7O0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSztRQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7Q0FFSjs7Ozs7O0lBdEZHLG1DQUEwQjs7Ozs7SUFDMUIscUNBQXNDOzs7OztJQUN0Qyx3Q0FBNEM7Ozs7O0lBQzVDLDRCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLXNlcnZpY2UnO1xuaW1wb3J0IHsgY29uZmlnRGVmYXVsdHMgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLWRlZmF1bHRzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi90cmFuc2xhdGUvdHJhbnNsYXRlLXNlcnZpY2UnO1xuXG5jb25zdCBzaW5nbGV0b24gPSBTeW1ib2woKTtcbmNvbnN0IHNpbmdsZXRvbkVuZm9yY2VyID0gU3ltYm9sKCk7XG5cbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZSB7XG4gICAgLypcbiAgICAqIGpzLWJhc2U6IGFwcGxpY2F0aW9uIHNpbmdsZXRvbiBzZXJ2aWNlXG4gICAgKiAqL1xuICAgIHByaXZhdGUgX2Vudmlyb25tZW50OiBhbnk7XG4gICAgcHJpdmF0ZSBfY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZTtcbiAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuICAgIHByaXZhdGUgX3R5cGU6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGVuZm9yY2VyKSB7XG4gICAgICAgIGlmIChlbmZvcmNlciAhPT0gc2luZ2xldG9uRW5mb3JjZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbnN0cnVjdCBzaW5nbGV0b24nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb25maWdTZXJ2aWNlID0gQ29uZmlnU2VydmljZS5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZSA9IFRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFuY2U7XG4gICAgICAgIHRoaXMuX3R5cGUgPSAnQmFzZVNlcnZpY2UnO1xuICAgICAgICB0aGlzLl9lbnZpcm9ubWVudCA9IHtcbiAgICAgICAgICAgIGdsb2JhbDogdGhpcy5nZXRHbG9iYWwoKSxcbiAgICAgICAgICAgIHN0YXJ0ZWQ6IE1hdGgucm91bmQoK25ldyBEYXRlKCkgLyAxMDAwKSxcbiAgICAgICAgICAgIHR5cGU6ICdqcydcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGluaXRBcHAoY29uZmlnLCB1c2VEZWZhdWx0cyA9IGZhbHNlLCBuYW1lc3BhY2U6IHN0cmluZyA9IHVuZGVmaW5lZCkge1xuICAgICAgICBpZihuYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEdsb2JhbE5hbWVTcGFjZShuYW1lc3BhY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHVzZURlZmF1bHRzKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5zZXREZWZhdWx0cyhjb25maWdEZWZhdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBsZXQgY29uZmlnRmV0Y2hlZCA9IGF3YWl0IHRoaXMuY29uZmlnLmZldGNoKGNvbmZpZywgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gY29uZmlnRmV0Y2hlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiggdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZChjb25maWcpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGZldGNoSnNvbih1cmw6IHN0cmluZykge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCk7XG4gICAgICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgIHJldHVybiBqc29uO1xuICAgIH07XG5cbiAgICBnZXRHbG9iYWwoKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuIHNlbGY7IH1cbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7IHJldHVybiB3aW5kb3c7IH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAodHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcpIHsgcmV0dXJuIGdsb2JhbDsgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdCcpO1xuICAgIH1cblxuICAgIGluaXRHbG9iYWxOYW1lU3BhY2UobmFtZXNwYWNlOiBzdHJpbmcgPSAnX2VtYScpIHtcbiAgICAgICAgdGhpcy5jb25maWcuc2V0KCdnbG9iYWxOYW1lU3BhY2UnLG5hbWVzcGFjZSk7XG4gICAgICAgIHRoaXMuZ2V0R2xvYmFsKClbbmFtZXNwYWNlXSA9IHRoaXM7XG4gICAgfVxuXG4gICAgZ2V0IGNvbmZpZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZ1NlcnZpY2U7XG4gICAgfVxuXG4gICAgZ2V0IGVudmlyb25tZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQ7XG4gICAgfVxuXG4gICAgZ2V0IHRyYW5zbGF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZTtcbiAgICB9XG5cbiAgICBnZXQgdHJhbnNsYXRlU2VydmljZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2U7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBpbnN0YW5jZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzW3NpbmdsZXRvbl0pIHtcbiAgICAgICAgICAgIHRoaXNbc2luZ2xldG9uXSA9IG5ldyBCYXNlU2VydmljZShzaW5nbGV0b25FbmZvcmNlcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXNbc2luZ2xldG9uXTtcbiAgICB9XG5cbiAgICBnZXQgdHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gICAgfVxuXG4gICAgc2V0IHR5cGUodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fdHlwZSA9IHZhbHVlO1xuICAgIH1cblxufVxuXG4iXX0=