gauge-ts
Version:
Typescript runner for Gauge
39 lines (38 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CacheFileProcessor = void 0;
const messages_pb_1 = require("../gen/messages_pb");
const StepRegistry_1 = require("../models/StepRegistry");
const Util_1 = require("../utils/Util");
class CacheFileProcessor {
_loader;
constructor(loader) {
this._loader = loader;
}
process(req) {
switch (req.getStatus()) {
case messages_pb_1.CacheFileRequest.FileStatus.CHANGED:
case messages_pb_1.CacheFileRequest.FileStatus.OPENED:
this._loader.reloadSteps(req.getContent(), req.getFilepath());
break;
case messages_pb_1.CacheFileRequest.FileStatus.CREATED:
if (!StepRegistry_1.default.isFileCached(req.getFilepath())) {
this.loadFromDisk(req.getFilepath());
}
break;
case messages_pb_1.CacheFileRequest.FileStatus.CLOSED:
this.loadFromDisk(req.getFilepath());
break;
case messages_pb_1.CacheFileRequest.FileStatus.DELETED:
this._loader.removeSteps(req.getFilepath());
break;
}
}
loadFromDisk(filePath) {
if (!Util_1.Util.exists(filePath)) {
return;
}
this._loader.reloadSteps(Util_1.Util.readFile(filePath), filePath);
}
}
exports.CacheFileProcessor = CacheFileProcessor;