"content": "/**\n * Trigger Preprocessor\n *\n * It processes raw trigger data (e.g., MQTT, HTTP, SQS, WebSocket, Kafka, NATS) before passing it to the flow.\n * Common tasks:\n * - Convert binary payloads to string/JSON\n * - Extract metadata\n * - Filter messages\n * - Add timestamps/context\n *\n * The returned object determines the parameter values passed to the flow.\n * e.g., `{ b: 1, a: 2 }` → Calls the flow with `a = 2` and `b = 1`, assuming the flow has two inputs called `a` and `b`.\n * Ensure that the input names of the flow match the keys in the returned object.\n *\n * @param event - Trigger data (e.g., MQTT, HTTP, SQS, WebSocket, Kafka, NATS)\n * @returns Processed data for the flow\n */\nexport async function preprocessor(\n event: {\n kind: 'email';\n parsed_email: any;\n raw_email: string;\n email_extra_args?: Record<string, string>\n }\n) {\n if (event.kind === 'email') {\n return {\n parsed_email: event.parsed_email,\n raw_email: event.raw_email,\n email_extra_args: event.email_extra_args,\n };\n }\n\n throw new Error(`Expected email trigger kind, got: ${event.kind}`);\n}\n\n", |