1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- "use strict";
- var __rest = (this && this.__rest) || function (s, e) {
- var t = {};
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
- t[p] = s[p];
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
- t[p[i]] = s[p[i]];
- }
- return t;
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.DeltaParser = void 0;
- class DeltaParser {
- constructor(deltaRegistry) {
- this.deltaRegistry = deltaRegistry;
- }
- getDependency(hash) {
- const result = this.deltaRegistry.deltas.get(hash);
- if (result === undefined)
- throw new Error("Could not dependency: " + hash);
- return result;
- }
- loadTarget(_a) {
- var { type } = _a, rest = __rest(_a, ["type"]);
- if (type === "TargetValue") {
- const { value } = rest;
- return value;
- }
- if (type === "TargetNode") {
- const { node } = rest;
- return this.getDependency(node);
- }
- throw new Error("Unknown edge target type: " + type);
- }
- loadEdge(_a) {
- var { type } = _a, rest = __rest(_a, ["type"]);
- if (type === "NewEdge") {
- const { source, label } = rest;
- return this.getDependency(source).createOutgoingEdge(label);
- }
- else if (type === "ExistingEdge") {
- const { overwrites } = rest;
- return this.getDependency(overwrites).overwrite();
- }
- throw new Error("Unknown edge type: " + type);
- }
- loadDelta(_a) {
- var { type } = _a, rest = __rest(_a, ["type"]);
- if (type === "NodeCreation") {
- const { id } = rest;
- return this.deltaRegistry.newNodeCreation(id);
- }
- else if (type === "EdgeUpdate") {
- const { overwrites, reads, target } = rest;
- return this.deltaRegistry.newEdgeUpdate(this.loadEdge(overwrites), this.loadTarget(target), reads.map(r => this.loadEdge(r)));
- }
- else if (type === "NodeDeletion") {
- const { node, afterSrc, afterTgt } = rest;
- return this.deltaRegistry.newNodeDeletion(this.getDependency(node), afterSrc.map(a => this.getDependency(a)), afterTgt.map(a => this.getDependency(a)));
- }
- else if (type === "Transaction") {
- const { type, deltas, dependencies, description } = rest;
- return this.deltaRegistry.newTransaction(deltas.map(d => this.getDependency(d)), description, dependencies.map(d => this.getDependency(d)));
- }
- throw new Error("Unknown delta type: " + type);
- }
- }
- exports.DeltaParser = DeltaParser;
- //# sourceMappingURL=delta_parser.js.map
|