SDK Reference Overview
The Pulsabase SDK is a single, framework-agnostic package (pulsabase) that works in any TypeScript or JavaScript environment — browser, React Native, Node.js, Deno, or Bun.
npm install pulsabaseMain Entry Points
Section titled “Main Entry Points”| Export | Description |
|---|---|
PulsaClient | Main client — all queries, auth, storage, realtime |
AuthService | Authentication, sessions, MFA, IAM management |
QueryBuilder | Chainable query DSL for database reads & writes |
RelationBuilder | M2M relation management (attach, detach, sync) |
| Storage methods | Accessed via pb.storage.upload() etc. |
| Channel methods | Accessed via pb.channel('name') |
| Decorators | @primary, @text, @relation, @foreignId, etc. |
| Validation Rules | rules.* and crossRules.* |
| Errors | PulsabaseApiError, PulsabaseValidationError |
Quick Setup
Section titled “Quick Setup”import 'reflect-metadata';import { PulsaClient } from 'pulsabase';import User from './models/User';
const pb = new PulsaClient({ engineUrl: 'https://api.myproject.pulsabase.io', broadcasterUrl: 'wss://rt.myproject.pulsabase.io', storageUrl: 'https://storage.myproject.pulsabase.io', idpUrl: 'https://idp.myproject.pulsabase.io', apiKey: 'pk_live_xxxxx', auth: { clientId: 'my-client-id', redirectUri: 'https://myapp.com/callback', }, models: [User], autoRefreshToken: true,});Framework Support
Section titled “Framework Support”The SDK has no framework dependencies. It uses only:
fetch— native in browser, React Native, and Node 18+WebSocket— native in all targetsreflect-metadata— required for decorators (add to your entry point)
Works out-of-the-box with: React, Vue, Angular, Svelte, React Native, Next.js, Vite, Nuxt, Node.js, Deno, Bun.
Note:
tsconfig.jsonmust have"experimentalDecorators": trueand"emitDecoratorMetadata": true.