summaryrefslogtreecommitdiff
path: root/node_modules/@jridgewell/set-array/dist/set-array.umd.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@jridgewell/set-array/dist/set-array.umd.js')
-rw-r--r--node_modules/@jridgewell/set-array/dist/set-array.umd.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/node_modules/@jridgewell/set-array/dist/set-array.umd.js b/node_modules/@jridgewell/set-array/dist/set-array.umd.js
new file mode 100644
index 0000000..a1c200a
--- /dev/null
+++ b/node_modules/@jridgewell/set-array/dist/set-array.umd.js
@@ -0,0 +1,58 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.setArray = {}));
+})(this, (function (exports) { 'use strict';
+
+ /**
+ * Gets the index associated with `key` in the backing array, if it is already present.
+ */
+ exports.get = void 0;
+ /**
+ * Puts `key` into the backing array, if it is not already present. Returns
+ * the index of the `key` in the backing array.
+ */
+ exports.put = void 0;
+ /**
+ * Pops the last added item out of the SetArray.
+ */
+ exports.pop = void 0;
+ /**
+ * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the
+ * index of the `key` in the backing array.
+ *
+ * This is designed to allow synchronizing a second array with the contents of the backing array,
+ * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,
+ * and there are never duplicates.
+ */
+ class SetArray {
+ constructor() {
+ this._indexes = { __proto__: null };
+ this.array = [];
+ }
+ }
+ (() => {
+ exports.get = (strarr, key) => strarr._indexes[key];
+ exports.put = (strarr, key) => {
+ // The key may or may not be present. If it is present, it's a number.
+ const index = exports.get(strarr, key);
+ if (index !== undefined)
+ return index;
+ const { array, _indexes: indexes } = strarr;
+ return (indexes[key] = array.push(key) - 1);
+ };
+ exports.pop = (strarr) => {
+ const { array, _indexes: indexes } = strarr;
+ if (array.length === 0)
+ return;
+ const last = array.pop();
+ indexes[last] = undefined;
+ };
+ })();
+
+ exports.SetArray = SetArray;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+}));
+//# sourceMappingURL=set-array.umd.js.map