@stringsync/vexml
Version:
MusicXML to Vexflow
31 lines (30 loc) • 918 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertNotNull = assertNotNull;
exports.assertNull = assertNull;
exports.assertDefined = assertDefined;
exports.assert = assert;
exports.assertUnreachable = assertUnreachable;
function assertNotNull(value, msg) {
if (value === null) {
throw new Error(msg ?? `expected value to be present, got: ${value}`);
}
}
function assertNull(value, msg) {
if (value !== null) {
throw new Error(msg ?? `expected value to be null, got: ${value}`);
}
}
function assertDefined(value, msg) {
if (typeof value === 'undefined') {
throw new Error(msg ?? `expected value to be defined, got: ${value}`);
}
}
function assert(condition, msg) {
if (!condition) {
throw new Error(msg ?? 'assertion failed');
}
}
function assertUnreachable() {
throw new Error('expected to be unreachable');
}