@beenotung/tslib
Version:
utils library in Typescript
31 lines (30 loc) • 887 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertNever = assertNever;
exports.assertNoUndefined = assertNoUndefined;
function assertNever(x) {
console.error('assert never, but got:', x);
throw new Error('assert never, but got: ' + x);
}
function assertNoUndefined(o, visited = new Set()) {
if (visited.has(o)) {
return;
}
visited.add(o);
if (Array.isArray(o)) {
o.forEach(x => assertNoUndefined(x, visited));
return;
}
if (o instanceof Map) {
Array.from(o.values()).forEach(x => assertNoUndefined(x, visited));
return;
}
if (typeof o === 'object') {
Object.keys(o).forEach(x => assertNoUndefined(o[x], visited));
return;
}
// e.g. number, string
if (o === undefined) {
throw new Error('AssertionError: undefined value');
}
}