UNPKG

manual-git-changelog

Version:

A simple tool for appending to a changelog based on git commits and tags.

91 lines 3.5 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 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) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.stageFile = exports.getGitCommits = exports.getLastGitVersionTag = exports.waitForUserInput = exports.getLernaJson = exports.getPackageJson = exports.getIsoDate = exports.writeFile = exports.readFile = void 0; const child_process_1 = require("child_process"); const fs = require("fs"); const readline = require("readline"); const util_1 = require("util"); // tslint:disable:no-var-requires const readFile = util_1.promisify(fs.readFile); exports.readFile = readFile; const writeFile = util_1.promisify(fs.writeFile); exports.writeFile = writeFile; const gitSemverTags = util_1.promisify(require('git-semver-tags')); const gitRawCommits = require('git-raw-commits'); const arrayifyStream = require('arrayify-stream'); function getIsoDate() { return new Date().toISOString().substr(0, 10); } exports.getIsoDate = getIsoDate; function getPackageJson() { return __awaiter(this, void 0, void 0, function* () { return yield readFile('package.json', 'utf8'); }); } exports.getPackageJson = getPackageJson; function getLernaJson() { return __awaiter(this, void 0, void 0, function* () { try { return yield readFile('lerna.json', 'utf8'); } catch (e) { return null; } }); } exports.getLernaJson = getLernaJson; function waitForUserInput(query) { return __awaiter(this, void 0, void 0, function* () { const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); return new Promise((resolve) => rl.question(query, (answer) => { rl.close(); resolve(answer); })); }); } exports.waitForUserInput = waitForUserInput; function getLastGitVersionTag() { return __awaiter(this, void 0, void 0, function* () { const tags = yield gitSemverTags(); if (!tags.length) { // Initial release return null; } else { // Not an initial release return tags[0]; } }); } exports.getLastGitVersionTag = getLastGitVersionTag; function getGitCommits(previousVersion) { return __awaiter(this, void 0, void 0, function* () { return (yield arrayifyStream(gitRawCommits({ from: previousVersion, format: '%H-%s' }))) .map((commit) => commit.toString('utf8').replace('\n', '')); }); } exports.getGitCommits = getGitCommits; function stageFile(file) { return new Promise((resolve, reject) => { child_process_1.execFile('git', ['add', file], (error) => { if (error) { return reject(error); } resolve(); }); }); } exports.stageFile = stageFile; //# sourceMappingURL=IOUtil.js.map