kotaindah55_animated-cursor/scripts/utils.mts
2025-05-18 17:37:25 +03:00

38 lines
No EOL
796 B
TypeScript

import { open } from "fs/promises";
interface ChangelogDesc {
version: string;
changelog: string;
}
const VERSION_VALIDATOR = /^\[(\d+\.\d+\.\d+)\]$/;
const END_OF_CHANGELOG = /^---$/;
export async function getLastChangelog(): Promise<ChangelogDesc> {
let changelogFile = await open("CHANGELOGS.txt", "r", ),
changelog = "",
version = "",
lineIndex = 0;
for await (let line of changelogFile.readLines({
encoding: "utf-8",
})) {
if (!version) {
if (!lineIndex) version = VERSION_VALIDATOR.exec(line)?.[1] ?? "";
if (!version) {
changelogFile.close();
throw Error("Not a valid version token!");
}
}
else {
if (END_OF_CHANGELOG.test(line)) {
changelogFile.close();
break;
}
changelog += line + "\n";
}
}
return { changelog, version };
}