conventional-changelog
Version:
Generate a changelog from git metadata.
77 lines • 2.61 kB
TypeScript
import type { Package as NormalizedPackage } from 'normalize-package-data';
import type { GetSemverTagsParams, GetCommitsParams } from '@conventional-changelog/git-client';
import type { ParserStreamOptions, Commit } from 'conventional-commits-parser';
import type { Options as WriterOptions, Context, FinalContext } from 'conventional-changelog-writer';
import type { HostType, HostedGitInfo } from '@simple-libs/hosted-git-info';
export type { Commit, HostType, HostedGitInfo };
export type Package = Partial<NormalizedPackage>;
export type Logger = (source: string, messages: string | string[]) => void;
export type PackageTransform = (pkg: Package) => Package;
export type CommitTransformFunction = (commit: Commit, params: Params) => Partial<Commit> | null | Promise<Partial<Commit> | null>;
export interface HostOptions {
issue: string;
commit: string;
referenceActions: string[];
issuePrefixes: string[];
}
export interface FinalizedContext extends FinalContext {
currentTag?: string | null;
previousTag?: string | null;
linkCompare?: boolean;
}
export interface Preset {
tags?: GetSemverTagsParams;
commits?: GetCommitsParams;
parser?: ParserStreamOptions;
writer?: WriterOptions;
}
export interface Options {
/**
* Whether to reset the changelog or not.
* @default false
*/
reset?: boolean;
/**
* Should the log be appended to existing data.
* @default false
*/
append?: boolean;
/**
* How many releases of changelog you want to generate.
* It counts from the upcoming release.
* Useful when you forgot to generate any previous changelog.
* Set to `0` to regenerate all.
* @default 1
*/
releaseCount?: number;
/**
* If this value is `true` and `context.version` equals last release then `context.version` will be changed to `'Unreleased'`.
*/
outputUnreleased?: boolean;
/**
* A transform function that applies after the parser and before the writer.
*/
transformCommit?: CommitTransformFunction;
/**
* Logger for warnings.
*/
warn?: Logger;
/**
* Logger for debug messages.
*/
debug?: Logger;
/**
* A function to format date.
* @param date - Date string or Date object.
* @returns Final date string.
*/
formatDate?(date: string | Date): string;
}
export interface Params extends Preset {
commits: GetCommitsParams;
options: Options;
context?: Context;
repository?: Partial<HostedGitInfo> | null;
package?: Package;
}
//# sourceMappingURL=types.d.ts.map