@giaeulate/baas-sdk
v1.6.0
Published
Standalone TypeScript SDK for golang-baas (Supabase-style BaaS) — auth, data (PostgREST), storage, realtime, functions, RPC, admin APIs. Zero runtime dependencies.
Maintainers
Readme
@giaeulate/baas-sdk
TypeScript SDK for golang-baas — a Supabase-style Backend-as-a-Service. Auth, data (PostgREST-style), storage, realtime, edge functions, RPC, and the admin APIs. Zero runtime dependencies (native fetch + WebSocket).
Install
bun add @giaeulate/baas-sdk
# or: pnpm add @giaeulate/baas-sdkQuick start
import { BaasClient } from '@giaeulate/baas-sdk';
const baas = new BaasClient('https://your-baas.example.com', 'YOUR_ANON_KEY');
// Auth
await baas.auth.login('[email protected]', 'password');
await baas.auth.signInAnonymous();
// Data (PostgREST-style)
const { data } = await baas.from('orders')
.select('id,total,status')
.eq('status', 'pending')
.gt('total', 100)
.order('created_at', { ascending: false })
.get();
// Logic groups, array & full-text operators
await baas.from('products').and('price.gt.10,price.lt.50').get();
await baas.from('products').contains('tags', ['featured']).get();
// Count (Content-Range)
const { count } = await baas.from('orders').eq('status', 'pending').count();
// Upsert
await baas.from('settings').upsert({ id: 1, theme: 'dark' }, 'id');
// RPC (PL/pgSQL)
const result = await baas.rpc('accept_delivery_offer', { offer_id: '...' });
// Storage
const file = await baas.storage.upload(myFile, 'bucket-id');
const blob = await baas.storage.download(file.id);
// Realtime
await baas.realtime.subscribe('orders', 'insert', (evt) => console.log(evt));License
MIT
