con un clic
hive-handler
How to create event handlers in Hive framework
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
How to create event handlers in Hive framework
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Hive framework structure and conventions. Apply when working with this codebase.
How to create external services in Hive framework
How authentication works in Hive framework
Database operations in Hive framework
How to create API endpoints in Hive framework
Schema mappings for auto-syncing embedded documents
| name | hive-handler |
| description | How to create event handlers in Hive framework |
| globs | ["src/resources/**/handlers/*.js"] |
| alwaysApply | false |
Handlers react to database events automatically.
Location: /src/resources/{name}/handlers/{handlerName}.js
import db from 'db';
const myService = db.services.myResource;
myService.on('created', async ({ doc }) => {
// Handle creation
});
myService.on('updated', async ({ doc, prevDoc }) => {
// Handle update
});
myService.on('removed', async ({ doc }) => {
// Handle removal
});
| Event | Payload | Trigger |
|---|---|---|
created | { doc } | After service.create() |
updated | { doc, prevDoc } | After service.updateOne/Many() |
removed | { doc } | After service.remove() |
Create related record:
taskService.on('created', async ({ doc }) => {
await eventService.create({
type: 'task.created',
data: { task: doc },
project: doc.project,
});
});
Update parent on child change:
docService.on('created', async ({ doc }) => {
if (doc.role === 'case-study') {
await projectService.updateOne(
{ _id: doc.project._id },
(p) => ({ ...p, caseStudy: doc })
);
}
});
React to specific field change:
import ifUpdated from 'helpers/db/ifUpdated';
taskService.on('updated', ifUpdated(['status'], async ({ doc, prevDoc }) => {
// Only runs when status changed
}));
Cleanup on delete:
docService.on('removed', async ({ doc }) => {
await eventService.remove({ 'data.doc._id': doc._id });
});
atomic.update for silent bulk updates (no events)ifUpdated helper to filter field changes