plazbot
Version:
Official Plazbot SDK for creating AI agents for WhatsApp, portals, and developers.
46 lines (45 loc) • 1.62 kB
JavaScript
;
// ============================================================================
// Plazbot Workers - defineWorker()
// Crea un listener que reacciona a eventos internos de la plataforma
// ============================================================================
Object.defineProperty(exports, "__esModule", { value: true });
exports.defineWorker = defineWorker;
/**
* Define un worker (event listener) que reacciona a eventos de Plazbot.
*
* Los eventos se mapean a triggers del backend existente:
* - `message.received` — cliente envio un mensaje
* - `message.image.received` — cliente envio una imagen
* - `contact.created` — se creo un contacto nuevo
* - `conversation.resolved` — se resolvio el chat
* (ver tipos/events.ts para la lista completa)
*
* @example
* ```typescript
* import { defineWorker } from 'plazbot/workers';
*
* export default defineWorker({
* name: 'bienvenida',
* reference: 'Saluda a contactos nuevos',
* events: ['contact.created'],
* async handler(event, plz) {
* const { contact } = event.data;
* if (!contact?.phoneNumber) return;
* await plz.whatsapp.send({ to: contact.phoneNumber, message: 'Bienvenido!' });
* },
* });
* ```
*/
function defineWorker(config) {
if (!config.name)
throw new Error('defineWorker: "name" es requerido');
if (!config.events?.length)
throw new Error('defineWorker: "events" debe tener al menos un evento');
if (!config.handler)
throw new Error('defineWorker: "handler" es requerido');
return {
__type: 'worker',
config,
};
}