UNPKG

5.01 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.keys = keys;
7exports.unwrap = unwrap;
8exports.expect = expect;
9exports.unreachable = unreachable;
10exports.exhausted = exhausted;
11exports.enumerableSymbol = enumerableSymbol;
12exports.symbol = exports.tuple = exports.HAS_NATIVE_SYMBOL = exports.HAS_NATIVE_PROXY = void 0;
13
14var _intern = _interopRequireDefault(require("./intern"));
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18const HAS_NATIVE_PROXY = typeof Proxy === 'function';
19exports.HAS_NATIVE_PROXY = HAS_NATIVE_PROXY;
20
21const HAS_NATIVE_SYMBOL = function () {
22 if (typeof Symbol !== 'function') {
23 return false;
24 } // eslint-disable-next-line symbol-description
25
26
27 return typeof Symbol() === 'symbol';
28}();
29
30exports.HAS_NATIVE_SYMBOL = HAS_NATIVE_SYMBOL;
31
32function keys(obj) {
33 return Object.keys(obj);
34}
35
36function unwrap(val) {
37 if (val === null || val === undefined) throw new Error(`Expected value to be present`);
38 return val;
39}
40
41function expect(val, message) {
42 if (val === null || val === undefined) throw new Error(message);
43 return val;
44}
45
46function unreachable(message = 'unreachable') {
47 return new Error(message);
48}
49
50function exhausted(value) {
51 throw new Error(`Exhausted ${value}`);
52}
53
54const tuple = (...args) => args;
55
56exports.tuple = tuple;
57
58function enumerableSymbol(key) {
59 return (0, _intern.default)(`__${key}${Math.floor(Math.random() * Date.now())}__`);
60}
61
62const symbol = HAS_NATIVE_SYMBOL ? Symbol : enumerableSymbol;
63exports.symbol = symbol;
64//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3V0aWwvbGliL3BsYXRmb3JtLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQTs7OztBQUlPLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQSxLQUFBLEtBQXpCLFVBQUE7OztBQUVBLE1BQU0saUJBQWlCLEdBQUksWUFBQTtBQUNoQyxNQUFJLE9BQUEsTUFBQSxLQUFKLFVBQUEsRUFBa0M7QUFDaEMsV0FBQSxLQUFBO0FBRjhCLEdBQUEsQ0FLaEM7OztBQUNBLFNBQU8sT0FBTyxNQUFQLEVBQUEsS0FBUCxRQUFBO0FBTkssQ0FBMkIsRUFBM0I7Ozs7QUFTRCxTQUFBLElBQUEsQ0FBQSxHQUFBLEVBQXdCO0FBQzVCLFNBQU8sTUFBTSxDQUFOLElBQUEsQ0FBUCxHQUFPLENBQVA7QUFDRDs7QUFFSyxTQUFBLE1BQUEsQ0FBQSxHQUFBLEVBQWlDO0FBQ3JDLE1BQUksR0FBRyxLQUFILElBQUEsSUFBZ0IsR0FBRyxLQUF2QixTQUFBLEVBQXVDLE1BQU0sSUFBQSxLQUFBLENBQU4sOEJBQU0sQ0FBTjtBQUN2QyxTQUFBLEdBQUE7QUFDRDs7QUFFSyxTQUFBLE1BQUEsQ0FBQSxHQUFBLEVBQUEsT0FBQSxFQUFrRDtBQUN0RCxNQUFJLEdBQUcsS0FBSCxJQUFBLElBQWdCLEdBQUcsS0FBdkIsU0FBQSxFQUF1QyxNQUFNLElBQUEsS0FBQSxDQUFOLE9BQU0sQ0FBTjtBQUN2QyxTQUFBLEdBQUE7QUFDRDs7QUFFSyxTQUFBLFdBQUEsQ0FBc0IsT0FBTyxHQUE3QixhQUFBLEVBQTZDO0FBQ2pELFNBQU8sSUFBQSxLQUFBLENBQVAsT0FBTyxDQUFQO0FBQ0Q7O0FBRUssU0FBQSxTQUFBLENBQUEsS0FBQSxFQUFnQztBQUNwQyxRQUFNLElBQUEsS0FBQSxDQUFVLGFBQWEsS0FBN0IsRUFBTSxDQUFOO0FBQ0Q7O0FBSU0sTUFBTSxLQUFLLEdBQUcsQ0FBa0IsR0FBbEIsSUFBQSxLQUFkLElBQUE7Ozs7QUFFRCxTQUFBLGdCQUFBLENBQUEsR0FBQSxFQUFzQztBQUMxQyxTQUFPLHFCQUFPLEtBQUssR0FBRyxHQUFHLElBQUksQ0FBSixLQUFBLENBQVcsSUFBSSxDQUFKLE1BQUEsS0FBZ0IsSUFBSSxDQUEvQixHQUEyQixFQUEzQixDQUF6QixJQUFPLENBQVA7QUFDRDs7QUFFTSxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsR0FBQSxNQUFBLEdBQWhDLGdCQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCBpbnRlcm4gZnJvbSAnLi9pbnRlcm4nO1xuXG5leHBvcnQgdHlwZSBGYWN0b3J5PFQ+ID0gbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IFQ7XG5cbmV4cG9ydCBjb25zdCBIQVNfTkFUSVZFX1BST1hZID0gdHlwZW9mIFByb3h5ID09PSAnZnVuY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgSEFTX05BVElWRV9TWU1CT0wgPSAoZnVuY3Rpb24gKCkge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzeW1ib2wtZGVzY3JpcHRpb25cbiAgcmV0dXJuIHR5cGVvZiBTeW1ib2woKSA9PT0gJ3N5bWJvbCc7XG59KSgpO1xuXG5leHBvcnQgZnVuY3Rpb24ga2V5czxUPihvYmo6IFQpOiBBcnJheTxrZXlvZiBUPiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopIGFzIEFycmF5PGtleW9mIFQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW53cmFwPFQ+KHZhbDogTWF5YmU8VD4pOiBUIHtcbiAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCB2YWx1ZSB0byBiZSBwcmVzZW50YCk7XG4gIHJldHVybiB2YWwgYXMgVDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGVjdDxUPih2YWw6IE1heWJlPFQ+LCBtZXNzYWdlOiBzdHJpbmcpOiBUIHtcbiAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICByZXR1cm4gdmFsIGFzIFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlYWNoYWJsZShtZXNzYWdlID0gJ3VucmVhY2hhYmxlJyk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBFcnJvcihtZXNzYWdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4aGF1c3RlZCh2YWx1ZTogbmV2ZXIpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihgRXhoYXVzdGVkICR7dmFsdWV9YCk7XG59XG5cbmV4cG9ydCB0eXBlIExpdCA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsIHwgdm9pZCB8IHt9O1xuXG5leHBvcnQgY29uc3QgdHVwbGUgPSA8VCBleHRlbmRzIExpdFtdPiguLi5hcmdzOiBUKSA9PiBhcmdzO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bWVyYWJsZVN5bWJvbChrZXk6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiBpbnRlcm4oYF9fJHtrZXl9JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKX1fX2ApO1xufVxuXG5leHBvcnQgY29uc3Qgc3ltYm9sID0gSEFTX05BVElWRV9TWU1CT0wgPyBTeW1ib2wgOiBlbnVtZXJhYmxlU3ltYm9sO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
\No newline at end of file