@mlaursen/release-script
Version:
The release script I normally use for packages I publish to npm
34 lines (30 loc) • 949 B
text/typescript
import confirm from "@inquirer/confirm";
import rawlist from "@inquirer/rawlist";
import { execSync } from "node:child_process";
import { readFile, readdir } from "node:fs/promises";
import { join } from "node:path";
export async function getCurrentChangeset(): Promise<string> {
let changesetName = execSync(
"git diff --name-only @{upstream} .changeset/*.md"
)
.toString()
.trim();
if (
!changesetName ||
!(await confirm({
message: `Is "${changesetName}" the correct changeset path?`,
}))
) {
const changesetNames = await readdir(".changeset");
changesetName = await rawlist({
message: "Select the changeset path",
choices: changesetNames
.filter((changeset) => changeset.endsWith(".md"))
.map((changeset) => ({
value: changeset,
})),
});
changesetName = join(".changeset", changesetName);
}
return await readFile(changesetName, "utf8");
}