UNPKG

@willsoto/node-konfig-core

Version:

Core configuration pacakge supporting file, static and environment variables

47 lines 1.43 kB
import { ValueNotFoundError } from "../errors.js"; import { Loader } from "./base.js"; export class EnvLoader extends Loader { options; name = "env"; constructor(options) { super(options); this.options = options; } async load(store) { const values = this.options.envVars.map((envVar) => { if (this.maxRetries > 0) { return this.retryPolicy.execute(() => { return this.processEnvVar(store, envVar); }); } return this.processEnvVar(store, envVar); }); try { await Promise.all(values); } catch (error) { if (this.stopOnFailure) { throw error; } } } processEnvVar(store, envVar) { return new Promise((resolve, reject) => { const { accessor, envVarName, arraySeparator } = envVar; const value = process.env[envVarName]; if (!value) { reject(new ValueNotFoundError()); return; } store.set(accessor, this.processValue(value, arraySeparator)); resolve(); }); } processValue(value, arraySeparator) { if (arraySeparator && value.includes(arraySeparator)) { return value.split(arraySeparator); } return value; } } //# sourceMappingURL=env.js.map