@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
114 lines (112 loc) • 13.5 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/cbor/writer.ts
var _Writer = class _Writer {
constructor(memory, options = {}) {
const {
maxDepth = 64
} = options;
this.maxDepth = maxDepth;
this.data = memory.data;
this.view = memory.view;
this.depth = 0;
this.total = 0;
this.offset = 0;
this.chunks = [memory.data];
this.memory = memory;
}
datacopy() {
return this.offset >= this.data.length ? this.data.slice() : this.data.slice(0, this.offset);
}
dataref() {
if (this.offset <= this.data.length) {
return this.data.subarray(0, this.offset);
}
return this.data;
}
claim(size) {
if (size > this.memory.size) {
let last = this.chunks.length - 1;
if (this.offset > 0) {
this.chunks[last++] = this.datacopy();
}
this.data = this.chunks[last] = new Uint8Array(size);
this.view = new DataView(this.data.buffer, 0, size);
this.total += this.offset;
this.offset = 0;
} else if (size > this.data.length - this.offset) {
const last = this.chunks.length - 1;
if (this.data === this.memory.data) {
this.chunks[last] = this.datacopy();
} else if (this.data.length < this.offset) {
this.chunks[last] = this.dataref();
}
this.data = this.chunks[last + 1] = this.memory.data;
this.view = this.memory.view;
this.total += this.offset;
this.offset = 0;
}
}
output() {
if (this.chunks.length < 2) {
if (this.data === this.memory.data) {
return this.datacopy();
}
return this.data;
}
const last = this.chunks.length - 1;
this.chunks[last] = this.dataref();
const acc = new Uint8Array(this.total + this.offset);
for (let offset = 0, chunk; chunk = this.chunks.shift(); ) {
acc.set(chunk, offset);
offset += chunk.length;
}
return acc;
}
writeBytes(value) {
this.claim(value.length);
this.data.set(value, this.offset);
this.offset += value.length;
}
writeUint8(value) {
this.claim(1);
this.view.setUint8(this.offset, value);
this.offset += 1;
}
writeUint16(value) {
this.claim(2);
this.view.setUint16(this.offset, value);
this.offset += 2;
}
writeUint32(value) {
this.claim(4);
this.view.setUint32(this.offset, value);
this.offset += 4;
}
writeBigUint64(value) {
this.claim(8);
this.view.setBigUint64(this.offset, value);
this.offset += 8;
}
// writeFloat16(value: number): void {
// this.claim(2);
// setFloat16(this.view, this.offset, value);
// this.offset += 2;
// }
writeFloat32(value) {
this.claim(4);
this.view.setFloat32(this.offset, value);
this.offset += 4;
}
writeFloat64(value) {
this.claim(8);
this.view.setFloat64(this.offset, value);
this.offset += 8;
}
};
__name(_Writer, "Writer");
var Writer = _Writer;
export {
Writer
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2Nib3Ivd3JpdGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgdHlwZSB7IFVpbnQ4QXJyYXlMaWtlIH0gZnJvbSBcIkB0YWkta3VuL3N1cnJlYWxkYi90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBBbGxvY2F0ZWRNZW1vcnlCbG9jayB9IGZyb20gXCIuL19tZW1vcnlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBXcml0ZXJPcHRpb25zIHtcbiAgcmVhZG9ubHkgbWF4RGVwdGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBXcml0ZXIge1xuICByZWFkb25seSBtYXhEZXB0aDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lbW9yeTogQWxsb2NhdGVkTWVtb3J5QmxvY2ssXG4gICAgb3B0aW9uczogV3JpdGVyT3B0aW9ucyB8IHVuZGVmaW5lZCA9IHt9LFxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBtYXhEZXB0aCA9IDY0LFxuICAgIH0gPSBvcHRpb25zO1xuICAgIHRoaXMubWF4RGVwdGggPSBtYXhEZXB0aDtcblxuICAgIHRoaXMuZGF0YSA9IG1lbW9yeS5kYXRhO1xuICAgIHRoaXMudmlldyA9IG1lbW9yeS52aWV3O1xuICAgIHRoaXMuZGVwdGggPSAwO1xuICAgIHRoaXMudG90YWwgPSAwO1xuICAgIHRoaXMub2Zmc2V0ID0gMDtcbiAgICB0aGlzLmNodW5rcyA9IFttZW1vcnkuZGF0YV07XG4gICAgdGhpcy5tZW1vcnkgPSBtZW1vcnk7XG4gIH1cblxuICBkYXRhOiBVaW50OEFycmF5O1xuICB2aWV3OiBEYXRhVmlldztcbiAgZGVwdGg6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIHByb3RlY3RlZCBjaHVua3M6IFtVaW50OEFycmF5LCAuLi5VaW50OEFycmF5W11dO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWVtb3J5OiBBbGxvY2F0ZWRNZW1vcnlCbG9jaztcblxuICBwcm90ZWN0ZWQgZGF0YWNvcHkoKTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIHRoaXMub2Zmc2V0ID49IHRoaXMuZGF0YS5sZW5ndGhcbiAgICAgID8gdGhpcy5kYXRhLnNsaWNlKClcbiAgICAgIDogdGhpcy5kYXRhLnNsaWNlKDAsIHRoaXMub2Zmc2V0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkYXRhcmVmKCk6IFVpbnQ4QXJyYXkge1xuICAgIGlmICh0aGlzLm9mZnNldCA8PSB0aGlzLmRhdGEubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhLnN1YmFycmF5KDAsIHRoaXMub2Zmc2V0KTsgLy8gdHJpbVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGE7XG4gIH1cblxuICBjbGFpbShzaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoc2l6ZSA+IHRoaXMubWVtb3J5LnNpemUpIHtcbiAgICAgIC8vIFx1NEU4Qlx1NTI0RFx1MzA2Qlx1NzUyOFx1NjEwRlx1MzA1NVx1MzA4Q1x1MzA1Rlx1MzBFMVx1MzBFMlx1MzBFQVx1MzBGQ1x1MzBCNVx1MzBBNFx1MzBCQVx1MzA5Mlx1OEQ4NVx1MzA0OFx1MzA4Qlx1ODk4MVx1NkM0Mlx1MzA0Q1x1MzA0Mlx1MzA4Q1x1MzA3MDpcbiAgICAgIC8vICgxKSBcdTczRkVcdTMwQzFcdTMwRTNcdTMwRjNcdTMwQUZcdTMwNkJcdTUxODVcdTVCQjlcdTMwNENcdTMwNDJcdTMwOENcdTMwNzBcdTVGQzVcdTg5ODFcdTMwNkFcdTMwNjBcdTMwNTFcdTg5MDdcdTg4RkRcdTMwOTJcdThBMThcdTkzMzJcdTMwNTlcdTMwOEJcdTMwMDJcbiAgICAgIC8vICgyKSBcdTg5ODFcdTZDNDJcdTMwQjVcdTMwQTRcdTMwQkFcdTMwNjFcdTMwODdcdTMwNDZcdTMwNjlcdTMwNkVcdTMwQzdcdTMwRkNcdTMwQkZcdTMwOTJcdTRGNUNcdTYyMTBcdTMwNTlcdTMwOEJcdTMwMDJcbiAgICAgIC8vICgzKSBcdTdEQ0ZcdTVCQjlcdTkxQ0ZcdTMwOTJcdTY2RjRcdTY1QjBcdTMwNTlcdTMwOEJcdTMwMDJcbiAgICAgIC8vICg0KSBcdTMwQUFcdTMwRDVcdTMwQkJcdTMwQzNcdTMwQzhcdTMwOTIgMCBcdTMwNkJcdTYyM0JcdTMwNTlcdTMwMDJcblxuICAgICAgbGV0IGxhc3QgPSB0aGlzLmNodW5rcy5sZW5ndGggLSAxO1xuXG4gICAgICAvLyAoMSlcbiAgICAgIGlmICh0aGlzLm9mZnNldCA+IDApIHtcbiAgICAgICAgdGhpcy5jaHVua3NbbGFzdCsrXSA9IHRoaXMuZGF0YWNvcHkoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kYXRhID0gdGhpcy5jaHVua3NbbGFzdF0gPSBuZXcgVWludDhBcnJheShzaXplKTsgLy8gKDIpXG4gICAgICB0aGlzLnZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5kYXRhLmJ1ZmZlciwgMCwgc2l6ZSk7IC8vICgyKVxuICAgICAgdGhpcy50b3RhbCArPSB0aGlzLm9mZnNldDsgLy8gKDMpXG4gICAgICB0aGlzLm9mZnNldCA9IDA7IC8vICg0KVxuICAgIH0gZWxzZSBpZiAoc2l6ZSA+ICh0aGlzLmRhdGEubGVuZ3RoIC0gdGhpcy5vZmZzZXQpKSB7XG4gICAgICAvLyBcdTg5ODFcdTZDNDJcdTMwQjVcdTMwQTRcdTMwQkFcdTMwNENcdTMwQzFcdTMwRTNcdTMwRjNcdTMwQUZcdTMwNkJcdTUzQ0VcdTMwN0VcdTMwODlcdTMwNkFcdTMwNDRcdTU4MzRcdTU0MDg6XG4gICAgICAvLyAoMSkgXHU3M0ZFXHUzMEMxXHUzMEUzXHUzMEYzXHUzMEFGXHUzMDRDXHU0RThCXHU1MjREXHUzMDZCXHU3NTI4XHU2MTBGXHUzMDU1XHUzMDhDXHUzMDVGXHUzMEUxXHUzMEUyXHUzMEVBXHUzMEZDXHUzMDZBXHUzMDg5XHU1RkM1XHU4OTgxXHUzMDZBXHUzMDYwXHUzMDUxXHU4OTA3XHU4OEZEXHUzMDkyXHU4QTE4XHU5MzMyXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyAoMikgXHU3M0ZFXHUzMEMxXHUzMEUzXHUzMEYzXHUzMEFGXHUzMDRDXHUzMEFCXHUzMEI5XHUzMEJGXHUzMEUwXHUzMEI1XHUzMEE0XHUzMEJBXHUzMDZFXHUzMEUxXHUzMEUyXHUzMEVBXHUzMEZDXHUzMDZBXHUzMDg5XHU1RkM1XHU4OTgxXHUzMDZBXHUzMDYwXHUzMDUxXHU1M0MyXHU3MTY3XHUzMDkyXHU4QTE4XHU5MzMyXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyAoMykgXHU3M0ZFXHUzMEMxXHUzMEUzXHUzMEYzXHUzMEFGXHUzMDkyXHU0RThCXHU1MjREXHUzMDZCXHU3NTI4XHU2MTBGXHUzMDU1XHUzMDhDXHUzMDVGXHUzMEUxXHUzMEUyXHUzMEVBXHUzMEZDXHUzMDZCXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyAoNCkgXHU3RENGXHU1QkI5XHU5MUNGXHUzMDkyXHU2NkY0XHU2NUIwXHUzMDU5XHUzMDhCXHUzMDAyXG4gICAgICAvLyAoNSkgXHUzMEFBXHUzMEQ1XHUzMEJCXHUzMEMzXHUzMEM4XHUzMDkyIDAgXHUzMDZCXHU2MjNCXHUzMDU5XHUzMDAyXG5cbiAgICAgIGNvbnN0IGxhc3QgPSB0aGlzLmNodW5rcy5sZW5ndGggLSAxO1xuXG4gICAgICAvLyAoMSlcbiAgICAgIGlmICh0aGlzLmRhdGEgPT09IHRoaXMubWVtb3J5LmRhdGEpIHtcbiAgICAgICAgdGhpcy5jaHVua3NbbGFzdF0gPSB0aGlzLmRhdGFjb3B5KCk7XG4gICAgICB9IC8vXG4gICAgICAvLyAoMilcbiAgICAgIGVsc2UgaWYgKHRoaXMuZGF0YS5sZW5ndGggPCB0aGlzLm9mZnNldCkge1xuICAgICAgICB0aGlzLmNodW5rc1tsYXN0XSA9IHRoaXMuZGF0YXJlZigpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRhdGEgPSB0aGlzLmNodW5rc1tsYXN0ICsgMV0gPSB0aGlzLm1lbW9yeS5kYXRhOyAvLyAoMylcbiAgICAgIHRoaXMudmlldyA9IHRoaXMubWVtb3J5LnZpZXc7IC8vICgzKVxuICAgICAgdGhpcy50b3RhbCArPSB0aGlzLm9mZnNldDsgLy8gKDQpXG4gICAgICB0aGlzLm9mZnNldCA9IDA7IC8vICg1KVxuICAgIH1cbiAgfVxuXG4gIG91dHB1dCgpOiBVaW50OEFycmF5IHtcbiAgICBpZiAodGhpcy5jaHVua3MubGVuZ3RoIDwgMikge1xuICAgICAgaWYgKHRoaXMuZGF0YSA9PT0gdGhpcy5tZW1vcnkuZGF0YSkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhY29weSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5kYXRhO1xuICAgIH1cblxuICAgIGNvbnN0IGxhc3QgPSB0aGlzLmNodW5rcy5sZW5ndGggLSAxO1xuICAgIHRoaXMuY2h1bmtzW2xhc3RdID0gdGhpcy5kYXRhcmVmKCk7IC8vIFx1MzBCM1x1MzBENFx1MzBGQ1x1MzA1NVx1MzA4Q1x1MzA4Qlx1MzA2RVx1MzA2N1x1NTNDMlx1NzE2N1x1MzA2N1x1NjlDQlx1MzA4Rlx1MzA2QVx1MzA0NFx1MzAwMlxuXG4gICAgY29uc3QgYWNjID0gbmV3IFVpbnQ4QXJyYXkodGhpcy50b3RhbCArIHRoaXMub2Zmc2V0KTtcblxuICAgIGZvciAoXG4gICAgICBsZXQgb2Zmc2V0ID0gMCwgY2h1bms6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQ7XG4gICAgICAoY2h1bmsgPSB0aGlzLmNodW5rcy5zaGlmdCgpKTtcbiAgICApIHtcbiAgICAgIGFjYy5zZXQoY2h1bmssIG9mZnNldCk7XG4gICAgICBvZmZzZXQgKz0gY2h1bmsubGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICB3cml0ZUJ5dGVzKHZhbHVlOiBVaW50OEFycmF5TGlrZSk6IHZvaWQge1xuICAgIHRoaXMuY2xhaW0odmFsdWUubGVuZ3RoKTtcbiAgICB0aGlzLmRhdGEuc2V0KHZhbHVlLCB0aGlzLm9mZnNldCk7XG4gICAgdGhpcy5vZmZzZXQgKz0gdmFsdWUubGVuZ3RoO1xuICB9XG5cbiAgd3JpdGVVaW50OCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jbGFpbSgxKTtcbiAgICB0aGlzLnZpZXcuc2V0VWludDgodGhpcy5vZmZzZXQsIHZhbHVlKTtcbiAgICB0aGlzLm9mZnNldCArPSAxO1xuICB9XG5cbiAgd3JpdGVVaW50MTYodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY2xhaW0oMik7XG4gICAgdGhpcy52aWV3LnNldFVpbnQxNih0aGlzLm9mZnNldCwgdmFsdWUpO1xuICAgIHRoaXMub2Zmc2V0ICs9IDI7XG4gIH1cblxuICB3cml0ZVVpbnQzMih2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jbGFpbSg0KTtcbiAgICB0aGlzLnZpZXcuc2V0VWludDMyKHRoaXMub2Zmc2V0LCB2YWx1ZSk7XG4gICAgdGhpcy5vZmZzZXQgKz0gNDtcbiAgfVxuXG4gIHdyaXRlQmlnVWludDY0KHZhbHVlOiBiaWdpbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNsYWltKDgpO1xuICAgIHRoaXMudmlldy5zZXRCaWdVaW50NjQodGhpcy5vZmZzZXQsIHZhbHVlKTtcbiAgICB0aGlzLm9mZnNldCArPSA4O1xuICB9XG5cbiAgLy8gd3JpdGVGbG9hdDE2KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgLy8gICB0aGlzLmNsYWltKDIpO1xuICAvLyAgIHNldEZsb2F0MTYodGhpcy52aWV3LCB0aGlzLm9mZnNldCwgdmFsdWUpO1xuICAvLyAgIHRoaXMub2Zmc2V0ICs9IDI7XG4gIC8vIH1cblxuICB3cml0ZUZsb2F0MzIodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY2xhaW0oNCk7XG4gICAgdGhpcy52aWV3LnNldEZsb2F0MzIodGhpcy5vZmZzZXQsIHZhbHVlKTtcbiAgICB0aGlzLm9mZnNldCArPSA0O1xuICB9XG5cbiAgd3JpdGVGbG9hdDY0KHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNsYWltKDgpO1xuICAgIHRoaXMudmlldy5zZXRGbG9hdDY0KHRoaXMub2Zmc2V0LCB2YWx1ZSk7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