UNPKG

@elora-cloud/elora-cli

Version:
41 lines (38 loc) 1.61 kB
import { readFileSync, createWriteStream } from 'node:fs'; import { join, dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; import conventionalChangelog from 'conventional-changelog'; import ora from 'ora'; import { isMonorepoProject } from '../../common/index.mjs'; import { ROOT } from '../../common/constant.mjs'; import { slimPath } from '../../common/logger.mjs'; import { transform } from './transform.mjs'; const DIST_FILE = join(ROOT, './CHANGELOG.md'); const __dirname = dirname(fileURLToPath(import.meta.url)); const MAIN_TEMPLATE = join(__dirname, '../../../../template/changelog-main.hbs'); const HEADER_TEMPLATE = join(__dirname, '../../../../template/changelog-header.hbs'); const COMMIT_TEMPLATE = join(__dirname, '../../../../template/changelog-commit.hbs'); const mainTemplate = readFileSync(MAIN_TEMPLATE, 'utf-8'); const headerPartial = readFileSync(HEADER_TEMPLATE, 'utf-8'); const commitPartial = readFileSync(COMMIT_TEMPLATE, 'utf-8'); async function changeLog() { const spinner = ora('日志生成中...').start(); await isMonorepoProject(); return new Promise((resolve) => { conventionalChangelog({ preset: 'angular', releaseCount: 2, }, undefined, undefined, undefined, { mainTemplate, headerPartial, commitPartial, transform, }) .pipe(createWriteStream(DIST_FILE)) .on('close', () => { spinner.succeed(`Changelog generated at ${slimPath(DIST_FILE)}`); resolve(); }); }); } export { changeLog };