UNPKG

@manta-style/cli

Version:
64 lines (63 loc) 2.55 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; exports.__esModule = true; var fs = require("fs"); var path = require("path"); function snapshotKey(url, query) { return url + "?" + query; } var Snapshot = /** @class */ (function () { function Snapshot() { this.diskSnapshots = {}; this.stashedSnapshots = {}; } Snapshot.fromDisk = function (filePath) { var content = fs.readFileSync(path.resolve(filePath)); var snapshotInstance = new Snapshot(); snapshotInstance.diskSnapshots = JSON.parse(content.toString()); snapshotInstance.stashedSnapshots = JSON.parse(content.toString()); return snapshotInstance; }; Snapshot.prototype.reloadFromFile = function (filePath) { var content = fs.readFileSync(path.resolve(filePath)); this.diskSnapshots = JSON.parse(content.toString()); this.stashedSnapshots = JSON.parse(content.toString()); }; Snapshot.prototype.updateSnapshot = function (method, url, query, payload) { var _a, _b, _c, _d; var methodObj = this.stashedSnapshots[method]; if (!methodObj) { this.stashedSnapshots = __assign({}, this.stashedSnapshots, (_a = {}, _a[method] = (_b = {}, _b[snapshotKey(url, query)] = payload, _b), _a)); } else { this.stashedSnapshots = __assign({}, this.stashedSnapshots, (_c = {}, _c[method] = __assign({}, methodObj, (_d = {}, _d[snapshotKey(url, query)] = payload, _d)), _c)); } }; Snapshot.prototype.fetchSnapshot = function (method, url, query) { var methodObj = this.diskSnapshots[method]; return methodObj && methodObj[snapshotKey(url, query)]; }; Snapshot.prototype.clearSnapshot = function () { this.stashedSnapshots = {}; this.diskSnapshots = {}; }; Snapshot.prototype.writeToDisk = function (filePath) { var stashedJsonString = JSON.stringify(this.stashedSnapshots, undefined, 2); fs.writeFileSync(path.resolve(filePath), stashedJsonString); this.diskSnapshots = JSON.parse(stashedJsonString); }; return Snapshot; }()); exports.Snapshot = Snapshot;