From 00f52eb0969dc3cc29e96c723639a5aebc00280e Mon Sep 17 00:00:00 2001 From: dswbx Date: Mon, 3 Mar 2025 07:10:32 +0100 Subject: [PATCH] minor fixes for nextjs --- app/src/cli/commands/create/npm.ts | 2 +- app/src/modules/ModuleApi.ts | 1 - app/src/modules/ModuleManager.ts | 2 +- examples/nextjs/src/app/api/[[...bknd]]/route.ts | 4 ++++ examples/nextjs/src/app/env/route.ts | 3 +++ examples/nextjs/src/bknd.ts | 12 ++++++++++-- 6 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 examples/nextjs/src/app/env/route.ts diff --git a/app/src/cli/commands/create/npm.ts b/app/src/cli/commands/create/npm.ts index beaeb50..690d891 100644 --- a/app/src/cli/commands/create/npm.ts +++ b/app/src/cli/commands/create/npm.ts @@ -68,7 +68,7 @@ export async function replacePackageJsonVersions( export async function updateBkndPackages(dir?: string, map?: Record) { const versions = { - bknd: "^" + (await sysGetVersion()), + bknd: await sysGetVersion(), ...(map ?? {}), }; await replacePackageJsonVersions( diff --git a/app/src/modules/ModuleApi.ts b/app/src/modules/ModuleApi.ts index 4c515bc..a5b4a69 100644 --- a/app/src/modules/ModuleApi.ts +++ b/app/src/modules/ModuleApi.ts @@ -264,7 +264,6 @@ export class FetchPromise> implements Promise { } else { resBody = res.body; } - console.groupEnd(); return createResponseProxy(res, resBody, resData); } diff --git a/app/src/modules/ModuleManager.ts b/app/src/modules/ModuleManager.ts index 3bec082..0170f3b 100644 --- a/app/src/modules/ModuleManager.ts +++ b/app/src/modules/ModuleManager.ts @@ -286,7 +286,7 @@ export class ModuleManager { return result as unknown as ConfigTable; }, - this.verbosity > Verbosity.silent ? [] : ["log", "error", "warn"], + this.verbosity > Verbosity.silent ? [] : ["error"], ); this.logger diff --git a/examples/nextjs/src/app/api/[[...bknd]]/route.ts b/examples/nextjs/src/app/api/[[...bknd]]/route.ts index 6aadeae..d88e7f7 100644 --- a/examples/nextjs/src/app/api/[[...bknd]]/route.ts +++ b/examples/nextjs/src/app/api/[[...bknd]]/route.ts @@ -1,5 +1,9 @@ import { getApp } from "@/bknd"; +// if you're not using a local media adapter, or file database, +// you can uncomment this line to enable running bknd on edge +// export const runtime = "edge"; + const handler = async (request: Request) => { const app = await getApp(); return app.fetch(request); diff --git a/examples/nextjs/src/app/env/route.ts b/examples/nextjs/src/app/env/route.ts new file mode 100644 index 0000000..c2b6dc2 --- /dev/null +++ b/examples/nextjs/src/app/env/route.ts @@ -0,0 +1,3 @@ +export const GET = async (req: Request) => { + return Response.json(process.env); +}; diff --git a/examples/nextjs/src/bknd.ts b/examples/nextjs/src/bknd.ts index 65f00a7..7914b5f 100644 --- a/examples/nextjs/src/bknd.ts +++ b/examples/nextjs/src/bknd.ts @@ -2,12 +2,20 @@ import { type NextjsBkndConfig, getApp as getBkndApp } from "bknd/adapter/nextjs import { registerLocalMediaAdapter } from "bknd/adapter/node"; import { headers } from "next/headers"; +// The local media adapter works well in development, and server based +// deployments. However, on vercel or any other serverless deployments, +// you shouldn't use a filesystem based media adapter. +// +// Additionally, if you run the bknd api on the "edge" runtime, +// this would not work as well. +// +// For production, it is recommended to uncomment the line below. registerLocalMediaAdapter(); export const config = { connection: { - // make sure to use a remote URL for production! - url: "file:data.db", + url: process.env.DB_URL as string, + authToken: process.env.DB_TOKEN as string, }, } as const satisfies NextjsBkndConfig;