en un clic
hive-handler
How to create event handlers in Hive framework
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
How to create event handlers in Hive framework
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle 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