@wapify/sdk
v0.3.0
Published
Wapify SDK - Type-safe API client for Wapify-generated applications
Downloads
47
Maintainers
Readme
@wapify/sdk
Type-safe SDK for Wapify-generated applications with Supabase backend.
Installation
npm install @wapify/sdkUsage
Initialize the client
import { createWapifyClient } from '@wapify/sdk'
const wapify = createWapifyClient({
supabaseUrl: process.env.VITE_SUPABASE_URL,
supabaseAnonKey: process.env.VITE_SUPABASE_ANON_KEY,
requiresAuth: true
})Define your entities
// Define your entity types
interface User {
id: string
email: string
name: string
role: string
created_at: string
}
// Create entity class
const User = wapify.createEntity<User>('users')CRUD Operations
// List all users
const users = await User.list()
// List with filtering and sorting
const admins = await User.list('-created_at', 10, { role: 'admin' })
// Get single user
const user = await User.get('user-id')
// Create user
const newUser = await User.create({
email: '[email protected]',
name: 'John Doe',
role: 'user'
})
// Update user
const updated = await User.update('user-id', { name: 'Jane Doe' })
// Delete user
await User.delete('user-id')
// Count users
const count = await User.count({ role: 'admin' })Real-time subscriptions
const subscription = User.subscribe((payload) => {
console.log('Change detected:', payload.eventType, payload.new)
})
// Unsubscribe when done
subscription.unsubscribe()Authentication
// Sign in
await wapify.signIn('[email protected]', 'password')
// Sign up
await wapify.signUp('[email protected]', 'password', {
name: 'John Doe',
role: 'user'
})
// Get current user
const user = await wapify.getCurrentUser()
// Sign out
await wapify.signOut()
// Listen to auth changes
wapify.onAuthStateChange((event, session) => {
console.log('Auth event:', event, session)
})Features
- ✅ Type-safe CRUD operations
- ✅ Automatic Supabase integration
- ✅ Real-time subscriptions
- ✅ Authentication helpers
- ✅ Filtering, sorting, pagination
- ✅ Zero configuration needed
License
MIT
