@parsrun/database
v0.2.12
Published
Database utilities for Pars - Drizzle ORM helpers, migrations, multi-runtime support
Downloads
237
Maintainers
Readme
@parsrun/database
Database utilities for Pars with Drizzle ORM helpers and multi-runtime support.
Features
- Drizzle ORM: Type-safe database operations
- Multi-Adapter: PostgreSQL, Neon, Cloudflare D1
- Edge-Compatible: Works on Cloudflare Workers, Deno
- Migrations: Schema migration utilities
Installation
pnpm add @parsrun/database drizzle-ormQuick Start
import { createDatabase } from '@parsrun/database';
const db = createDatabase({
adapter: 'postgres',
connectionString: process.env.DATABASE_URL,
});API Overview
Adapters
PostgreSQL
import { createPostgresAdapter } from '@parsrun/database/adapters/postgres';
const db = createPostgresAdapter({
connectionString: 'postgres://...',
});Neon (Serverless PostgreSQL)
import { createNeonAdapter } from '@parsrun/database/adapters/neon';
const db = createNeonAdapter({
connectionString: process.env.DATABASE_URL,
});Cloudflare D1
import { createD1Adapter } from '@parsrun/database/adapters/d1';
// In Cloudflare Worker
const db = createD1Adapter({
database: env.DB,
});Database Operations
import { users } from './schema';
// Insert
await db.insert(users).values({ name: 'John' });
// Select
const allUsers = await db.select().from(users);
// Update
await db.update(users).set({ name: 'Jane' }).where(eq(users.id, 1));
// Delete
await db.delete(users).where(eq(users.id, 1));With Multi-Tenancy
import { withTenant } from '@parsrun/database';
// Automatically filter by tenant
const tenantDb = withTenant(db, tenantId);
const users = await tenantDb.select().from(users);Exports
import { ... } from '@parsrun/database'; // Main exports
import { ... } from '@parsrun/database/adapters/postgres'; // PostgreSQL
import { ... } from '@parsrun/database/adapters/neon'; // Neon
import { ... } from '@parsrun/database/adapters/d1'; // Cloudflare D1License
MIT
