Runtime Reference
Usage
Install luvabase with your package manager of choice for example:
npm install luvabaseThen import the methods you need from luvabase/runtime:
import { getMembers, getSession, sendMemberEmail } from "luvabase/runtime"Local Development
The runtime APIs only work from inside a deployed Luvabase app. During local development, call your own wrapper instead of importing luvabase/runtime throughout your app, then return mock data locally and delegate to the runtime APIs in production.
For example, create a luvabase.ts file:
import {
getMembers as getRuntimeMembers,
getSession,
type Member,
} from "luvabase/runtime"
function isDevelopment(): boolean {
return import.meta.env.MODE !== "production"
}
export async function getMembers(request: Request): Promise<Member[]> {
if (isDevelopment()) {
return [
{
id: "dev-user",
type: "user" as const,
role: "owner",
name: "Development User",
imageUrl: null,
},
]
}
return getRuntimeMembers(request)
}
export async function getCurrentUser(request: Request): Promise<Member | null> {
if (isDevelopment()) {
return {
id: "dev-user",
type: "user" as const,
role: "owner",
name: "Development User",
imageUrl: null,
}
}
const session = await getSession(request)
return session.member
}Then import from your wrapper:
import { getCurrentUser } from "./luvabase"
export default {
async fetch(request: Request) {
const user = await getCurrentUser(request)
return Response.json({ user })
},
}Runtime Methods Reference
getSession(request)
Returns the current pod session.
function getSession(request: Request): Promise<Session>The returned member is null when the request is not authenticated.
getMembers(request)
Returns all members of the current pod.
function getMembers(request: Request): Promise<Member[]>The request must be the incoming request handled by your app. Luvabase uses request headers for routing and authentication.
sendMemberEmail(request, params)
Send an email to a member of the current pod.
function sendMemberEmail(
request: Request,
params: {
memberId: string
subject: string
content: string
},
): Promise<void>Types
Member
type Member = {
id: string
type: "user" | "agent"
role: string
name: string
imageUrl: string | null
}Session
type Session = {
isAuthenticated: boolean
member: Member | null
}