@xyz/database
v0.0.5
Published
Prisma database client and queries
Downloads
12
Readme
@xyz/database
Prisma database client and query utilities for PostgreSQL with Zod schema validation.
Installation
npm install @xyz/databaseRequirements
- Prisma 7+ - Required as a peer dependency
- PostgreSQL - Database
- DATABASE_URL - Environment variable with your PostgreSQL connection string
Usage
Basic Usage
import { db } from '@xyz/database'
// Use the Prisma client directly
const users = await db.user.findMany()Query Functions
Pre-built query functions for common operations:
import {
getUsers,
getUserById,
createUser,
getOrganizations,
getPurchasesByUserId
} from '@xyz/database'
// Get paginated users with search
const users = await getUsers({ limit: 10, offset: 0, query: 'john' })
const count = await countAllUsers({ query: 'john' })Tenant-Scoped Queries
For multi-tenant applications:
import { createTenantQueries } from '@xyz/database'
const tenantQueries = createTenantQueries({
userId: 'user-id',
organizationId: 'org-id'
})
// All queries are automatically scoped to the organization
const chats = await tenantQueries.aiChats.list()
const members = await tenantQueries.members.list()Zod Schemas
Zod schemas are generated from your Prisma schema:
import { UserSchema, OrganizationSchema, PurchaseSchema } from '@xyz/database'
// Validate input
const result = UserSchema.safeParse(input)
// Use for type inference
type User = z.infer<typeof UserSchema>Type Exports
Prisma model types are re-exported for convenience:
import type { User, Organization, Purchase, PurchaseType } from '@xyz/database'Exports
| Export Path | Description |
|-------------|-------------|
| @xyz/database | Main entry - db client, queries, types, Zod schemas |
| @xyz/database/client | Prisma client singleton and model types |
| @xyz/database/queries | Pre-built query functions |
Development
# Generate Prisma client + Zod schemas + OpenAPI
npm run generate
# Build the package
npm run build
# Push schema changes to database
npm run push
# Run migrations
npm run migrate
# Open Prisma Studio
npm run studioArchitecture
@xyz/database/
├── client.ts # Prisma singleton with PrismaPg adapter
├── index.ts # Main exports
├── prisma.config.ts # Prisma CLI configuration
├── schema/ # Multi-file Prisma schema (domain-based)
│ ├── config.prisma # Datasource + generators config
│ ├── users.prisma # User, Session, Account, Passkey, TwoFactor, Verification
│ ├── organizations.prisma # Organization, Member, Invitation
│ ├── billing.prisma # Purchase, PurchaseType enum
│ └── features-ai-chat.prisma # AiChat
├── queries/ # Pre-built query functions
│ ├── users.ts
│ ├── organizations.ts
│ ├── billing.ts
│ ├── features-ai-chats.ts
│ └── tenant.ts
├── generated/ # Generated outputs
│ ├── client/ # Prisma Client
│ └── zod/ # Zod schemas
└── openapi/ # Generated OpenAPI spec
└── openapi.yaml