diff options
Diffstat (limited to 'packages/bun-release')
-rw-r--r-- | packages/bun-release/package.json | 1 | ||||
-rw-r--r-- | packages/bun-release/scripts/get-version.ts | 5 | ||||
-rw-r--r-- | packages/bun-release/scripts/upload-npm.ts | 22 | ||||
-rw-r--r-- | packages/bun-release/src/github.ts | 16 |
4 files changed, 22 insertions, 22 deletions
diff --git a/packages/bun-release/package.json b/packages/bun-release/package.json index d48e6f84d..759c35ede 100644 --- a/packages/bun-release/package.json +++ b/packages/bun-release/package.json @@ -12,6 +12,7 @@ }, "scripts": { "format": "prettier --write src scripts", + "get-version": "bun scripts/get-version.ts", "upload-npm": "bun scripts/upload-npm.ts", "upload-assets": "bun scripts/upload-assets.ts" } diff --git a/packages/bun-release/scripts/get-version.ts b/packages/bun-release/scripts/get-version.ts new file mode 100644 index 000000000..440749c3b --- /dev/null +++ b/packages/bun-release/scripts/get-version.ts @@ -0,0 +1,5 @@ +import { log } from "../src/console"; +import { getSemver } from "../src/github"; + +log(await getSemver(process.argv[2])); +process.exit(0); // HACK diff --git a/packages/bun-release/scripts/upload-npm.ts b/packages/bun-release/scripts/upload-npm.ts index c81ef4763..3cd8cd9d5 100644 --- a/packages/bun-release/scripts/upload-npm.ts +++ b/packages/bun-release/scripts/upload-npm.ts @@ -29,11 +29,7 @@ process.exit(0); // HACK async function build(tag?: string): Promise<void> { const release = await getRelease(tag); - if (release.tag_name === "canary") { - version = await getCanarySemver(); - } else { - version = release.tag_name.replace("bun-v", ""); - } + version = await getSemver(release.tag_name); await buildRootModule(); for (const platform of platforms) { await buildModule(release, platform); @@ -147,22 +143,6 @@ async function extractFromZip(url: string, filename: string): Promise<JSZipObjec throw new Error(`File not found: ${filename}`); } -async function getCanarySemver(): Promise<string> { - const date = new Date().toISOString().split("T")[0].replace(/-/g, ""); - try { - const response = await fetch(`https://registry.npmjs.org/-/package/${module}/dist-tags`); - const { canary }: { canary: string } = await response.json(); - if (canary.includes(date)) { - const match = /canary.[0-9]{8}\.([0-9]+)+?/.exec(canary); - const build = 1 + (match ? parseInt(match[1]) : 0); - return getSemver("canary", build); - } - } catch (error) { - debug("getCanarySemver failed", error); - } - return getSemver("canary"); -} - function bundle(src: string, dst: string, options: BuildOptions = {}): void { const { errors } = buildSync({ bundle: true, diff --git a/packages/bun-release/src/github.ts b/packages/bun-release/src/github.ts index fd743d17e..c0aa0239a 100644 --- a/packages/bun-release/src/github.ts +++ b/packages/bun-release/src/github.ts @@ -85,14 +85,28 @@ export async function getSha(tag: string, format?: "short" | "long") { return format === "short" ? sha.substring(0, 7) : sha; } +export async function getBuild(): Promise<number> { + const date = new Date().toISOString().split("T")[0].replace(/-/g, ""); + const response = await fetch("https://registry.npmjs.org/-/package/bun/dist-tags"); + const { canary }: { canary: string } = await response.json(); + if (!canary.includes(date)) { + return 1; + } + const match = /canary.[0-9]{8}\.([0-9]+)+?/.exec(canary); + return match ? 1 + parseInt(match[1]) : 1; +} + export async function getSemver(tag?: string, build?: number): Promise<string> { const { tag_name } = await getRelease(tag); if (tag_name !== "canary") { return tag_name.replace("bun-v", ""); } + if (build === undefined) { + build = await getBuild(); + } const sha = await getSha(tag_name, "short"); const date = new Date().toISOString().split("T")[0].replace(/-/g, ""); - return `${Bun.version}-canary.${date}.${build ?? 1}+${sha}`; + return `${Bun.version}-canary.${date}.${build}+${sha}`; } export function formatTag(tag: string): string { |