UNPKG

ssm-config-loader

Version:

Load configuration from SSM Parameter Store with local fallback

40 lines 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createSingletonConfigGetter = exports.ConfigError = void 0; const client_ssm_1 = require("@aws-sdk/client-ssm"); const index_1 = require("./index"); class ConfigError extends Error { constructor(message, wrappedError) { if (wrappedError instanceof Error) { message += `: ${wrappedError.message}`; } super(message); this.wrappedError = wrappedError; } } exports.ConfigError = ConfigError; const createSingletonConfigGetter = (ssm, schema, prefix) => { let configPromise; return async () => { if (configPromise) { return configPromise; } return configPromise = (async () => { let rawConfig; try { rawConfig = await (0, index_1.loadSsmConfig)(new client_ssm_1.SSM({}), prefix); } catch (error) { throw new ConfigError('Config loading failed', error); } try { return schema.parse(rawConfig); } catch (error) { throw new ConfigError('Config validation failed', error); } })(); }; }; exports.createSingletonConfigGetter = createSingletonConfigGetter; //# sourceMappingURL=singleton-config-getter.js.map