@equinor/fusion-framework-cli
Version:
--- title: Fusion Framework CLI ---
28 lines • 1.1 kB
JavaScript
import assert, { AssertionError } from 'node:assert';
export { assert, AssertionError };
export function assertNumber(value, message) {
assert(!Number.isNaN(value), new AssertionError({
message,
actual: value,
expected: '<number>',
}));
}
export function assertObject(value, message) {
assert(typeof value === 'object', message);
}
function assertObjectEntryValue(value, prop, message) {
assert(!!value, message ?? `missing value of property ${prop}`);
}
export function assertObjectEntries(
// extends Record<string, unknown> = unknown>(
value, options) {
const preMessage = options?.preMessage ?? '';
assert(typeof value === 'object', `${preMessage} to be an <object>`);
const assertion = options?.assertion ?? assertObjectEntryValue;
const props = options?.props ?? Object.keys(value);
for (const prop of props) {
assert(prop in value, `${preMessage} to have property [${String(prop)}]`);
assertion(value[prop], prop, `${preMessage} property [${String(prop)}] to have value`);
}
}
//# sourceMappingURL=assert.js.map