ee-ts-util
Version:
typescript utilities and functions
29 lines • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const convict = require("convict");
require("fp-ts");
const Either_1 = require("fp-ts/lib/Either");
exports.buildConfigAdapter = (definition) => {
const schema = {};
Object.keys(definition).forEach((name) => schema[name] = {
env: name,
format: definition[name].format ? definition[name].format : "*",
default: null,
});
const config = convict(schema);
const missingVarMessages = Object.keys(definition).reduce((errorMessages, name) => {
const value = config.get(name);
return value == null ? errorMessages + name + ": defined but not set;" : errorMessages;
}, "");
if (missingVarMessages.length > 0) {
return Either_1.left(missingVarMessages);
}
try {
config.validate();
}
catch (e) {
return Either_1.left(e.message);
}
return Either_1.right((key) => config.get(key));
};
//# sourceMappingURL=adapter.js.map