changelog-splitter
Version:
✂️ conventional commit changelog markdown splitter 约定式提交更新日志 markdown 切割器
59 lines (58 loc) • 1.81 kB
TypeScript
import { RuntimeConfig, StrictUserConfig } from './config';
export declare enum SplitProcessingStage {
Parse = 0,
Refer = 1
}
export interface SplitProcessing {
stage: SplitProcessingStage;
progress: number;
}
export type OnProcessing = (processing: SplitProcessing) => void;
export interface SplitContext {
/**
* 已经处理的主版本号与文件的映射表
*/
processedFileByMajor: {
[major: string]: string;
};
/**
* 主版本更新日志末尾的连续空白长度
*/
blankLengthByMajor: {
[major: string]: number;
};
/**
* 由于冲突策略导致的废弃文件
*/
deprecatedMajorFiles: {
[major: string]: string;
};
}
export interface SplitResult {
splitContext: SplitContext;
runtimeConfig: RuntimeConfig;
}
export declare function createSplitContext(): SplitContext;
/**
* 分离当前更新日志
* @param {RuntimeConfig} runtimeConfig
* @param {OnProcessing} [onProcessing]
* @returns {Promise<SplitContext>}
*/
export declare function parseCurrentChangelog(runtimeConfig: RuntimeConfig, onProcessing?: OnProcessing): Promise<SplitContext>;
/**
* 引用之前的更新日志链接
* @param {RuntimeConfig} runtimeConfig
* @param {SplitContext} splitContext
* @param {OnProcessing} onProcessing
* @returns {Promise<void>}
*/
export declare function referPreviousChangelog(runtimeConfig: RuntimeConfig, splitContext: SplitContext, onProcessing?: OnProcessing): Promise<void>;
/**
* 切割更新日志
* @param {StrictUserConfig} config
* @param {StrictUserConfig} config
* @param {OnProcessing} [onProcessing]
* @returns {Promise<SplitResult>}
*/
export declare function splitChangelog(config: StrictUserConfig, onProcessing?: OnProcessing): Promise<SplitResult>;