UNPKG

1.03 kBJavaScriptView Raw
1const R = require('ramda')
2const leavePublic = require('new-public-commits').leavePublic
3const newPublicCommits = require('new-public-commits').newPublicCommits
4const { stripIndent } = require('common-tags')
5const la = require('lazy-ass')
6const is = require('check-more-types')
7
8function commitsToString (commits) {
9 const filtered = leavePublic(commits)
10 return R.map(R.prop('message'))(filtered).join('\n')
11}
12
13function getDateString () {
14 const d = new Date()
15 return d.toISOString().split('T')[0]
16}
17
18function versionAndCommitsToLog (version, commits) {
19 const date = getDateString()
20 const head = stripIndent`
21 <a name="${version}"></a>
22 # ${version} (${date})
23 `
24 const commitsLog = commitsToString(commits)
25 return head + '\n' + commitsLog
26}
27
28function formChangelog (version) {
29 la(is.unemptyString(version), 'missing release version')
30 return newPublicCommits().then(commits =>
31 versionAndCommitsToLog(version, commits)
32 )
33}
34
35module.exports = { formChangelog, versionAndCommitsToLog, commitsToString }