@bunbase-ae/js
v2.11.0
Published
TypeScript/JavaScript SDK for BunBase
Maintainers
Readme
@bunbase-ae/js
TypeScript/JavaScript SDK for BunBase.
Installation
bun add @bunbase-ae/js
# or
npm install @bunbase-ae/jsQuick start
import { BunBaseClient } from "@bunbase-ae/js";
const client = new BunBaseClient({ url: "https://your-bunbase-instance.example.com" });API
BunBaseClient
The root client. All sub-clients are accessed from here.
const client = new BunBaseClient({ url: "https://..." });
client.collection("posts") // CollectionClient
client.auth // AuthClient
client.realtime // RealtimeClient
client.storage // StorageClient
client.admin // AdminClientCollections
const posts = client.collection("posts");
// List records
const { items, total } = await posts.list({ sort: "-_created_at", limit: 20 });
// Get one record
const post = await posts.get("record-id");
// Create
const created = await posts.create({ title: "Hello", body: "..." });
// Update
await posts.update("record-id", { title: "Updated" });
// Delete
await posts.delete("record-id");Auth
// Register
await client.auth.register({ email: "[email protected]", password: "secret" });
// Login
await client.auth.login({ email: "[email protected]", password: "secret" });
// Logout
await client.auth.logout();
// Subscribe to token changes (login, refresh, logout)
// session is { accessToken, refreshToken } when authenticated, or null when logged out
client.auth.onAuthChange((session) => {
if (session) {
console.log(session.accessToken, session.refreshToken);
} else {
console.log("logged out");
}
});Realtime
const unsub = client.realtime.subscribe("posts", (event) => {
console.log(event.type, event.record);
});
// Later:
unsub();Storage
// Upload a file
const result = await client.storage.upload("avatars", file);
// Get a public URL
const url = client.storage.url("avatars", "filename.png");Documentation
Full API reference and guides: https://docs-bunbase.palmcode.ae
