UNPKG

standard-commit

Version:
66 lines (65 loc) 2.17 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatMessage = exports.formatBody = exports.formatIssues = exports.formatBreaking = exports.formatHeader = void 0; const linewrap_1 = __importDefault(require("linewrap")); const os_1 = require("os"); const wrapLines = (0, linewrap_1.default)(72); function appendBlock(message, block) { if (block) { return [message, '', block].join(os_1.EOL); } else { return message; } } function formatLines(lines) { return wrapLines(lines.map((line) => line.trim()).join(os_1.EOL)); } function formatHeader(type, scope, subject) { type = type || ''; subject = subject || ''; scope = scope ? `(${scope})` : ''; return `${type}${scope}: ${subject}`; } exports.formatHeader = formatHeader; function formatBreaking(change) { return 'BREAKING CHANGE: ' + change.trim(); } exports.formatBreaking = formatBreaking; function formatIssues(issues) { return issues .map((issue) => { if (/^(\w+):\s(.*)/.test(issue)) { const line = issue.trim(); return line[0].toUpperCase() + line.slice(1); } const id = issue.trim(); return `Refs: ${Number.isInteger(Number(id)) ? `#${id}` : id}`; }) .join('\n'); } exports.formatIssues = formatIssues; function formatBody(body) { return body ? formatLines(body) : ''; } exports.formatBody = formatBody; function formatMessage(commit) { let message = formatHeader(commit.type, commit.scope, commit.subject); if (commit.body) { const block = formatBody(commit.body); message = appendBlock(message, block); } if (commit.breaking) { const block = formatBreaking(commit.breaking); message = appendBlock(message, block); } if (commit.issues && commit.issues.length) { const block = formatIssues(commit.issues); message = appendBlock(message, block); } return message + os_1.EOL; } exports.formatMessage = formatMessage;