vike
Version:
The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.
28 lines (27 loc) • 1.11 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertKeys = assertKeys;
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
const assert_js_1 = require("./assert.js");
const joinEnglish_js_1 = require("./joinEnglish.js");
function assertKeys(obj, keysExpected, errPrefix) {
const keysUnknown = [];
const keys = Object.keys(obj);
for (const key of keys) {
if (!keysExpected.includes(key)) {
keysUnknown.push(key);
}
}
if (keysUnknown.length !== 0) {
(0, assert_js_1.assertUsage)(false, [
errPrefix,
`unknown key${keysUnknown.length === 1 ? '' : 's'}`,
(0, joinEnglish_js_1.joinEnglish)(keysUnknown, 'and', picocolors_1.default.cyan) + '.',
'Only following keys are allowed:',
(0, joinEnglish_js_1.joinEnglish)(keysExpected, 'and', picocolors_1.default.cyan) + '.',
].join(' '));
}
}