31 lines
		
	
	
		
			945 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			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}`;
 | 
						|
  };
 | 
						|
}
 |