Back to Conventional Changelog

conventional-changelog-preset-loader

packages/conventional-changelog-preset-loader/README.md

1.1.03.7 KB
Original Source

conventional-changelog-preset-loader

Configuration preset loader for conventional-changelog.

<hr /> <a href="#install">Install</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="#usage">Usage</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="#preset-package-resolution">Preset package resolution</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="#preset-exports">Preset exports</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="#preset-options">Preset options</a> <hr />

Install

bash
# pnpm
pnpm add conventional-changelog-preset-loader
# yarn
yarn add conventional-changelog-preset-loader
# npm
npm i conventional-changelog-preset-loader

Usage

Import loadPreset function from the package and use it to load the preset:

js
import { loadPreset } from 'conventional-changelog-preset-loader'

loadPreset('angular').then((config) => {
  // do something with config object
})

By default it uses import to load preset. If you want to use require instead, you can create own loader with createPresetLoader function:

js
import { createRequire } from 'node:module'
import { createPresetLoader } from 'conventional-changelog-preset-loader'

const require = createRequire(import.meta.url)
const loadPreset = createPresetLoader(require)

Preset package resolution

Firstly, loader will try prepend conventional-changelog to the preset name and load it.

For example:

  • angular => conventional-changelog-angular
  • angular/preset/path => conventional-changelog-angular/preset/path
  • @scope/angular => @scope/conventional-changelog-angular
  • @scope/angular/preset/path => @scope/conventional-changelog-angular/preset/path

If it fails, it will try to load preset using name as is.

Preset exports

Preset package should have default export which is a async (returns Promise) or sync function that accepts optional options object and returns the config object:

js
export default function createPreset(options) {
  return {
    // config
  }
}

Preset options

To pass options to the preset, loadPreset function accepts object with name property as first argument:

js
import { loadPreset } from 'conventional-changelog-preset-loader'

loadPreset({
  name: 'angular',
  ...presetOptions
}).then((config) => {
  // do something with config object
})

License

MIT © Steve Mao