UNPKG

simple-git

Version:

Simple GIT interface for node.js

55 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../utils"); const parse_remote_messages_1 = require("./parse-remote-messages"); function pushResultPushedItem(local, remote, status) { const deleted = status.includes('deleted'); const tag = status.includes('tag') || /^refs\/tags/.test(local); const alreadyUpdated = !status.includes('new'); return { deleted, tag, branch: !tag, new: !alreadyUpdated, alreadyUpdated, local, remote, }; } const parsers = [ new utils_1.LineParser(/^Pushing to (.+)$/, (result, [repo]) => { result.repo = repo; }), new utils_1.LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { result.ref = Object.assign(Object.assign({}, (result.ref || {})), { local }); }), new utils_1.LineParser(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { result.pushed.push(pushResultPushedItem(local, remote, type)); }), new utils_1.LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { result.branch = Object.assign(Object.assign({}, (result.branch || {})), { local, remote, remoteName }); }), new utils_1.LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { result.update = { head: { local, remote, }, hash: { from, to, }, }; }), ]; exports.parsePushResult = (stdOut, stdErr) => { const pushDetail = exports.parsePushDetail(stdOut, stdErr); const responseDetail = parse_remote_messages_1.parseRemoteMessages(stdOut, stdErr); return Object.assign(Object.assign({}, pushDetail), responseDetail); }; exports.parsePushDetail = (stdOut, stdErr) => { return utils_1.parseStringResponse({ pushed: [] }, parsers, `${stdOut}\n${stdErr}`); }; //# sourceMappingURL=parse-push.js.map