Joey Perrott 7e6989ee4b test(dev-infra): extract commit message build function into testing util function (#41476)
Creates a testing utility function to build commit message strings.

PR Close #41476
2021-04-09 07:49:48 -07:00

31 lines
945 B
TypeScript

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
/** The parts that make up a commit message for creating a commit message string. */
export interface CommitMessageParts {
prefix: string;
type: string;
npmScope: string;
scope: string;
summary: string;
body: string;
footer: string;
}
/**
* Generate a commit message builder function, using the provided defaults.
*/
export function commitMessageBuilder(defaults: CommitMessageParts) {
return (params: Partial<CommitMessageParts> = {}) => {
const {prefix, type, npmScope, scope, summary, body, footer} = {...defaults, ...params};
const scopeSlug = npmScope ? `${npmScope}/${scope}` : scope;
return `${prefix}${type}${scopeSlug ? '(' + scopeSlug + ')' : ''}: ${summary}\n\n${body}\n\n${
footer}`;
};
}