@nestjs-crud/drizzle
v2.2.2
Published
NestJs CRUD for RESTful APIs - Drizzle ORM
Maintainers
Readme
The API follows the same patterns as TypeORM. See the Drizzle service docs for full Drizzle adapter API.
Install
npm i @nestjs-crud/drizzle drizzle-ormUsage
Assume you have a Drizzle table definition:
import { pgTable, serial, varchar } from 'drizzle-orm/pg-core';
export const companies = pgTable('companies', {
id: serial('id').primaryKey(),
name: varchar('name', { length: 100 }).notNull(),
});Then create a service:
import { Inject, Injectable } from '@nestjs/common';
import { DrizzleCrudService, DrizzleClient } from '@nestjs-crud/drizzle';
import { companies } from './company.table';
@Injectable()
export class CompaniesService extends DrizzleCrudService<typeof companies.$inferSelect> {
constructor(@Inject('DB') db: DrizzleClient) {
super(db, companies);
}
}Then provide your service in a controller:
import { Controller } from '@nestjs/common';
import { Crud, CrudController } from '@nestjs-crud/core';
import { CompaniesService } from './companies.service';
@Crud({
model: {
type: Object, // Drizzle uses plain objects, not class entities
},
})
@Controller('companies')
export class CompaniesController {
constructor(public service: CompaniesService) {}
}See also
- Wiki: ServiceDrizzle — full Drizzle adapter API
- Wiki: Logging — optional
LoggerServiceconstructor parameter (v2.0.0) - Wiki: Caching —
@Crud({ query: { cache } })honored viaDrizzleCacheStrategy(v2.2.0+) - v2 Migration guide — including the typed
DrizzleClientconstructor migration
