conventional-changelog-writer
Advanced tools
Comparing version 6.0.1 to 7.0.0
58
index.js
'use strict' | ||
const dateFormat = require('dateformat') | ||
const { Transform } = require('stream') | ||
@@ -8,4 +7,13 @@ const { join } = require('path') | ||
const { valid: semverValid } = require('semver') | ||
const util = require('./lib/util') | ||
const { | ||
functionify, | ||
processCommit, | ||
generate | ||
} = require('./lib/util') | ||
// sv-SE is used for yyyy-mm-dd format | ||
const dateFormatter = Intl.DateTimeFormat('sv-SE', { | ||
timeZone: 'UTC' | ||
}) | ||
function conventionalChangelogWriterInit (context, options) { | ||
@@ -15,3 +23,3 @@ context = { | ||
issue: 'issues', | ||
date: dateFormat(new Date(), 'yyyy-mm-dd', true), | ||
date: dateFormatter.format(new Date()), | ||
...context | ||
@@ -29,9 +37,5 @@ } | ||
notesSort: 'text', | ||
generateOn: function (commit) { | ||
return semverValid(commit.version) | ||
}, | ||
finalizeContext: function (context) { | ||
return context | ||
}, | ||
debug: function () {}, | ||
generateOn: commit => semverValid(commit.version), | ||
finalizeContext: context => context, | ||
debug: () => {}, | ||
reverse: false, | ||
@@ -63,3 +67,3 @@ includeDetails: false, | ||
return dateFormat(date, 'yyyy-mm-dd', true) | ||
return dateFormatter.format(new Date(date)) | ||
}, | ||
@@ -81,6 +85,6 @@ ...options.transform | ||
options.commitGroupsSort = util.functionify(options.commitGroupsSort) | ||
options.commitsSort = util.functionify(options.commitsSort) | ||
options.noteGroupsSort = util.functionify(options.noteGroupsSort) | ||
options.notesSort = util.functionify(options.notesSort) | ||
options.commitGroupsSort = functionify(options.commitGroupsSort) | ||
options.commitsSort = functionify(options.commitsSort) | ||
options.noteGroupsSort = functionify(options.noteGroupsSort) | ||
options.notesSort = functionify(options.notesSort) | ||
@@ -101,6 +105,6 @@ return { context, options, generateOn } | ||
highWaterMark: 16, | ||
transform (chunk, _enc, cb) { | ||
async transform (chunk, _enc, cb) { | ||
try { | ||
let result | ||
const commit = util.processCommit(chunk, options.transform, context) | ||
const commit = await processCommit(chunk, options.transform, context) | ||
const keyCommit = commit || chunk | ||
@@ -116,7 +120,7 @@ | ||
neverGenerated = false | ||
result = util.generate(options, commits, context, keyCommit) | ||
result = await generate(options, commits, context, keyCommit) | ||
if (options.includeDetails) { | ||
this.push({ | ||
log: result, | ||
keyCommit: keyCommit | ||
keyCommit | ||
}) | ||
@@ -132,3 +136,3 @@ } else { | ||
neverGenerated = false | ||
result = util.generate(options, commits, context, savedKeyCommit) | ||
result = await generate(options, commits, context, savedKeyCommit) | ||
@@ -161,3 +165,3 @@ if (!firstRelease || options.doFlush) { | ||
}, | ||
flush (cb) { | ||
async flush (cb) { | ||
if (!options.doFlush && (options.reverse || neverGenerated)) { | ||
@@ -169,3 +173,3 @@ cb(null) | ||
try { | ||
const result = util.generate(options, commits, context, savedKeyCommit) | ||
const result = await generate(options, commits, context, savedKeyCommit) | ||
@@ -192,3 +196,3 @@ if (options.includeDetails) { | ||
*/ | ||
conventionalChangelogWriterParseStream.parseArray = (rawCommits, context, options) => { | ||
conventionalChangelogWriterParseStream.parseArray = async (rawCommits, context, options) => { | ||
let generateOn | ||
@@ -204,6 +208,6 @@ rawCommits = [...rawCommits]; | ||
for (const rawCommit of rawCommits) { | ||
const commit = util.processCommit(rawCommit, options.transform, context) | ||
const commit = await processCommit(rawCommit, options.transform, context) | ||
const keyCommit = commit || rawCommit | ||
if (generateOn(keyCommit, commits, context, options)) { | ||
entries.push(util.generate(options, commits, context, savedKeyCommit)) | ||
entries.push(await generate(options, commits, context, savedKeyCommit)) | ||
savedKeyCommit = keyCommit | ||
@@ -218,5 +222,5 @@ commits = [] | ||
entries.reverse() | ||
return util.generate(options, commits, context, savedKeyCommit) + entries.join('') | ||
return await generate(options, commits, context, savedKeyCommit) + entries.join('') | ||
} else { | ||
return entries.join('') + util.generate(options, commits, context, savedKeyCommit) | ||
return entries.join('') + await generate(options, commits, context, savedKeyCommit) | ||
} | ||
@@ -223,0 +227,0 @@ } |
@@ -84,4 +84,4 @@ 'use strict' | ||
commitGroups.push({ | ||
title: title, | ||
commits: commits | ||
title, | ||
commits | ||
}) | ||
@@ -114,3 +114,3 @@ }) | ||
retGroups.push({ | ||
title: title, | ||
title, | ||
notes: [note] | ||
@@ -180,3 +180,3 @@ }) | ||
function processCommit (chunk, transform, context) { | ||
async function processCommit (chunk, transform, context) { | ||
let commit | ||
@@ -191,3 +191,3 @@ | ||
if (typeof transform === 'function') { | ||
commit = transform(commit, context) | ||
commit = await transform(commit, context) | ||
@@ -232,3 +232,3 @@ if (commit) { | ||
function generate (options, commits, context, keyCommit) { | ||
async function generate (options, commits, context, keyCommit) { | ||
const notes = [] | ||
@@ -272,3 +272,3 @@ let filteredCommits | ||
context = options.finalizeContext(context, options, filteredCommits, keyCommit, commits) | ||
context = await options.finalizeContext(context, options, filteredCommits, keyCommit, commits) | ||
options.debug('Your final context is:\n' + stringify(context, null, 2)) | ||
@@ -280,9 +280,9 @@ | ||
module.exports = { | ||
compileTemplates: compileTemplates, | ||
functionify: functionify, | ||
getCommitGroups: getCommitGroups, | ||
getNoteGroups: getNoteGroups, | ||
processCommit: processCommit, | ||
getExtraContext: getExtraContext, | ||
generate: generate | ||
compileTemplates, | ||
functionify, | ||
getCommitGroups, | ||
getNoteGroups, | ||
processCommit, | ||
getExtraContext, | ||
generate | ||
} |
{ | ||
"name": "conventional-changelog-writer", | ||
"version": "6.0.1", | ||
"version": "7.0.0", | ||
"description": "Write logs based on conventional commits and templates", | ||
@@ -20,7 +20,7 @@ "bugs": { | ||
"engines": { | ||
"node": ">=14" | ||
"node": ">=16" | ||
}, | ||
"files": [ | ||
"index.js", | ||
"cli.js", | ||
"cli.mjs", | ||
"lib", | ||
@@ -40,20 +40,16 @@ "templates" | ||
"dependencies": { | ||
"conventional-commits-filter": "^3.0.0", | ||
"dateformat": "^3.0.3", | ||
"handlebars": "^4.7.7", | ||
"json-stringify-safe": "^5.0.1", | ||
"meow": "^8.1.2", | ||
"semver": "^7.0.0", | ||
"split": "^1.0.1" | ||
"meow": "^12.0.1", | ||
"semver": "^7.5.2", | ||
"split2": "^4.0.0", | ||
"conventional-commits-filter": "^4.0.0" | ||
}, | ||
"bin": { | ||
"conventional-changelog-writer": "cli.js" | ||
"conventional-changelog-writer": "cli.mjs" | ||
}, | ||
"devDependencies": { | ||
"dedent": "^0.7.0", | ||
"dedent": "^1.0.0", | ||
"forceable-tty": "^0.1.0" | ||
}, | ||
"scripts": { | ||
"test-windows": "echo 'make work on windows'" | ||
} | ||
} |
@@ -140,5 +140,5 @@ # [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![Coverage Status][coverage-image]][coverage-url] | ||
Type: `string` Default: `dateFormat(new Date(), 'yyyy-mm-dd', true)` | ||
Type: `string` Default: formatted (`'yyyy-mm-dd'`) today's date in UTC timezone | ||
Default to formatted (`'yyyy-mm-dd'`) today's date. [dateformat](https://github.com/felixge/node-dateformat) is used for formatting the date. If `version` is found in the last commit, `committerDate` will overwrite this. | ||
If `version` is found in the last commit, `committerDate` will overwrite this. | ||
@@ -145,0 +145,0 @@ #### options |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
6
527
3
31413
+ Addedsplit2@^4.0.0
+ Addedconventional-commits-filter@4.0.0(transitive)
+ Addedmeow@12.1.1(transitive)
+ Addedsplit2@4.2.0(transitive)
- Removeddateformat@^3.0.3
- Removedsplit@^1.0.1
- Removed@babel/code-frame@7.24.7(transitive)
- Removed@babel/helper-validator-identifier@7.24.7(transitive)
- Removed@babel/highlight@7.24.7(transitive)
- Removed@types/minimist@1.2.5(transitive)
- Removed@types/normalize-package-data@2.4.4(transitive)
- Removedansi-styles@3.2.1(transitive)
- Removedarrify@1.0.1(transitive)
- Removedcamelcase@5.3.1(transitive)
- Removedcamelcase-keys@6.2.2(transitive)
- Removedchalk@2.4.2(transitive)
- Removedcolor-convert@1.9.3(transitive)
- Removedcolor-name@1.1.3(transitive)
- Removedconventional-commits-filter@3.0.0(transitive)
- Removeddateformat@3.0.3(transitive)
- Removeddecamelize@1.2.0(transitive)
- Removeddecamelize-keys@1.1.1(transitive)
- Removederror-ex@1.3.2(transitive)
- Removedescape-string-regexp@1.0.5(transitive)
- Removedfind-up@4.1.0(transitive)
- Removedfunction-bind@1.1.2(transitive)
- Removedhard-rejection@2.1.0(transitive)
- Removedhas-flag@3.0.0(transitive)
- Removedhasown@2.0.2(transitive)
- Removedhosted-git-info@2.8.94.1.0(transitive)
- Removedindent-string@4.0.0(transitive)
- Removedis-arrayish@0.2.1(transitive)
- Removedis-core-module@2.15.1(transitive)
- Removedis-plain-obj@1.1.0(transitive)
- Removedjs-tokens@4.0.0(transitive)
- Removedjson-parse-even-better-errors@2.3.1(transitive)
- Removedkind-of@6.0.3(transitive)
- Removedlines-and-columns@1.2.4(transitive)
- Removedlocate-path@5.0.0(transitive)
- Removedlodash.ismatch@4.4.0(transitive)
- Removedlru-cache@6.0.0(transitive)
- Removedmap-obj@1.0.14.3.0(transitive)
- Removedmeow@8.1.2(transitive)
- Removedmin-indent@1.0.1(transitive)
- Removedminimist-options@4.1.0(transitive)
- Removedmodify-values@1.0.1(transitive)
- Removednormalize-package-data@2.5.03.0.3(transitive)
- Removedp-limit@2.3.0(transitive)
- Removedp-locate@4.1.0(transitive)
- Removedp-try@2.2.0(transitive)
- Removedparse-json@5.2.0(transitive)
- Removedpath-exists@4.0.0(transitive)
- Removedpath-parse@1.0.7(transitive)
- Removedpicocolors@1.1.0(transitive)
- Removedquick-lru@4.0.1(transitive)
- Removedread-pkg@5.2.0(transitive)
- Removedread-pkg-up@7.0.1(transitive)
- Removedredent@3.0.0(transitive)
- Removedresolve@1.22.8(transitive)
- Removedsemver@5.7.2(transitive)
- Removedspdx-correct@3.2.0(transitive)
- Removedspdx-exceptions@2.5.0(transitive)
- Removedspdx-expression-parse@3.0.1(transitive)
- Removedspdx-license-ids@3.0.20(transitive)
- Removedsplit@1.0.1(transitive)
- Removedstrip-indent@3.0.0(transitive)
- Removedsupports-color@5.5.0(transitive)
- Removedsupports-preserve-symlinks-flag@1.0.0(transitive)
- Removedthrough@2.3.8(transitive)
- Removedtrim-newlines@3.0.1(transitive)
- Removedtype-fest@0.18.10.6.00.8.1(transitive)
- Removedvalidate-npm-package-license@3.0.4(transitive)
- Removedyallist@4.0.0(transitive)
- Removedyargs-parser@20.2.9(transitive)
Updatedmeow@^12.0.1
Updatedsemver@^7.5.2