bknd is dead long live userbase
Run Tests / test (pull_request) Successful in 4m57s

This commit is contained in:
2026-09-27 19:34:06 +05:30
parent 05e0086fcd
commit 0bfcb5ad71
529 changed files with 2385 additions and 2924 deletions
+4 -4
View File
@@ -1,6 +1,6 @@
# bknd + SvelteKit Example
# userbase + SvelteKit Example
This example shows how to integrate bknd with SvelteKit.
This example shows how to integrate userbase with SvelteKit.
## Setup
@@ -11,8 +11,8 @@ bun run dev
## How it works
1. **`bknd.config.ts`** - bknd configuration with database connection, schema, and seed data
2. **`src/hooks.server.ts`** - Routes `/api/*` requests to bknd
1. **`userbase.config.ts`** - userbase configuration with database connection, schema, and seed data
2. **`src/hooks.server.ts`** - Routes `/api/*` requests to userbase
3. **`src/routes/+page.server.ts`** - Uses `getApp()` to fetch data server-side
## API Endpoints
+5 -5
View File
@@ -1,5 +1,5 @@
import type { SvelteKitBkndConfig } from "bknd/adapter/sveltekit";
import { em, entity, text, libsql } from "bknd";
import type { SvelteKitUserbaseConfig } from "userbase/adapter/sveltekit";
import { em, entity, text, libsql } from "userbase";
import { createClient } from "@libsql/client";
const schema = em({
@@ -21,7 +21,7 @@ export default {
enabled: true,
allow_register: true,
jwt: {
issuer: "bknd-sveltekit-example",
issuer: "userbase-sveltekit-example",
secret: "dev-secret-change-in-production-1234567890abcdef",
},
roles: {
@@ -48,9 +48,9 @@ export default {
});
await ctx.em.mutator("todos").insertMany([
{ title: "Learn bknd", done: "true" },
{ title: "Learn userbase", done: "true" },
{ title: "Build with SvelteKit", done: "false" },
]);
},
},
} as const satisfies SvelteKitBkndConfig;
} as const satisfies SvelteKitUserbaseConfig;
+3 -3
View File
@@ -1,12 +1,12 @@
{
"name": "bknd-sveltekit-example",
"name": "userbase-sveltekit-example",
"version": "0.0.1",
"private": true,
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
"postinstall": "node node_modules/.bin/bknd copy-assets --out static"
"postinstall": "node node_modules/.bin/userbase copy-assets --out static"
},
"devDependencies": {
"@sveltejs/adapter-auto": "^7.0.0",
@@ -17,7 +17,7 @@
"vite": "^7.0.0"
},
"dependencies": {
"bknd": "file:../../app",
"userbase": "file:../../app",
"@libsql/client": "^0.15.0"
},
"type": "module"
+5 -5
View File
@@ -1,15 +1,15 @@
import type { Handle } from "@sveltejs/kit";
import { serve } from "bknd/adapter/sveltekit";
import { serve } from "userbase/adapter/sveltekit";
import { env } from "$env/dynamic/private";
import config from "../bknd.config";
import config from "../userbase.config";
const bkndHandler = serve(config, env);
const userbaseHandler = serve(config, env);
export const handle: Handle = async ({ event, resolve }) => {
// Handle bknd API requests
// Handle userbase API requests
const pathname = event.url.pathname;
if (pathname.startsWith("/api/") || pathname.startsWith("/admin")) {
const res = await bkndHandler(event);
const res = await userbaseHandler(event);
if (res.status !== 404) {
return res;
}
@@ -1,7 +1,7 @@
import type { PageServerLoad } from "./$types";
import { getApp } from "bknd/adapter/sveltekit";
import { getApp } from "userbase/adapter/sveltekit";
import { env } from "$env/dynamic/private";
import config from "../../bknd.config";
import config from "../../userbase.config";
export const load: PageServerLoad = async () => {
const app = await getApp(config, env);
+1 -1
View File
@@ -4,7 +4,7 @@
let { data }: { data: PageData } = $props();
</script>
<h1>bknd + SvelteKit Example</h1>
<h1>userbase + SvelteKit Example</h1>
<h2>Todos</h2>
<ul>