@apicart/core-sdk
Version:
Apicart Core dependency for all SDKs
58 lines (44 loc) • 1.2 kB
text/typescript
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();