@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
92 lines (90 loc) • 7.28 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/cbor/_memory.ts
var memory_exports = {};
__export(memory_exports, {
Memory: () => Memory
});
module.exports = __toCommonJS(memory_exports);
var import_errors = require("../errors/index.cjs");
var _Memory = class _Memory {
constructor() {
this.blocks = /* @__PURE__ */ new Map();
}
define(address, size) {
const b = this.blocks.get(address);
if (b) {
if (b.size !== size) {
throw new import_errors.CborMemoryBlockConflictError(address, b.size, size);
}
} else {
this.blocks.set(address, {
busy: false,
data: null,
size
});
}
}
remove(address) {
const b = this.blocks.get(address);
if (b) {
if (b.busy) {
throw new import_errors.CborMemoryBlockInUseError(
`Cannot remove memory block at address ${address} because it is currently in use.`
);
}
this.blocks.delete(address);
}
}
alloc(address) {
let b = this.blocks.get(address);
if (!b) {
throw new import_errors.CborUndefinedMemoryBlockError(address);
}
if (b.busy) {
throw new import_errors.CborMemoryBlockInUseError(
`Memory block at address ${address} is currently in use and cannot be modified.`
);
}
if (b.data === null) {
const data = new Uint8Array(b.size);
this.blocks.set(
address,
b = {
busy: false,
data,
view: new DataView(data.buffer, 0, b.size),
size: b.size
}
);
}
b.busy = true;
return b;
}
free(address) {
const b = this.blocks.get(address);
if (b) {
b.busy = false;
}
}
};
__name(_Memory, "Memory");
var Memory = _Memory;
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2Nib3IvX21lbW9yeS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtcbiAgQ2Jvck1lbW9yeUJsb2NrQ29uZmxpY3RFcnJvcixcbiAgQ2Jvck1lbW9yeUJsb2NrSW5Vc2VFcnJvcixcbiAgQ2JvclVuZGVmaW5lZE1lbW9yeUJsb2NrRXJyb3IsXG59IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZXJyb3JzXCI7XG5cbmV4cG9ydCB0eXBlIE1lbW9yeUFkZHJlc3MgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCB0eXBlIERlZmluZWRNZW1vcnlCbG9jayA9IHtcbiAgYnVzeTogZmFsc2U7XG4gIHJlYWRvbmx5IGRhdGE6IG51bGw7XG4gIHJlYWRvbmx5IHNpemU6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEFsbG9jYXRlZE1lbW9yeUJsb2NrID0ge1xuICBidXN5OiBib29sZWFuO1xuICByZWFkb25seSBkYXRhOiBVaW50OEFycmF5O1xuICByZWFkb25seSB2aWV3OiBEYXRhVmlldztcbiAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTWVtb3J5QmxvY2sgPSBEZWZpbmVkTWVtb3J5QmxvY2sgfCBBbGxvY2F0ZWRNZW1vcnlCbG9jaztcblxuZXhwb3J0IGNsYXNzIE1lbW9yeSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBibG9ja3M6IE1hcDxNZW1vcnlBZGRyZXNzLCBNZW1vcnlCbG9jaz4gPSBuZXcgTWFwKCk7XG5cbiAgZGVmaW5lKGFkZHJlc3M6IE1lbW9yeUFkZHJlc3MsIHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGIgPSB0aGlzLmJsb2Nrcy5nZXQoYWRkcmVzcyk7XG5cbiAgICBpZiAoYikge1xuICAgICAgaWYgKGIuc2l6ZSAhPT0gc2l6ZSkge1xuICAgICAgICB0aHJvdyBuZXcgQ2Jvck1lbW9yeUJsb2NrQ29uZmxpY3RFcnJvcihhZGRyZXNzLCBiLnNpemUsIHNpemUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJsb2Nrcy5zZXQoYWRkcmVzcywge1xuICAgICAgICBidXN5OiBmYWxzZSxcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgc2l6ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZShhZGRyZXNzOiBNZW1vcnlBZGRyZXNzKTogdm9pZCB7XG4gICAgY29uc3QgYiA9IHRoaXMuYmxvY2tzLmdldChhZGRyZXNzKTtcblxuICAgIGlmIChiKSB7XG4gICAgICBpZiAoYi5idXN5KSB7XG4gICAgICAgIHRocm93IG5ldyBDYm9yTWVtb3J5QmxvY2tJblVzZUVycm9yKFxuICAgICAgICAgIGBDYW5ub3QgcmVtb3ZlIG1lbW9yeSBibG9jayBhdCBhZGRyZXNzICR7YWRkcmVzc30gYmVjYXVzZSBpdCBpcyBgXG4gICAgICAgICAgICArIFwiY3VycmVudGx5IGluIHVzZS5cIixcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5ibG9ja3MuZGVsZXRlKGFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIGFsbG9jKGFkZHJlc3M6IE1lbW9yeUFkZHJlc3MpOiBBbGxvY2F0ZWRNZW1vcnlCbG9jayB7XG4gICAgbGV0IGIgPSB0aGlzLmJsb2Nrcy5nZXQoYWRkcmVzcyk7XG5cbiAgICBpZiAoIWIpIHtcbiAgICAgIHRocm93IG5ldyBDYm9yVW5kZWZpbmVkTWVtb3J5QmxvY2tFcnJvcihhZGRyZXNzKTtcbiAgICB9XG5cbiAgICBpZiAoYi5idXN5KSB7XG4gICAgICB0aHJvdyBuZXcgQ2Jvck1lbW9yeUJsb2NrSW5Vc2VFcnJvcihcbiAgICAgICAgYE1lbW9yeSBibG9jayBhdCBhZGRyZXNzICR7YWRkcmVzc30gaXMgY3VycmVudGx5IGluIHVzZSBhbmQgY2Fubm90IGJlIGBcbiAgICAgICAgICArIFwibW9kaWZpZWQuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChiLmRhdGEgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBuZXcgVWludDhBcnJheShiLnNpemUpO1xuICAgICAgdGhpcy5ibG9ja3Muc2V0KFxuICAgICAgICBhZGRyZXNzLFxuICAgICAgICBiID0ge1xuICAgICAgICAgIGJ1c3k6IGZhbHNlLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgdmlldzogbmV3IERhdGFWaWV3KGRhdGEuYnVmZmVyLCAwLCBiLnNpemUpLFxuICAgICAgICAgIHNpemU6IGIuc2l6ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYi5idXN5ID0gdHJ1ZTtcblxuICAgIHJldHVybiBiO1xuICB9XG5cbiAgZnJlZShhZGRyZXNzOiBNZW1vcnlBZGRyZXNzKTogdm9pZCB7XG4gICAgY29uc3QgYiA9IHRoaXMuYmxvY2tzLmdldChhZGRyZXNzKTtcblxuICAgIGlmIChiKSB7XG4gICAgICBiLmJ1c3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxvQkFJTztBQW1CQSxJQUFNLFVBQU4sTUFBTSxRQUFPO0FBQUEsRUFBYjtBQUNMLFNBQW1CLFNBQTBDLG9CQUFJLElBQUk7QUFBQTtBQUFBLEVBRXJFLE9BQU8sU0FBd0IsTUFBb0I7QUFDakQsVUFBTSxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU87QUFFakMsUUFBSSxHQUFHO0FBQ0wsVUFBSSxFQUFFLFNBQVMsTUFBTTtBQUNuQixjQUFNLElBQUksMkNBQTZCLFNBQVMsRUFBRSxNQUFNLElBQUk7QUFBQSxNQUM5RDtBQUFBLElBQ0YsT0FBTztBQUNMLFdBQUssT0FBTyxJQUFJLFNBQVM7QUFBQSxRQUN2QixNQUFNO0FBQUEsUUFDTixNQUFNO0FBQUEsUUFDTjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQUEsRUFFQSxPQUFPLFNBQThCO0FBQ25DLFVBQU0sSUFBSSxLQUFLLE9BQU8sSUFBSSxPQUFPO0FBRWpDLFFBQUksR0FBRztBQUNMLFVBQUksRUFBRSxNQUFNO0FBQ1YsY0FBTSxJQUFJO0FBQUEsVUFDUix5Q0FBeUMsT0FBTztBQUFBLFFBRWxEO0FBQUEsTUFDRjtBQUVBLFdBQUssT0FBTyxPQUFPLE9BQU87QUFBQSxJQUM1QjtBQUFBLEVBQ0Y7QUFBQSxFQUVBLE1BQU0sU0FBOEM7QUFDbEQsUUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU87QUFFL0IsUUFBSSxDQUFDLEdBQUc7QUFDTixZQUFNLElBQUksNENBQThCLE9BQU87QUFBQSxJQUNqRDtBQUVBLFFBQUksRUFBRSxNQUFNO0FBQ1YsWUFBTSxJQUFJO0FBQUEsUUFDUiwyQkFBMkIsT0FBTztBQUFBLE1BRXBDO0FBQUEsSUFDRjtBQUVBLFFBQUksRUFBRSxTQUFTLE1BQU07QUFDbkIsWUFBTSxPQUFPLElBQUksV0FBVyxFQUFFLElBQUk7QUFDbEMsV0FBSyxPQUFPO0FBQUEsUUFDVjtBQUFBLFFBQ0EsSUFBSTtBQUFBLFVBQ0YsTUFBTTtBQUFBLFVBQ047QUFBQSxVQUNBLE1BQU0sSUFBSSxTQUFTLEtBQUssUUFBUSxHQUFHLEVBQUUsSUFBSTtBQUFBLFVBQ3pDLE1BQU0sRUFBRTtBQUFBLFFBQ1Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLE1BQUUsT0FBTztBQUVULFdBQU87QUFBQSxFQUNUO0FBQUEsRUFFQSxLQUFLLFNBQThCO0FBQ2pDLFVBQU0sSUFBSSxLQUFLLE9BQU8sSUFBSSxPQUFPO0FBRWpDLFFBQUksR0FBRztBQUNMLFFBQUUsT0FBTztBQUFBLElBQ1g7QUFBQSxFQUNGO0FBQ0Y7QUF6RW9CO0FBQWIsSUFBTSxTQUFOOyIsCiAgIm5hbWVzIjogW10KfQo=