From 2f28a0710d53f3917c058ac7ea952771a2a6c972 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 26 Apr 2026 14:32:55 +0200 Subject: [PATCH] build: convert repo utility scripts to typescript --- package.json | 6 +++--- ...e-versions.mjs => check-package-versions.ts} | 17 +++++++++++------ ...npm-pack-dry-run.mjs => npm-pack-dry-run.ts} | 2 +- 3 files changed, 15 insertions(+), 10 deletions(-) rename scripts/{check-package-versions.mjs => check-package-versions.ts} (74%) rename scripts/{npm-pack-dry-run.mjs => npm-pack-dry-run.ts} (96%) diff --git a/package.json b/package.json index c2a29dca21..4e38cd8739 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,9 @@ "typecheck": "pnpm typecheck:root && pnpm typecheck:packages", "typecheck:root": "tsc --project ./tsconfig.json --noEmit", "typecheck:packages": "pnpm -r --filter \"@daypicker/*\" typecheck && pnpm --filter react-day-picker typecheck", - "check:versions": "node ./scripts/check-package-versions.mjs", - "pack:dry-run": "node ./scripts/npm-pack-dry-run.mjs", - "release:ci": "pnpm exec tsx ./scripts/release-ci.ts", + "check:versions": "node --import tsx ./scripts/check-package-versions.ts", + "pack:dry-run": "node --import tsx ./scripts/npm-pack-dry-run.ts", + "release:ci": "node --import tsx ./scripts/release-ci.ts", "typecheck-watch": "tsc --project ./tsconfig.json --noEmit --watch" }, "devDependencies": { diff --git a/scripts/check-package-versions.mjs b/scripts/check-package-versions.ts similarity index 74% rename from scripts/check-package-versions.mjs rename to scripts/check-package-versions.ts index 40d78fd174..cef8bad13b 100644 --- a/scripts/check-package-versions.mjs +++ b/scripts/check-package-versions.ts @@ -10,16 +10,20 @@ const packagePaths = [ "packages/hebrew/package.json", "packages/hijri/package.json", "packages/persian/package.json", -]; +] as const; -function readPackageJson(packagePath) { +function readPackageJson(packagePath: string): { + version: string; + peerDependencies?: Record; +} { const filePath = new URL(packagePath, repoRoot); - return JSON.parse(readFileSync(filePath, "utf8")); + return JSON.parse(readFileSync(filePath, "utf8")) as { + version: string; + peerDependencies?: Record; + }; } -const rootVersion = readPackageJson( - "packages/react-day-picker/package.json", -).version; +const rootVersion = readPackageJson(packagePaths[0]).version; for (const packagePath of packagePaths.slice(1)) { const packageJson = readPackageJson(packagePath); @@ -28,6 +32,7 @@ for (const packagePath of packagePaths.slice(1)) { `Expected ${path.dirname(packagePath)} version ${rootVersion}, got ${packageJson.version}.`, ); } + if (packageJson.peerDependencies?.["react-day-picker"] !== rootVersion) { throw new Error( `Expected ${path.dirname(packagePath)} peer dependency react-day-picker=${rootVersion}, got ${packageJson.peerDependencies?.["react-day-picker"]}.`, diff --git a/scripts/npm-pack-dry-run.mjs b/scripts/npm-pack-dry-run.ts similarity index 96% rename from scripts/npm-pack-dry-run.mjs rename to scripts/npm-pack-dry-run.ts index d0df1c11f4..bb7b8083d0 100644 --- a/scripts/npm-pack-dry-run.mjs +++ b/scripts/npm-pack-dry-run.ts @@ -7,7 +7,7 @@ const packageDirs = [ "packages/hebrew", "packages/hijri", "packages/persian", -]; +] as const; for (const packageDir of packageDirs) { execFileSync("npm", ["pack", "--dry-run"], {