UNPKG

ogit

Version:

A lazy developer's Git CLI made simple. Makes using git on cloud IDEs (i.e. C9) a walk in the park.

96 lines (95 loc) 3.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); require("reflect-metadata"); const json_object_mapper_1 = require("json-object-mapper"); const GitFile_1 = require("./GitFile"); class GitFilesDeserializer { constructor() { this.deserialize = (files) => { const gitFiles = new Map(); for (let file of files) { const gitFile = new GitFile_1.GitFile(file.path, file.working_dir, file.index); if (ChangeTypes.Renamed === file.index) { gitFile.path = file.path.split(' ').slice(-1)[0]; } gitFiles.set(gitFile.id, gitFile); } return gitFiles; }; } } var ChangeTypes; (function (ChangeTypes) { ChangeTypes["Deleted"] = "D"; ChangeTypes["New"] = "?"; ChangeTypes["Modified"] = "M"; ChangeTypes["Added"] = "A"; ChangeTypes["Renamed"] = "R"; })(ChangeTypes = exports.ChangeTypes || (exports.ChangeTypes = {})); class GitStatus { constructor() { this.currentBranch = undefined; this.trackingBranch = undefined; this._files = new Map(); this.notAdded = undefined; this.conflicted = undefined; // modified: GitFile[] = this.getFiles('M'); this.renamed = undefined; this.staged = undefined; this.ahead = undefined; this.behind = undefined; } get all() { return Array.from(this._files.values()); } get deleted() { return this.getFiles(ChangeTypes.Deleted); } get created() { return this.getFiles(ChangeTypes.New); } get added() { return this.getFiles(ChangeTypes.Added); } get modified() { return this.getFiles(ChangeTypes.Modified); } getFiles(type) { const files = []; this._files.forEach(file => { if (file.changeType === type) { files.push(file); } }); return files; } } tslib_1.__decorate([ json_object_mapper_1.JsonProperty({ name: 'current' }) ], GitStatus.prototype, "currentBranch", void 0); tslib_1.__decorate([ json_object_mapper_1.JsonProperty({ name: 'tracking' }) ], GitStatus.prototype, "trackingBranch", void 0); tslib_1.__decorate([ json_object_mapper_1.JsonProperty({ name: 'files', deserializer: GitFilesDeserializer }) ], GitStatus.prototype, "_files", void 0); tslib_1.__decorate([ json_object_mapper_1.JsonProperty({ name: 'not_added' }) ], GitStatus.prototype, "notAdded", void 0); tslib_1.__decorate([ json_object_mapper_1.JsonProperty({ name: 'conflicted' }) ], GitStatus.prototype, "conflicted", void 0); tslib_1.__decorate([ json_object_mapper_1.JsonProperty({ name: 'renamed' }) ], GitStatus.prototype, "renamed", void 0); tslib_1.__decorate([ json_object_mapper_1.JsonProperty({ name: 'staged' }) ], GitStatus.prototype, "staged", void 0); tslib_1.__decorate([ json_object_mapper_1.JsonProperty() ], GitStatus.prototype, "ahead", void 0); tslib_1.__decorate([ json_object_mapper_1.JsonProperty() ], GitStatus.prototype, "behind", void 0); exports.GitStatus = GitStatus;