feat: release notes (#283)
* feat: add release.ts * feat: add utils * chore: add scripts to tsconfig.json include * feat: add changelog logic, component, storybook file, scripts, and update to Node v20.9.0 (LTS) * chore: update packages * feat: use conventionalcommits for changelog preset * feat: update padding, width, and change font to mono * feat: refactor to use DialogProvider * chore: remove extra args * feat: update CHANGELOG.md, add title, and add button * refactor: use hook * chore: fix typo
This commit is contained in:
54
scripts/generateChangelog.ts
Normal file
54
scripts/generateChangelog.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import { exec } from 'child_process';
|
||||
import { resolve } from 'path';
|
||||
import { promisify } from 'util';
|
||||
|
||||
const execPromise = promisify(exec);
|
||||
|
||||
interface Props {
|
||||
preset:
|
||||
| 'angular'
|
||||
| 'atom'
|
||||
| 'codemirror'
|
||||
| 'conventionalcommits'
|
||||
| 'ember'
|
||||
| 'eslint'
|
||||
| 'express'
|
||||
| 'jquery'
|
||||
| 'jshint';
|
||||
|
||||
// The file to write the changelog to
|
||||
outFile?: string;
|
||||
|
||||
// How many releases to be generated from the latest
|
||||
// If 0, the whole changelog will be regenerated and the outfile will be overwritten
|
||||
releaseCount?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a changelog using the conventional-changelog command.
|
||||
*
|
||||
* @returns {Promise<void>} A promise that resolves when the changelog is generated.
|
||||
* @throws {Error} If there is an error generating the changelog.
|
||||
*/
|
||||
async function generateChangelog({ preset, outFile = 'CHANGELOG.md', releaseCount = 1 }: Props): Promise<void> {
|
||||
try {
|
||||
// Run the conventional-changelog command to generate changelog
|
||||
const { stdout, stderr } = await execPromise(
|
||||
`conventional-changelog -p ${preset} -i ${outFile} -s -r ${releaseCount}`,
|
||||
{
|
||||
// Ensures it runs from the project root
|
||||
cwd: resolve(process.cwd()),
|
||||
}
|
||||
);
|
||||
|
||||
// Log output and error if any
|
||||
console.log(stdout);
|
||||
if (stderr) {
|
||||
console.error(stderr);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error generating changelog:', error);
|
||||
}
|
||||
}
|
||||
|
||||
generateChangelog({ preset: 'conventionalcommits', releaseCount: 0 });
|
||||
Reference in New Issue
Block a user