booking-sdk
v1.0.0
Published
TypeScript SDK for User Management GraphQL API with Prisma backend
Maintainers
Readme
User Management SDK
A TypeScript SDK for interacting with a User Management GraphQL API backed by Prisma.
Installation
npm install booking-sdk
# or
yarn add booking-sdk
# or
pnpm add booking-sdkUsage
Basic Setup
import { createSdk } from 'booking-sdk'
const sdk = createSdk({
endpoint: 'https://your-backend.com/graphql',
headers: {
'Authorization': 'Bearer your-token'
}
})Using the SDK
// Get a user by ID
const user = await sdk.getUser({ id: 'user-123' })
// Get all users with pagination
const users = await sdk.getUsers({ limit: 10, offset: 0 })
// Create a new user
const newUser = await sdk.createUser({
input: {
email: '[email protected]',
name: 'John Doe'
}
})
// Update a user
const updatedUser = await sdk.updateUser({
id: 'user-123',
input: {
name: 'Jane Doe'
}
})
// Delete a user
await sdk.deleteUser({ id: 'user-123' })User Model
The User model matches your Prisma schema:
interface User {
id: string // ObjectId mapped to string
email: string // Unique email address
name?: string // Optional name field
createdAt: string // ISO date string
updatedAt: string // ISO date string
}Available Operations
Queries
getUser(variables: { id: string })- Get a user by IDgetUsers(variables?: { limit?: number, offset?: number })- Get all users with pagination
Mutations
createUser(variables: { input: CreateUserInput })- Create a new userupdateUser(variables: { id: string, input: UpdateUserInput })- Update a userdeleteUser(variables: { id: string })- Delete a user
Configuration
The SDK supports various configuration options:
const sdk = createSdk({
endpoint: 'https://your-backend.com/graphql',
headers: {
'Authorization': 'Bearer your-token',
'X-Client-Version': '1.0.0'
},
timeout: 15000, // 15 seconds
debug: true // Enable request/response logging
})
// Update configuration later
sdk.updateConfig({
headers: {
'Authorization': 'Bearer new-token'
}
})Error Handling
try {
const user = await sdk.getUser({ id: 'non-existent' })
} catch (error) {
console.error('Failed to fetch user:', error)
}Advanced Usage
If you need access to the underlying GraphQL client:
const client = sdk.getClient()
// Use client.request() for custom queriesDevelopment
This SDK is generated from GraphQL operations defined in the sdk/ folder. To regenerate the SDK:
npm run codegen
npm run buildSchema Configuration
Update the codegen.ts file to point to your Prisma-based GraphQL backend:
const config: CodegenConfig = {
schema: 'https://your-api.com/graphql', // Your backend schema URL
documents: ['sdk/**/*.graphql'],
// ... rest of config
}Types
All operations return fully typed responses based on your GraphQL schema. The SDK automatically generates TypeScript interfaces for all queries, mutations, and input types.
