UNPKG

conventional-changelog-writer

Version:
79 lines 5.3 kB
import { headerPartial, preamblePartial, commitPartial, footerPartial, template } from '@conventional-changelog/template'; import { valid as semverValid } from 'semver'; import { formatDate, createComparator } from './utils.js'; const HASH_SHORT_LENGTH = 7; const HEADER_MAX_LENGTH = 100; /** * Default commit transform function. * @param commit * @param _context * @param options * @param options.formatDate - Date formatter function. * @returns Patch object for commit. */ export function defaultCommitTransform(commit, _context, options) { const { hash, header, committerDate } = commit; return { hash: typeof hash === 'string' ? hash.substring(0, HASH_SHORT_LENGTH) : hash, header: typeof header === 'string' ? header.substring(0, HEADER_MAX_LENGTH) : header, committerDate: committerDate ? options.formatDate(committerDate) : committerDate }; } /** * Get final options object. * @param options * @returns Final options object. */ export function getFinalOptions(options) { const prefinalOptions = { groupBy: 'type', commitsSort: 'header', noteGroupsSort: 'title', notesSort: 'text', transform: defaultCommitTransform, generateOn: (commit) => Boolean(semverValid(commit.version)), finalizeContext: (context) => context, debug: () => { }, formatDate, template, headerPartial, preamblePartial, commitPartial, footerPartial, reverse: false, ignoreReverted: true, doFlush: true, ...options }; const finalOptions = { ...prefinalOptions, commitGroupsSort: createComparator(prefinalOptions.commitGroupsSort), commitsSort: createComparator(prefinalOptions.commitsSort), noteGroupsSort: createComparator(prefinalOptions.noteGroupsSort), notesSort: createComparator(prefinalOptions.notesSort) }; return finalOptions; } /** * Get final context object. * @param context * @param options * @returns Final context object. */ export function getGenerateOnFunction(context, options) { const { generateOn } = options; if (typeof generateOn === 'string') { return (commit) => typeof commit[generateOn] !== 'undefined'; } else if (typeof generateOn !== 'function') { return () => false; } return (keyCommit, commitsGroup) => generateOn(keyCommit, commitsGroup, context, options); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGFBQWEsRUFDYixhQUFhLEVBQ2IsUUFBUSxFQUNULE1BQU0sa0NBQWtDLENBQUE7QUFDekMsT0FBTyxFQUFFLEtBQUssSUFBSSxXQUFXLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFLN0MsT0FBTyxFQUNMLFVBQVUsRUFDVixnQkFBZ0IsRUFDakIsTUFBTSxZQUFZLENBQUE7QUFFbkIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUE7QUFDM0IsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7QUFFN0I7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FDcEMsTUFBYyxFQUNkLFFBQWlCLEVBQ2pCLE9BQWlEO0lBRWpELE1BQU0sRUFDSixJQUFJLEVBQ0osTUFBTSxFQUNOLGFBQWEsRUFDZCxHQUFHLE1BQU0sQ0FBQTtJQUVWLE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTyxJQUFJLEtBQUssUUFBUTtZQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUM7WUFDdEMsQ0FBQyxDQUFDLElBQUk7UUFDUixNQUFNLEVBQUUsT0FBTyxNQUFNLEtBQUssUUFBUTtZQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUM7WUFDeEMsQ0FBQyxDQUFDLE1BQU07UUFDVixhQUFhLEVBQUUsYUFBYTtZQUMxQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDbkMsQ0FBQyxDQUFDLGFBQWE7S0FDQyxDQUFBO0FBQ3RCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsT0FBd0I7SUFFeEIsTUFBTSxlQUFlLEdBQUc7UUFDdEIsT0FBTyxFQUFFLE1BQWU7UUFDeEIsV0FBVyxFQUFFLFFBQWlCO1FBQzlCLGNBQWMsRUFBRSxPQUFnQjtRQUNoQyxTQUFTLEVBQUUsTUFBZTtRQUMxQixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLFVBQVUsRUFBRSxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsZUFBZSxFQUFFLENBQUMsT0FBcUMsRUFBRSxFQUFFLENBQUMsT0FBTztRQUNuRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQWMsQ0FBQztRQUMzQixVQUFVO1FBQ1YsUUFBUTtRQUNSLGFBQWE7UUFDYixlQUFlO1FBQ2YsYUFBYTtRQUNiLGFBQWE7UUFDYixPQUFPLEVBQUUsS0FBSztRQUNkLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsR0FBRyxPQUFPO0tBQ1gsQ0FBQTtJQUNELE1BQU0sWUFBWSxHQUFHO1FBQ25CLEdBQUcsZUFBZTtRQUNsQixnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUM7UUFDcEUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxXQUF1QixDQUFDO1FBQ3RFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDO1FBQ2hFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0tBQy9CLENBQUE7SUFFekIsT0FBTyxZQUFZLENBQUE7QUFDckIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUFxQyxFQUNyQyxPQUE2QjtJQUU3QixNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFBO0lBRTlCLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbkMsT0FBTyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssV0FBVyxDQUFBO0lBQ3RFLENBQUM7U0FBTSxJQUFJLE9BQU8sVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzVDLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFBO0lBQ3BCLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBaUIsRUFBRSxZQUFzQixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFDN0csQ0FBQyJ9