UNPKG

@beenotung/tslib

Version:
31 lines (30 loc) 887 B
"use strict"; 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'); } }