UNPKG

changed-log

Version:

Returns all commit messages between 2 versions of an NPM module

102 lines (88 loc) 2.82 kB
var la = require('lazy-ass') var check = require('check-more-types') var utils = require('./utils') var R = require('ramda') var _ = require('lodash') var debug = require('debug')('between') var getCommitsBetween = require('./get-commits-between') la(check.fn(getCommitsBetween), 'missing function get commits between', getCommitsBetween) var Report = require('./report') var areValidOptions = check.schema.bind(null, { user: check.unemptyString, repo: check.unemptyString, from: check.commitId, to: check.commitId }) var afterCommitOptions = check.schema({ user: check.unemptyString, repo: check.unemptyString, from: check.commitId, to: check.not.defined }) function getCommentsAfter (options) { debug('finding comments after %s/%s %s', options.user, options.repo, options.from) var report = new Report(options) return getCommitsBetween(options) .then(R.always(report)) } function getCommentsBetweenCommits (options) { if (afterCommitOptions(options)) { return getCommentsAfter(options) } la(areValidOptions(options), 'bad options', options) var report = new Report(options) return getCommitsBetween(options) .tap(function (commits) { report.ids = _.pluck(commits, 'sha') report.comments = _.pluck(commits, 'message') }) .then(R.always(report)) } // resolves with Report object module.exports = getCommentsBetweenCommits if (!module.parent) { (function examples () { /* eslint no-unused-vars:0 */ function smallNumberOfCommitsExample () { var options = { user: 'bahmutov', repo: 'next-update', from: '627250039b89fba678f57f428ee9151c370d4dad', to: '3d2b1fa3523c0be35ecfb30d4c81407fd4ce30a6' } getCommentsBetweenCommits(options) .tap(function (report) { la(check.object(report), 'did not get a report', report) report.print() }) } function largeNumberOfCommitsExample () { var options = { user: 'chalk', repo: 'chalk', from: 'b0a0e42bfe96f77e0ce273c87b910ccc9280bbeb', // older (0.3.0) to: '994758f01293f1fdcf63282e9917cb9f2cfbdaac' // latest (tag 0.5.1) } getCommentsBetweenCommits(options) .tap(function (report) { la(check.object(report), 'did not get a report', report) report.print() }) } function commitsAfterThis () { var options = { user: 'chalk', repo: 'chalk', from: '8b554e254e89c85c1fd04dcc444beeb15824e1a5' } getCommentsBetweenCommits(options) .tap(function (report) { la(check.object(report), 'did not get a report', report) report.print() }) } // smallNumberOfCommitsExample(); // largeNumberOfCommitsExample(); commitsAfterThis() }()) }