UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

77 lines (75 loc) 6.43 kB
var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); // src/cbor/_memory.ts import { CborMemoryBlockConflictError, CborMemoryBlockInUseError, CborUndefinedMemoryBlockError } from "../errors/index.mjs"; 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 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 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 CborUndefinedMemoryBlockError(address); } if (b.busy) { throw new 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; export { Memory }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2Nib3IvX21lbW9yeS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtcbiAgQ2Jvck1lbW9yeUJsb2NrQ29uZmxpY3RFcnJvcixcbiAgQ2Jvck1lbW9yeUJsb2NrSW5Vc2VFcnJvcixcbiAgQ2JvclVuZGVmaW5lZE1lbW9yeUJsb2NrRXJyb3IsXG59IGZyb20gXCJAdGFpLWt1bi9zdXJyZWFsZGIvZXJyb3JzXCI7XG5cbmV4cG9ydCB0eXBlIE1lbW9yeUFkZHJlc3MgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCB0eXBlIERlZmluZWRNZW1vcnlCbG9jayA9IHtcbiAgYnVzeTogZmFsc2U7XG4gIHJlYWRvbmx5IGRhdGE6IG51bGw7XG4gIHJlYWRvbmx5IHNpemU6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEFsbG9jYXRlZE1lbW9yeUJsb2NrID0ge1xuICBidXN5OiBib29sZWFuO1xuICByZWFkb25seSBkYXRhOiBVaW50OEFycmF5O1xuICByZWFkb25seSB2aWV3OiBEYXRhVmlldztcbiAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTWVtb3J5QmxvY2sgPSBEZWZpbmVkTWVtb3J5QmxvY2sgfCBBbGxvY2F0ZWRNZW1vcnlCbG9jaztcblxuZXhwb3J0IGNsYXNzIE1lbW9yeSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBibG9ja3M6IE1hcDxNZW1vcnlBZGRyZXNzLCBNZW1vcnlCbG9jaz4gPSBuZXcgTWFwKCk7XG5cbiAgZGVmaW5lKGFkZHJlc3M6IE1lbW9yeUFkZHJlc3MsIHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGIgPSB0aGlzLmJsb2Nrcy5nZXQoYWRkcmVzcyk7XG5cbiAgICBpZiAoYikge1xuICAgICAgaWYgKGIuc2l6ZSAhPT0gc2l6ZSkge1xuICAgICAgICB0aHJvdyBuZXcgQ2Jvck1lbW9yeUJsb2NrQ29uZmxpY3RFcnJvcihhZGRyZXNzLCBiLnNpemUsIHNpemUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJsb2Nrcy5zZXQoYWRkcmVzcywge1xuICAgICAgICBidXN5OiBmYWxzZSxcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgc2l6ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZShhZGRyZXNzOiBNZW1vcnlBZGRyZXNzKTogdm9pZCB7XG4gICAgY29uc3QgYiA9IHRoaXMuYmxvY2tzLmdldChhZGRyZXNzKTtcblxuICAgIGlmIChiKSB7XG4gICAgICBpZiAoYi5idXN5KSB7XG4gICAgICAgIHRocm93IG5ldyBDYm9yTWVtb3J5QmxvY2tJblVzZUVycm9yKFxuICAgICAgICAgIGBDYW5ub3QgcmVtb3ZlIG1lbW9yeSBibG9jayBhdCBhZGRyZXNzICR7YWRkcmVzc30gYmVjYXVzZSBpdCBpcyBgXG4gICAgICAgICAgICArIFwiY3VycmVudGx5IGluIHVzZS5cIixcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5ibG9ja3MuZGVsZXRlKGFkZHJlc3MpO1xuICAgIH1cbiAgfVxuXG4gIGFsbG9jKGFkZHJlc3M6IE1lbW9yeUFkZHJlc3MpOiBBbGxvY2F0ZWRNZW1vcnlCbG9jayB7XG4gICAgbGV0IGIgPSB0aGlzLmJsb2Nrcy5nZXQoYWRkcmVzcyk7XG5cbiAgICBpZiAoIWIpIHtcbiAgICAgIHRocm93IG5ldyBDYm9yVW5kZWZpbmVkTWVtb3J5QmxvY2tFcnJvcihhZGRyZXNzKTtcbiAgICB9XG5cbiAgICBpZiAoYi5idXN5KSB7XG4gICAgICB0aHJvdyBuZXcgQ2Jvck1lbW9yeUJsb2NrSW5Vc2VFcnJvcihcbiAgICAgICAgYE1lbW9yeSBibG9jayBhdCBhZGRyZXNzICR7YWRkcmVzc30gaXMgY3VycmVudGx5IGluIHVzZSBhbmQgY2Fubm90IGJlIGBcbiAgICAgICAgICArIFwibW9kaWZpZWQuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChiLmRhdGEgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBuZXcgVWludDhBcnJheShiLnNpemUpO1xuICAgICAgdGhpcy5ibG9ja3Muc2V0KFxuICAgICAgICBhZGRyZXNzLFxuICAgICAgICBiID0ge1xuICAgICAgICAgIGJ1c3k6IGZhbHNlLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgdmlldzogbmV3IERhdGFWaWV3KGRhdGEuYnVmZmVyLCAwLCBiLnNpemUpLFxuICAgICAgICAgIHNpemU6IGIuc2l6ZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgYi5idXN5ID0gdHJ1ZTtcblxuICAgIHJldHVybiBiO1xuICB9XG5cbiAgZnJlZShhZGRyZXNzOiBNZW1vcnlBZGRyZXNzKTogdm9pZCB7XG4gICAgY29uc3QgYiA9IHRoaXMuYmxvY2tzLmdldChhZGRyZXNzKTtcblxuICAgIGlmIChiKSB7XG4gICAgICBiLmJ1c3kgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7QUFBQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFtQkEsSUFBTSxVQUFOLE1BQU0sUUFBTztBQUFBLEVBQWI7QUFDTCxTQUFtQixTQUEwQyxvQkFBSSxJQUFJO0FBQUE7QUFBQSxFQUVyRSxPQUFPLFNBQXdCLE1BQW9CO0FBQ2pELFVBQU0sSUFBSSxLQUFLLE9BQU8sSUFBSSxPQUFPO0FBRWpDLFFBQUksR0FBRztBQUNMLFVBQUksRUFBRSxTQUFTLE1BQU07QUFDbkIsY0FBTSxJQUFJLDZCQUE2QixTQUFTLEVBQUUsTUFBTSxJQUFJO0FBQUEsTUFDOUQ7QUFBQSxJQUNGLE9BQU87QUFDTCxXQUFLLE9BQU8sSUFBSSxTQUFTO0FBQUEsUUFDdkIsTUFBTTtBQUFBLFFBQ04sTUFBTTtBQUFBLFFBQ047QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUFBLEVBRUEsT0FBTyxTQUE4QjtBQUNuQyxVQUFNLElBQUksS0FBSyxPQUFPLElBQUksT0FBTztBQUVqQyxRQUFJLEdBQUc7QUFDTCxVQUFJLEVBQUUsTUFBTTtBQUNWLGNBQU0sSUFBSTtBQUFBLFVBQ1IseUNBQXlDLE9BQU87QUFBQSxRQUVsRDtBQUFBLE1BQ0Y7QUFFQSxXQUFLLE9BQU8sT0FBTyxPQUFPO0FBQUEsSUFDNUI7QUFBQSxFQUNGO0FBQUEsRUFFQSxNQUFNLFNBQThDO0FBQ2xELFFBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxPQUFPO0FBRS9CLFFBQUksQ0FBQyxHQUFHO0FBQ04sWUFBTSxJQUFJLDhCQUE4QixPQUFPO0FBQUEsSUFDakQ7QUFFQSxRQUFJLEVBQUUsTUFBTTtBQUNWLFlBQU0sSUFBSTtBQUFBLFFBQ1IsMkJBQTJCLE9BQU87QUFBQSxNQUVwQztBQUFBLElBQ0Y7QUFFQSxRQUFJLEVBQUUsU0FBUyxNQUFNO0FBQ25CLFlBQU0sT0FBTyxJQUFJLFdBQVcsRUFBRSxJQUFJO0FBQ2xDLFdBQUssT0FBTztBQUFBLFFBQ1Y7QUFBQSxRQUNBLElBQUk7QUFBQSxVQUNGLE1BQU07QUFBQSxVQUNOO0FBQUEsVUFDQSxNQUFNLElBQUksU0FBUyxLQUFLLFFBQVEsR0FBRyxFQUFFLElBQUk7QUFBQSxVQUN6QyxNQUFNLEVBQUU7QUFBQSxRQUNWO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxNQUFFLE9BQU87QUFFVCxXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRUEsS0FBSyxTQUE4QjtBQUNqQyxVQUFNLElBQUksS0FBSyxPQUFPLElBQUksT0FBTztBQUVqQyxRQUFJLEdBQUc7QUFDTCxRQUFFLE9BQU87QUFBQSxJQUNYO0FBQUEsRUFDRjtBQUNGO0FBekVvQjtBQUFiLElBQU0sU0FBTjsiLAogICJuYW1lcyI6IFtdCn0K