@reactionable/cli
Version:
67 lines • 2.99 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
var FileDiffService_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileDiffService = void 0;
const fs_1 = require("fs");
const diff_1 = require("diff");
const inversify_1 = require("inversify");
const CliService_1 = require("../CliService");
let FileDiffService = FileDiffService_1 = class FileDiffService {
constructor(cliService) {
this.cliService = cliService;
}
getFileContentDiff(filepath, fileContent, newFileContent) {
const stat = (0, fs_1.statSync)(filepath);
const runStartDate = this.cliService.getRunStartDate();
if (runStartDate && stat.birthtime >= runStartDate) {
return [];
}
if (fileContent === newFileContent) {
return [];
}
const changes = (0, diff_1.diffLines)(fileContent, newFileContent);
const overwritedChanges = this.getOverwritedFilesChanges(filepath);
if (!overwritedChanges) {
return changes;
}
const hasSomeNewChange = changes.some((change) => {
for (const overwritedChange of overwritedChanges) {
const changeDiffs = overwritedChange !== change;
if (changeDiffs) {
return true;
}
}
return false;
});
if (hasSomeNewChange) {
return changes;
}
return [];
}
getOverwritedFilesChanges(filepath) {
return FileDiffService_1.overwritedFilesChanges.get((0, fs_1.realpathSync)(filepath));
}
setOverwritedFilesChanges(filepath, diff) {
FileDiffService_1.overwritedFilesChanges.set((0, fs_1.realpathSync)(filepath), diff);
}
};
FileDiffService.overwritedFilesChanges = new Map();
FileDiffService = FileDiffService_1 = __decorate([
(0, inversify_1.injectable)(),
__param(0, (0, inversify_1.inject)(CliService_1.CliService)),
__metadata("design:paramtypes", [CliService_1.CliService])
], FileDiffService);
exports.FileDiffService = FileDiffService;
//# sourceMappingURL=FileDiffService.js.map