1.0.3 • Published 3 years ago

changelog-handler v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Changelog Handler

Handles changelog entries by storing them as seperate files within a changelog folder for each pull request.

Installation

npm install changelog-handler --save-dev

Configure (optional)

// .changelog.config.json
{
  "changelogPaths": {
    "unreleased": "./changelogs",
    "release": "changelog.md"
  }
}
Config optionsDescription
changelogPaths.unreleasedchangelog entry paths (default: './changelogs/unreleased')
changelogPaths.releasename + path of changelog release file (default: 'CHANGELOG.md')
parserTypeparser type, must match supported types in customParsers (default: 'yml')
customParsersObject of key value pairs of custom parsers (see example below)
changelogIdentifierRegex of changelog identifier to match in changelog file (default: /^\=\= [0-9]\.[0-9]\.[0-9].*/)
rootDirTo specify a different root directory for changelog entries (default: '')
releaseTemplateFileCustom release template file (in mustache format) (default: template.mustache)
releaseTemplateCustom release template in string (in mustache format)

Config files can also be stored as js or ts files, or specified using the --config <config path> param.

Usage

Creating a changelog entry

npx changelog "description of change" -m 1000 -t bug

Creating a release

npx release -v 1.0.0

This updates the CHANGELOG.md file with the unreleased changelogs. This also deletes the changelog entries.

Custom Release Template

You can define a custom release template. This can be done by using the releaseTemplateFile or releaseTemplate config. The mustache variables that are available:

Template variablesDescription
entrieschangelog entry paths (default: './changelogs/unreleased')
versionThe version passed in through --version
dateThe current date as a locale date string
titleCustom title passed in through --title or '{{version}} {{date}}'
countTotal count of entries
singleChangeA boolean if entries is of length 1

See the default mustache template as an example here.

Custom Parser

By default we use yml to store the changelog data. This can be changed by passing in a custom parser. The custom parser should follow the format of the Parser abstract.

// .changelog.config.js
const Parser = require('./parser');
const config = {
  parserType: 'test',
  customParsers: {
    test: Parser,
  },
};
module.exports = config;

// parser.js
class Parser {
  constructor() {
    this.fileExtension = 'test';
  }

  write(data, filepath) {
    console.log(data, filepath);
  }

  read(filepath) {
    console.log(filepath);
  }
}

module.exports = Parser;
1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago