arvo-core
Version:
This core package contains all the core classes and components of the Arvo Event Driven System
41 lines (40 loc) • 1.26 kB
TypeScript
import ArvoEvent from '.';
import type { ArvoEventData, CloudEventExtension, CreateArvoEvent } from './types';
/**
* Creates a strongly-typed ArvoEvent with configurable telemetry options.
*
* @param event - Event configuration and data
* @param [extensions] - Optional cloud event extensions
* @param [opentelemetry] - OpenTelemetry configuration with options:
* - disable - Completely disables telemetry if true
*
* @throw {Error} In case any validation in {@link ArvoEvent} fails.
*
* @returns ArvoEvent with type-safety
*
* @example
* ```typescript
* // With default telemetry
* const event = createArvoEvent({
* type: 'order.created',
* source: '/orders',
* subject: 'order-123',
* data: orderData
* });
*
* // With disabled telemetry
* const event = createArvoEvent(
* {
* type: 'order.created',
* source: '/orders',
* subject: 'order-123',
* data: orderData
* },
* undefined,
* { disable: true }
* );
* ```
*/
export declare const createArvoEvent: <TData extends ArvoEventData, TExtension extends CloudEventExtension, TType extends string>(event: CreateArvoEvent<TData, TType>, extensions?: TExtension, opentelemetry?: {
disable?: boolean;
}) => ArvoEvent<TData, TExtension, TType>;