@manta-style/cli
Version:
A command line tool for Manta Style
64 lines (63 loc) • 2.55 kB
JavaScript
;
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;