From 8fefacaa9cc3494d5714c89ca677c8ddb2958aeb Mon Sep 17 00:00:00 2001 From: yerpark Date: Sun, 9 Aug 2026 18:02:45 +0900 Subject: [PATCH 1/4] Make init framework registry documentation drift test Assisted-by: Claude:claude-sonnet-5 --- packages/init/src/webframeworks.test.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/init/src/webframeworks.test.ts b/packages/init/src/webframeworks.test.ts index c8f6f676f..d67a9bc51 100644 --- a/packages/init/src/webframeworks.test.ts +++ b/packages/init/src/webframeworks.test.ts @@ -1,9 +1,12 @@ import { equal, ok } from "node:assert/strict"; +import { readFile } from "node:fs/promises"; +import { dirname, resolve } from "node:path"; import test from "node:test"; +import { fileURLToPath } from "node:url"; import astroDescription from "./webframeworks/astro.ts"; +import webFrameworks from "./webframeworks/mod.ts"; import nextDescription from "./webframeworks/next.ts"; import nitroDescription from "./webframeworks/nitro.ts"; -import webFrameworks from "./webframeworks/mod.ts"; import solidstartDescription from "./webframeworks/solidstart.ts"; test("Nitro template loads LogTape during server startup", async () => { @@ -162,3 +165,20 @@ test("Astro Node.js and Bun templates use Prettier for Astro files", async () => equal(initializer.format?.tool, "prettier"); } }); + +test("README.md's web framework list matches the framework registry", async () => { + const modList = Object.values(webFrameworks).map((f) => f.label); + const readmeFile = resolve(dirname(fileURLToPath(import.meta.url)), "..", "README.md"); + const readme = await readFile(readmeFile, "utf-8"); + const readmeWebframeworks = readme.match(/\*\*Web frameworks\*\*:\s*([\s\S]+?)(?=\n\s*-\s*\*\*)/); + ok(readmeWebframeworks); + const readmeList = readmeWebframeworks[1] + .split(/,\s*/) + .map((s) => s.trim().replace(/^\[|\]$/g, "")); + equal(modList.length, readmeList.length); + modList.sort(); + readmeList.sort(); + for (let i = 0; i < modList.length; i++){ + equal(modList[i], readmeList[i]); + } +}); From 7826d939274db4c03d67b34e4907fd302fd53cbc Mon Sep 17 00:00:00 2001 From: yerpark Date: Sun, 9 Aug 2026 18:06:44 +0900 Subject: [PATCH 2/4] Change Elysia's label to match README Assisted-by: Claude:claude-sonnet-5 --- packages/init/src/webframeworks/elysia.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/init/src/webframeworks/elysia.ts b/packages/init/src/webframeworks/elysia.ts index 4334995a8..66f78f5bb 100644 --- a/packages/init/src/webframeworks/elysia.ts +++ b/packages/init/src/webframeworks/elysia.ts @@ -6,7 +6,7 @@ import { defaultDenoDependencies, defaultDevDependencies } from "./const.ts"; import { getInstruction, nodeBunDevToolTasks, pmToRt } from "./utils.ts"; const elysiaDescription: WebFrameworkDescription = { - label: "ElysiaJS", + label: "Elysia", packageManagers: PACKAGE_MANAGER, defaultPort: 3000, init: async ({ projectName, packageManager: pm }) => ({ From 4da1257328f3927e3c4435190db160ce6cfe553f Mon Sep 17 00:00:00 2001 From: yerpark Date: Sun, 9 Aug 2026 20:13:26 +0900 Subject: [PATCH 3/4] Format webframeworks.test.ts Assisted-by: Claude:claude-sonnet-5 --- packages/init/src/webframeworks.test.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/init/src/webframeworks.test.ts b/packages/init/src/webframeworks.test.ts index d67a9bc51..c2f07fe00 100644 --- a/packages/init/src/webframeworks.test.ts +++ b/packages/init/src/webframeworks.test.ts @@ -168,9 +168,15 @@ test("Astro Node.js and Bun templates use Prettier for Astro files", async () => test("README.md's web framework list matches the framework registry", async () => { const modList = Object.values(webFrameworks).map((f) => f.label); - const readmeFile = resolve(dirname(fileURLToPath(import.meta.url)), "..", "README.md"); + const readmeFile = resolve( + dirname(fileURLToPath(import.meta.url)), + "..", + "README.md", + ); const readme = await readFile(readmeFile, "utf-8"); - const readmeWebframeworks = readme.match(/\*\*Web frameworks\*\*:\s*([\s\S]+?)(?=\n\s*-\s*\*\*)/); + const readmeWebframeworks = readme.match( + /\*\*Web frameworks\*\*:\s*([\s\S]+?)(?=\n\s*-\s*\*\*)/, + ); ok(readmeWebframeworks); const readmeList = readmeWebframeworks[1] .split(/,\s*/) @@ -178,7 +184,7 @@ test("README.md's web framework list matches the framework registry", async () = equal(modList.length, readmeList.length); modList.sort(); readmeList.sort(); - for (let i = 0; i < modList.length; i++){ + for (let i = 0; i < modList.length; i++) { equal(modList[i], readmeList[i]); } }); From db1c60fb26768a1c409a10b3d2453735490514b4 Mon Sep 17 00:00:00 2001 From: yerpark Date: Sun, 9 Aug 2026 23:22:19 +0900 Subject: [PATCH 4/4] Fix stale ElysiaJS text in docs and tutorials These files quoted the fedify init CLI prompt or its JSDoc example before elysia.ts's label changed from "ElysiaJS" to "Elysia", so they no longer matched what the CLI actually shows. Changelog: none Assisted-by: Claude:claude-sonnet-5 --- docs/tutorial/astro-blog.md | 2 +- docs/tutorial/microblog.md | 2 +- packages/init/src/types.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tutorial/astro-blog.md b/docs/tutorial/astro-blog.md index 85f1eb5f9..ad740f1d9 100644 --- a/docs/tutorial/astro-blog.md +++ b/docs/tutorial/astro-blog.md @@ -153,7 +153,7 @@ Select *Astro*, *bun*, *in-process*, and *in-memory* in order: Hono Nitro Next.js - ElysiaJS + Elysia ❯ Astro Express diff --git a/docs/tutorial/microblog.md b/docs/tutorial/microblog.md index 616dc8576..8e02d3cd6 100644 --- a/docs/tutorial/microblog.md +++ b/docs/tutorial/microblog.md @@ -164,7 +164,7 @@ Select *Hono*, *npm*, *in-process*, and *in-memory* in order: ❯ Hono Nitro Next.js - ElysiaJS + Elysia Astro Express Nuxt diff --git a/packages/init/src/types.ts b/packages/init/src/types.ts index b750bd76a..8ca76ef64 100644 --- a/packages/init/src/types.ts +++ b/packages/init/src/types.ts @@ -113,7 +113,7 @@ export interface WebFrameworkInitializer { /** * Describes a web framework integration (Hono, Express, Nitro, Next.js, - * ElysiaJS, Astro) and how to initialize a project with it. + * Elysia, Astro) and how to initialize a project with it. */ export interface WebFrameworkDescription { /** Human-readable name of the framework (e.g., `"Hono"`, `"Next.js"`). */