@synerty/vortexjs
Version:
Custom observable data serialisation and routing based on Angular 2+
30 lines • 5.8 kB
JavaScript
import { Payload } from "../Payload";
import { dateStr } from "../UtilMisc";
import { now } from "../payload/PayloadDelegateABC";
export class TupleStorageServiceABC {
name;
dbName;
constructor(name) {
this.name = name;
this.dbName = name.name;
}
async loadTuples(tupleSelector) {
const startTime = now();
const vortexMsg = await this.loadTuplesEncoded(tupleSelector);
if (vortexMsg == null)
return [];
const payload = await Payload.fromEncodedPayload(vortexMsg);
const timeTaken = now() - startTime;
console.log(`${dateStr()} Storage: loadTuples took ${timeTaken}ms `);
return payload.tuples;
}
async saveTuples(tupleSelector, tuples) {
const startTime = now();
const vortexMsg = await new Payload({}, tuples) //
.toEncodedPayload();
await this.saveTuplesEncoded(tupleSelector, vortexMsg);
const timeTaken = now() - startTime;
console.log(`${dateStr()} Storage: saveTuples took ${timeTaken}ms `);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHVwbGVTdG9yYWdlU2VydmljZUFCQy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy92b3J0ZXgvc3RvcmFnZS9UdXBsZVN0b3JhZ2VTZXJ2aWNlQUJDLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFXcEQsTUFBTSxPQUFnQixzQkFBc0I7SUFHUjtJQUZ0QixNQUFNLENBQVM7SUFFekIsWUFBZ0MsSUFBb0M7UUFBcEMsU0FBSSxHQUFKLElBQUksQ0FBZ0M7UUFDaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFVRCxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQTRCO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sU0FBUyxHQUFXLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLElBQUksU0FBUyxJQUFJLElBQUk7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RCxNQUFNLFNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7UUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSw2QkFBNkIsU0FBUyxLQUFLLENBQUMsQ0FBQztRQUNyRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQU1ELEtBQUssQ0FBQyxVQUFVLENBQ1osYUFBNEIsRUFDNUIsTUFBZTtRQUVmLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sU0FBUyxHQUFXLE1BQU0sSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUU7YUFDckQsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdkQsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLEVBQUUsNkJBQTZCLFNBQVMsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztDQWNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVwbGUgfSBmcm9tIFwiLi4vVHVwbGVcIjtcbmltcG9ydCB7IFR1cGxlU2VsZWN0b3IgfSBmcm9tIFwiLi4vVHVwbGVTZWxlY3RvclwiO1xuaW1wb3J0IHsgVHVwbGVPZmZsaW5lU3RvcmFnZU5hbWVTZXJ2aWNlIH0gZnJvbSBcIi4vVHVwbGVPZmZsaW5lU3RvcmFnZU5hbWVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBQYXlsb2FkIH0gZnJvbSBcIi4uL1BheWxvYWRcIjtcbmltcG9ydCB7IGRhdGVTdHIgfSBmcm9tIFwiLi4vVXRpbE1pc2NcIjtcbmltcG9ydCB7IG5vdyB9IGZyb20gXCIuLi9wYXlsb2FkL1BheWxvYWREZWxlZ2F0ZUFCQ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRG9Xb3JrQ2FsbGFibGUge1xuICAgIChUdXBsZVN0b3JhZ2VUcmFuc2FjdGlvbik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVwbGVTdG9yYWdlQmF0Y2hTYXZlQXJndW1lbnRzIHtcbiAgICB0dXBsZVNlbGVjdG9yOiBUdXBsZVNlbGVjdG9yO1xuICAgIHZvcnRleE1zZzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHVwbGVTdG9yYWdlU2VydmljZUFCQyB7XG4gICAgcHJvdGVjdGVkIGRiTmFtZTogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBuYW1lOiBUdXBsZU9mZmxpbmVTdG9yYWdlTmFtZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5kYk5hbWUgPSBuYW1lLm5hbWU7XG4gICAgfVxuXG4gICAgYWJzdHJhY3Qgb3BlbigpOiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgYWJzdHJhY3QgaXNPcGVuKCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICBhYnN0cmFjdCBjbG9zZSgpOiBQcm9taXNlPHZvaWQ+O1xuXG4gICAgYWJzdHJhY3QgdHJ1bmNhdGVTdG9yYWdlKCk6IFByb21pc2U8dm9pZD47XG5cbiAgICBhc3luYyBsb2FkVHVwbGVzKHR1cGxlU2VsZWN0b3I6IFR1cGxlU2VsZWN0b3IpOiBQcm9taXNlPFR1cGxlW10+IHtcbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgIGNvbnN0IHZvcnRleE1zZzogc3RyaW5nID0gYXdhaXQgdGhpcy5sb2FkVHVwbGVzRW5jb2RlZCh0dXBsZVNlbGVjdG9yKTtcbiAgICAgICAgaWYgKHZvcnRleE1zZyA9PSBudWxsKSByZXR1cm4gW107XG4gICAgICAgIGNvbnN0IHBheWxvYWQgPSBhd2FpdCBQYXlsb2FkLmZyb21FbmNvZGVkUGF5bG9hZCh2b3J0ZXhNc2cpO1xuICAgICAgICBjb25zdCB0aW1lVGFrZW4gPSBub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgY29uc29sZS5sb2coYCR7ZGF0ZVN0cigpfSBTdG9yYWdlOiBsb2FkVHVwbGVzIHRvb2sgJHt0aW1lVGFrZW59bXMgYCk7XG4gICAgICAgIHJldHVybiBwYXlsb2FkLnR1cGxlcztcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBsb2FkVHVwbGVzRW5jb2RlZChcbiAgICAgICAgdHVwbGVTZWxlY3RvcjogVHVwbGVTZWxlY3RvclxuICAgICk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG5cbiAgICBhc3luYyBzYXZlVHVwbGVzKFxuICAgICAgICB0dXBsZVNlbGVjdG9yOiBUdXBsZVNlbGVjdG9yLFxuICAgICAgICB0dXBsZXM6IFR1cGxlW11cbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgIGNvbnN0IHZvcnRleE1zZzogc3RyaW5nID0gYXdhaXQgbmV3IFBheWxvYWQoe30sIHR1cGxlcykgLy9cbiAgICAgICAgICAgIC50b0VuY29kZWRQYXlsb2FkKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZVR1cGxlc0VuY29kZWQodHVwbGVTZWxlY3Rvciwgdm9ydGV4TXNnKTtcbiAgICAgICAgY29uc3QgdGltZVRha2VuID0gbm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIGNvbnNvbGUubG9nKGAke2RhdGVTdHIoKX0gU3RvcmFnZTogc2F2ZVR1cGxlcyB0b29rICR7dGltZVRha2VufW1zIGApO1xuICAgIH1cblxuICAgIGFic3RyYWN0IHNhdmVUdXBsZXNFbmNvZGVkKFxuICAgICAgICB0dXBsZVNlbGVjdG9yOiBUdXBsZVNlbGVjdG9yLFxuICAgICAgICB2b3J0ZXhNc2c6IHN0cmluZ1xuICAgICk6IFByb21pc2U8dm9pZD47XG5cbiAgICBhYnN0cmFjdCBiYXRjaFNhdmVUdXBsZXNFbmNvZGVkKFxuICAgICAgICBkYXRhOiBUdXBsZVN0b3JhZ2VCYXRjaFNhdmVBcmd1bWVudHNbXVxuICAgICk6IFByb21pc2U8dm9pZD47XG5cbiAgICBhYnN0cmFjdCBkZWxldGVUdXBsZXModHVwbGVTZWxlY3RvcjogVHVwbGVTZWxlY3Rvcik6IFByb21pc2U8dm9pZD47XG5cbiAgICBhYnN0cmFjdCBkZWxldGVPbGRUdXBsZXMoZGVsZXRlRGF0YUJlZm9yZURhdGU6IERhdGUpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19