From f16ac80b7e28354767d9786dbc895da974022765 Mon Sep 17 00:00:00 2001 From: Rushil Perera Date: Wed, 17 Dec 2025 06:52:44 -0500 Subject: [PATCH] chore: remove unnecessary env scripts since `wrangler types` works as intended now --- package.json | 2 -- src/scripts/generateEnv.ts | 47 -------------------------------------- src/scripts/verifyEnv.ts | 40 -------------------------------- 3 files changed, 89 deletions(-) delete mode 100644 src/scripts/generateEnv.ts delete mode 100644 src/scripts/verifyEnv.ts diff --git a/package.json b/package.json index e263436..5b8f31e 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,6 @@ "scripts": { "dev": "wrangler dev src/index.ts --port 8080", "deploy": "wrangler deploy --minify src/index.ts", - "env:generate": "tsx src/scripts/generateEnv.ts", - "env:verify": "tsx src/scripts/verifyEnv.ts", "db:generate": "drizzle-kit generate", "db:migrate": "drizzle-kit migrate", "test": "vitest", diff --git a/src/scripts/generateEnv.ts b/src/scripts/generateEnv.ts deleted file mode 100644 index b765ede..0000000 --- a/src/scripts/generateEnv.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Project } from "ts-morph"; -import { $ } from "zx"; - -import { logStep } from "~/libs/logStep"; - -await logStep( - 'Re-generating "env.d.ts"', - () => $`wrangler types src/types/env.d.ts`.quiet(), - "Generated env.d.ts", -); - -const secretNames = await logStep( - "Fetching secrets from Cloudflare", - async (): Promise => { - const { stdout } = await $`wrangler secret list`.quiet(); - return JSON.parse(stdout.toString()).map( - (secret: { name: string; type: "secret_text" }) => secret.name, - ); - }, - "Fetched secrets", -); - -const project = new Project({}); - -const envSourceFile = project.addSourceFileAtPath("src/types/env.d.ts"); -envSourceFile.insertImportDeclaration(2, { - isTypeOnly: true, - moduleSpecifier: "hono", - namedImports: ["Env as HonoEnv"], -}); -envSourceFile - .getInterfaceOrThrow("Env") - .addExtends(["HonoEnv", "Record"]); -envSourceFile.getInterfaceOrThrow("Env").addProperties( - secretNames.map((name) => ({ - name, - type: `string`, - })), -); - -await project.save(); - -await logStep( - "Formatting env.d.ts", - () => $`prettier --write src/types/env.d.ts`.quiet(), - "Formatted env.d.ts", -); diff --git a/src/scripts/verifyEnv.ts b/src/scripts/verifyEnv.ts deleted file mode 100644 index 334acd5..0000000 --- a/src/scripts/verifyEnv.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { readFile } from "fs/promises"; -import { $, sleep } from "zx"; - -import { logStep } from "~/libs/logStep"; - -await $`cp src/types/env.d.ts /tmp/env.d.ts`.quiet(); - -await logStep( - 'Generating "env.d.ts"', - // @ts-ignore - () => import("./generateEnv"), - "Generated env.d.ts", -); - -await logStep("Comparing env.d.ts", async () => { - function filterComments(content: Buffer) { - return content - .toString() - .split("\n") - .filter((line) => !line.trim().startsWith("//")) - .join("\n"); - } - - const currentFileContent = filterComments(await readFile("/tmp/env.d.ts")); - const generatedFileContent = filterComments( - await readFile("src/types/env.d.ts"), - ); - - if (currentFileContent === generatedFileContent) { - console.log("env.d.ts is up to date"); - return; - } - - const isCI = process.env["IS_CI"] === "true"; - const vcsCommand = isCI ? "git" : "sl"; - await $`${vcsCommand} diff src/types/env.d.ts`.stdio("inherit"); - // add 1 second to make sure spawn completes - await sleep(1000); - throw new Error("env.d.ts is out of date"); -});