UNPKG

@apicart/core-sdk

Version:

Apicart Core dependency for all SDKs

58 lines (44 loc) 1.2 kB
import Utils from '@apicart/js-utils'; class Configurator { public readonly ENV_DEV = 'dev'; public readonly ENV_PROD = 'prod'; private _parameters: any = { env: this.ENV_PROD }; constructor() { if (typeof ApicartConfig !== 'undefined') { this._parameters = Utils.Objects.merge(this._parameters, ApicartConfig); } } public configure(parameters: any): void { this._parameters = Utils.Objects.merge(this._parameters, parameters); Utils.EventDispatcher.dispatchEvent('apicart:configure'); } public setEnvironment(environment: string): void { if (![this.ENV_PROD, this.ENV_DEV].includes(environment)) { throw new Error('Unknown environment "' + environment + '".'); } this._parameters.env = environment; Utils.EventDispatcher.dispatchEvent('apicart:environment:changed'); } public isDevEnv(): boolean { return this._parameters.env === this.ENV_DEV; } public isProdEnv(): boolean { return this._parameters.env === this.ENV_PROD; } public getEnvironment(): string { return this._parameters.env; } public getParameter(keyPath: string): any | null { return Utils.Objects.find(this._parameters, keyPath); } } export default new Configurator();