UNPKG

4.21 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.symbol = exports.tuple = void 0;
12
13function keys(obj) {
14 return Object.keys(obj);
15}
16
17function unwrap(val) {
18 if (val === null || val === undefined) throw new Error("Expected value to be present");
19 return val;
20}
21
22function expect(val, message) {
23 if (val === null || val === undefined) throw new Error(message);
24 return val;
25}
26
27function unreachable(message) {
28 if (message === void 0) {
29 message = 'unreachable';
30 }
31
32 return new Error(message);
33}
34
35function exhausted(value) {
36 throw new Error("Exhausted " + value);
37}
38
39var tuple = function tuple() {
40 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
41 args[_key] = arguments[_key];
42 }
43
44 return args;
45};
46
47exports.tuple = tuple;
48var symbol = typeof Symbol !== 'undefined' ? Symbol : function (key) {
49 return "__" + key + Math.floor(Math.random() * Date.now()) + "__";
50};
51exports.symbol = symbol;
52//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3V0aWwvbGliL3BsYXRmb3JtLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUtNLFNBQUEsSUFBQSxDQUFBLEdBQUEsRUFBd0I7QUFDNUIsU0FBTyxNQUFNLENBQU4sSUFBQSxDQUFQLEdBQU8sQ0FBUDtBQUNEOztBQUVLLFNBQUEsTUFBQSxDQUFBLEdBQUEsRUFBaUM7QUFDckMsTUFBSSxHQUFHLEtBQUgsSUFBQSxJQUFnQixHQUFHLEtBQXZCLFNBQUEsRUFBdUMsTUFBTSxJQUFOLEtBQU0sQ0FBTiw4QkFBTSxDQUFOO0FBQ3ZDLFNBQUEsR0FBQTtBQUNEOztBQUVLLFNBQUEsTUFBQSxDQUFBLEdBQUEsRUFBQSxPQUFBLEVBQWtEO0FBQ3RELE1BQUksR0FBRyxLQUFILElBQUEsSUFBZ0IsR0FBRyxLQUF2QixTQUFBLEVBQXVDLE1BQU0sSUFBQSxLQUFBLENBQU4sT0FBTSxDQUFOO0FBQ3ZDLFNBQUEsR0FBQTtBQUNEOztBQUVLLFNBQUEsV0FBQSxDQUFBLE9BQUEsRUFBNkM7QUFBQSxNQUF2QixPQUF1QixLQUFBLEtBQUEsQ0FBQSxFQUFBO0FBQXZCLElBQUEsT0FBdUIsR0FBN0MsYUFBc0I7QUFBdUI7O0FBQ2pELFNBQU8sSUFBQSxLQUFBLENBQVAsT0FBTyxDQUFQO0FBQ0Q7O0FBRUssU0FBQSxTQUFBLENBQUEsS0FBQSxFQUFnQztBQUNwQyxRQUFNLElBQUEsS0FBQSxDQUFBLGVBQU4sS0FBTSxDQUFOO0FBQ0Q7O0FBSU0sSUFBTSxLQUFLLEdBQUcsU0FBUixLQUFRLEdBQUE7QUFBQSxPQUFBLElBQUEsSUFBQSxHQUFBLFNBQUEsQ0FBQSxNQUFBLEVBQUEsSUFBQSxHQUFBLElBQUEsS0FBQSxDQUFBLElBQUEsQ0FBQSxFQUFBLElBQUEsR0FBQSxDQUFBLEVBQUEsSUFBQSxHQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsRUFBQTtBQUFBLElBQUEsSUFBQSxDQUFBLElBQUEsQ0FBQSxHQUFBLFNBQUEsQ0FBQSxJQUFBLENBQUE7QUFBQTs7QUFBQSxTQUFkLElBQWM7QUFBZCxDQUFBOzs7QUFFQSxJQUFNLE1BQU0sR0FDakIsT0FBQSxNQUFBLEtBQUEsV0FBQSxHQUFBLE1BQUEsR0FFSyxVQUFELEdBQUMsRUFBRDtBQUFBLFNBQUEsT0FBQSxHQUFBLEdBQTRCLElBQUksQ0FBSixLQUFBLENBQVcsSUFBSSxDQUFKLE1BQUEsS0FBZ0IsSUFBSSxDQUgxRCxHQUdzRCxFQUEzQixDQUE1QixHQUFBLElBQUE7QUFIQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT3B0aW9uPFQ+ID0gVCB8IG51bGw7XG5leHBvcnQgdHlwZSBNYXliZTxUPiA9IE9wdGlvbjxUPiB8IHVuZGVmaW5lZCB8IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEZhY3Rvcnk8VD4gPSBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gVDtcblxuZXhwb3J0IGZ1bmN0aW9uIGtleXM8VD4ob2JqOiBUKTogQXJyYXk8a2V5b2YgVD4ge1xuICByZXR1cm4gT2JqZWN0LmtleXMob2JqKSBhcyBBcnJheTxrZXlvZiBUPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVud3JhcDxUPih2YWw6IE1heWJlPFQ+KTogVCB7XG4gIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdmFsdWUgdG8gYmUgcHJlc2VudGApO1xuICByZXR1cm4gdmFsIGFzIFQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBlY3Q8VD4odmFsOiBNYXliZTxUPiwgbWVzc2FnZTogc3RyaW5nKTogVCB7XG4gIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgcmV0dXJuIHZhbCBhcyBUO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWFjaGFibGUobWVzc2FnZSA9ICd1bnJlYWNoYWJsZScpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgRXJyb3IobWVzc2FnZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGhhdXN0ZWQodmFsdWU6IG5ldmVyKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoYEV4aGF1c3RlZCAke3ZhbHVlfWApO1xufVxuXG5leHBvcnQgdHlwZSBMaXQgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbCB8IHZvaWQgfCB7fTtcblxuZXhwb3J0IGNvbnN0IHR1cGxlID0gPFQgZXh0ZW5kcyBMaXRbXT4oLi4uYXJnczogVCkgPT4gYXJncztcblxuZXhwb3J0IGNvbnN0IHN5bWJvbCA9XG4gIHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnXG4gICAgPyBTeW1ib2xcbiAgICA6IChrZXk6IHN0cmluZykgPT4gYF9fJHtrZXl9JHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBEYXRlLm5vdygpKX1fX2AgYXMgYW55O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
\No newline at end of file