@sprucelabs/schema
Version:
Static and dynamic binding plus runtime validation and transformation to ensure your app is sound. 🤓
27 lines (26 loc) • 928 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = assertOptions;
const just_safe_get_1 = __importDefault(require("just-safe-get"));
const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
function assertOptions(options, toCheck, friendlyMessage) {
const missing = [];
for (const check of toCheck) {
const value = (0, just_safe_get_1.default)(options ?? {}, check);
//@ts-ignore
if (value === null || typeof value === 'undefined') {
missing.push(check);
}
}
if (missing.length > 0) {
throw new SpruceError_1.default({
code: 'MISSING_PARAMETERS',
parameters: missing,
friendlyMessage,
});
}
return options;
}