mirror of
https://github.com/shishantbiswas/bknd.git
synced 2026-03-17 04:46:05 +00:00
updated examples: astro, nextjs, remix, bun, node
This commit is contained in:
@@ -18,11 +18,11 @@ export function getApi(Astro: TAstro, options: Options = { mode: "static" }) {
|
||||
}
|
||||
|
||||
let app: App;
|
||||
export function serve(config: CreateAppConfig) {
|
||||
export function serve(config: CreateAppConfig & { beforeBuild?: (app: App) => Promise<void> }) {
|
||||
return async (args: TAstro) => {
|
||||
if (!app) {
|
||||
app = App.create(config);
|
||||
|
||||
await config.beforeBuild?.(app);
|
||||
await app.build();
|
||||
}
|
||||
return app.fetch(args.request);
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/// <reference types="bun-types" />
|
||||
|
||||
import path from "node:path";
|
||||
import { App, type CreateAppConfig } from "bknd";
|
||||
import { App, type CreateAppConfig, registries } from "bknd";
|
||||
import type { Serve, ServeOptions } from "bun";
|
||||
import { serveStatic } from "hono/bun";
|
||||
import { registerLocalMediaAdapter } from "../index";
|
||||
|
||||
let app: App;
|
||||
export type ExtendedAppCreateConfig = Partial<CreateAppConfig> & {
|
||||
@@ -18,6 +19,7 @@ export async function createApp({
|
||||
buildOptions,
|
||||
...config
|
||||
}: ExtendedAppCreateConfig) {
|
||||
registerLocalMediaAdapter();
|
||||
const root = path.resolve(distPath ?? "./node_modules/bknd/dist", "static");
|
||||
|
||||
if (!app) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { IncomingMessage } from "node:http";
|
||||
import type { App, CreateAppConfig } from "bknd";
|
||||
import { type App, type CreateAppConfig, registries } from "bknd";
|
||||
import { StorageLocalAdapter } from "media/storage/adapters/StorageLocalAdapter";
|
||||
|
||||
export type CloudflareBkndConfig<Env = any> = {
|
||||
mode?: "warm" | "fresh" | "cache" | "durable";
|
||||
@@ -47,3 +48,7 @@ export function nodeRequestToRequest(req: IncomingMessage): Request {
|
||||
headers
|
||||
});
|
||||
}
|
||||
|
||||
export function registerLocalMediaAdapter() {
|
||||
registries.media.register("local", StorageLocalAdapter);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ type GetServerSidePropsContext = {
|
||||
|
||||
export function createApi({ req }: GetServerSidePropsContext) {
|
||||
const request = nodeRequestToRequest(req);
|
||||
//console.log("createApi:request.headers", request.headers);
|
||||
return new Api({
|
||||
host: new URL(request.url).origin,
|
||||
headers: request.headers
|
||||
@@ -43,10 +42,11 @@ function getCleanRequest(req: Request) {
|
||||
}
|
||||
|
||||
let app: App;
|
||||
export function serve(config: CreateAppConfig) {
|
||||
export function serve(config: CreateAppConfig & { beforeBuild?: (app: App) => Promise<void> }) {
|
||||
return async (req: Request) => {
|
||||
if (!app) {
|
||||
app = App.create(config);
|
||||
await config.beforeBuild?.(app);
|
||||
await app.build();
|
||||
}
|
||||
const request = getCleanRequest(req);
|
||||
|
||||
@@ -3,3 +3,4 @@ export {
|
||||
StorageLocalAdapter,
|
||||
type LocalAdapterConfig
|
||||
} from "../../media/storage/adapters/StorageLocalAdapter";
|
||||
export { registerLocalMediaAdapter } from "../index";
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import path from "node:path";
|
||||
import { serve as honoServe } from "@hono/node-server";
|
||||
import { serveStatic } from "@hono/node-server/serve-static";
|
||||
import { App, type CreateAppConfig } from "bknd";
|
||||
import { App, type CreateAppConfig, registries } from "bknd";
|
||||
import { registerLocalMediaAdapter } from "../index";
|
||||
|
||||
export type NodeAdapterOptions = CreateAppConfig & {
|
||||
relativeDistPath?: string;
|
||||
@@ -21,6 +22,8 @@ export function serve({
|
||||
buildOptions = {},
|
||||
...config
|
||||
}: NodeAdapterOptions = {}) {
|
||||
registerLocalMediaAdapter();
|
||||
|
||||
const root = path.relative(
|
||||
process.cwd(),
|
||||
path.resolve(relativeDistPath ?? "./node_modules/bknd/dist", "static")
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import { App, type CreateAppConfig } from "bknd";
|
||||
|
||||
let app: App;
|
||||
export function serve(config: CreateAppConfig) {
|
||||
export function serve(config: CreateAppConfig & { beforeBuild?: (app: App) => Promise<void> }) {
|
||||
return async (args: { request: Request }) => {
|
||||
if (!app) {
|
||||
app = App.create(config);
|
||||
await config.beforeBuild?.(app);
|
||||
await app.build();
|
||||
}
|
||||
return app.fetch(args.request);
|
||||
|
||||
Reference in New Issue
Block a user