npm.io
0.13.24 • Published 2d ago

hono-crud

Licence
MIT
Version
0.13.24
Deps
1
Size
692 kB
Vulns
0
Weekly
0
Stars
9
hono-crud

hono-crud

CRUD generator for Hono with Zod validation and automatic OpenAPI generation.

npm version npm downloads tests license

Define a model once and register fully-typed Create / Read / Update / Delete / List endpoints. Core also ships auth, logging, events, encryption, serialization, audit, versioning, multi-tenant, and API-versioning helpers. Persistence adapters and docs UIs live in separate @hono-crud/* packages.

Install

npm install hono-crud hono zod

You will also want a storage adapter, e.g. @hono-crud/memory, @hono-crud/drizzle, or @hono-crud/prisma.

Usage

import { Hono } from 'hono';
import { defineMeta, defineModel, fromHono, registerCrud } from 'hono-crud';
import { MemoryCreateEndpoint, MemoryListEndpoint, MemoryReadEndpoint } from '@hono-crud/memory';
import { z } from 'zod';

const UserSchema = z.object({ id: z.uuid(), name: z.string() });
const UserModel = defineModel({ tableName: 'users', schema: UserSchema, primaryKeys: ['id'] });
const userMeta = defineMeta({ model: UserModel });

class UserCreate extends MemoryCreateEndpoint { _meta = userMeta; }
class UserRead extends MemoryReadEndpoint { _meta = userMeta; }
class UserList extends MemoryListEndpoint { _meta = userMeta; }

const app = fromHono(new Hono());
registerCrud(app, '/users', { create: UserCreate, read: UserRead, list: UserList });

See the repository README for the full guide.