typescript-assistant
Version:
Combines and integrates professional Typescript tools into your project
53 lines • 2.67 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const inquirer_1 = require("inquirer");
const path_1 = require("path");
exports.createReleaseCommand = (deps) => {
let { git, taskRunner, logger } = deps;
return {
execute: () => __awaiter(this, void 0, void 0, function* () {
let pristine = yield git.isPristine();
if (!pristine) {
throw new Error('There are uncommitted changes in the working tree');
}
let npm = path_1.sep === '\\' ? 'npm.cmd' : 'npm';
let onBranch = yield git.isOnBranch();
if (onBranch) {
let answers = yield inquirer_1.prompt({
type: 'confirm',
name: 'confirm',
message: 'You are not on master, do you want to do a pre-release?'
});
if (!answers['confirm']) {
return;
}
yield taskRunner.runTask(npm, ['version', 'prerelease'], { name: 'npm', logger }).result;
}
else {
let answers = yield inquirer_1.prompt({
type: 'list',
name: 'bump',
message: 'What type of bump would you like to do?',
choices: ['patch', 'minor', 'major']
});
let importance = answers['bump'];
// 'npm version' also does a 'git commit' and 'git tag'
yield taskRunner.runTask(npm, ['version', importance, '--commit-hooks', 'false'], { name: 'npm', logger }).result;
}
yield git.execute(['push', '--no-verify']);
yield git.execute(['push', '--tags', '--no-verify']);
let publishArguments = onBranch ? ['publish', '--tag', 'dev'] : ['publish'];
publishArguments.push('--commit-hooks', 'false');
yield taskRunner.runTask(npm, publishArguments, { name: 'npm', logger }).result;
})
};
};
//# sourceMappingURL=release.js.map