finalize initial app resources/drivers

This commit is contained in:
dswbx
2025-06-17 19:51:12 +02:00
parent 69c8aec6fb
commit aaa97ed113
12 changed files with 170 additions and 62 deletions

View File

@@ -1,13 +1,28 @@
export type TEmailResponse<Data = unknown> = {
success: boolean;
data?: Data;
};
export interface IEmailDriver<Data = unknown, Options = object> {
send(
to: string,
subject: string,
body: string | { text: string; html: string },
options?: Options,
): Promise<TEmailResponse<Data>>;
): Promise<Data>;
}
import type { BkndConfig } from "bknd";
import { resendEmail, memoryCache } from "bknd/core";
export default {
onBuilt: async (app) => {
app.server.get("/send-email", async (c) => {
if (await app.drivers?.email?.send("test@test.com", "Test", "Test")) {
return c.text("success");
}
return c.text("failed");
});
},
options: {
drivers: {
email: resendEmail({ apiKey: "..." }),
cache: memoryCache(),
},
},
} as const satisfies BkndConfig;