/**
* Trigger Preprocessor
*
* ⚠️ This function runs BEFORE the main function.
*
* It processes raw trigger data (e.g., MQTT, HTTP, SQS, WebSocket, Kafka, NATS) before passing it to `main()`.
* Common tasks:
* - Convert binary payloads to string/JSON
* - Extract metadata
* - Filter messages
* - Add timestamps/context
*
* The returned object determines `main()` parameters:
* - `{a: 1, b: 2}` → `main(a, b)`
*
* @param event - Trigger data (e.g., MQTT, HTTP, SQS, WebSocket, Kafka, NATS)
* @returns Processed data for `main()`
*/
export async function preprocessor(
event: {
kind: 'email';
parsed_email: any;
raw_email: string;
email_extra_args?: Record<string, string>
}
) {
if (event.kind === 'email') {
return {
parsed_email: event.parsed_email,
raw_email: event.raw_email,
email_extra_args: event.email_extra_args,
};
}
throw new Error(`Expected email trigger kind, got: ${event.kind}`);
}
/**
* Main Function - Handles processed trigger events
*
* ⚠️ Called AFTER `preprocessor()`, with its return values.
*
* @param parsed_email - Parsed email
* @param raw_email - Raw email as string
* @param email_extra_args - Extra email arguments
*/
export async function main(
parsed_email: any,
raw_email: string,
email_extra_args?: Record<string, string>
) {
// Implement the main function logic here
}
Submitted by hugo697 245 days ago
/**
* General Trigger Preprocessor
*
* ⚠️ This function runs BEFORE the main function.
*
* It processes raw trigger data (e.g., MQTT, HTTP, SQS, WebSocket, Kafka, NATS) before passing it to `main()`.
* Common tasks:
* - Convert binary payloads to string/JSON
* - Extract metadata
* - Filter messages
* - Add timestamps/context
*
* The returned object determines `main()` parameters:
* - `{a: 1, b: 2}` → `main(a, b)`
*
* @param event - Trigger data (e.g., MQTT, HTTP, SQS, WebSocket, Kafka, NATS)
* @returns Processed data for `main()`
*/
export async function preprocessor(
event: {
kind: 'email';
parsed_email: any;
raw_email: string;
email_extra_args?: Record<string, string>
}
) {
if (event.kind === 'email') {
return {
parsed_email: event.parsed_email,
raw_email: event.raw_email,
email_extra_args: event.email_extra_args,
};
}
throw new Error(`Expected email trigger kind, got: ${event.kind}`);
}
/**
* Main Function - Handles processed trigger events
*
* ⚠️ Called AFTER `preprocessor()`, with its return values.
*
* @param parsed_email - Parsed email
* @param raw_email - Raw email as string
* @param email_extra_args - Extra email arguments
*/
export async function main(
parsed_email: any,
raw_email: string,
email_extra_args?: Record<string, string>
) {
// Implement the main function logic here
}
Submitted by hugo697 245 days ago