arvo-core
Version:
The core Arvo package which provides application tier core primitives and contract system for building production-grade event-driven application. Provides ArvoEvent (CloudEvents-compliant), ArvoContract for type-safe service interfaces, event factories, O
36 lines (35 loc) • 1.55 kB
TypeScript
import ArvoEventFactory from '.';
import type { VersionedArvoContract } from '../ArvoContract/VersionedArvoContract';
import { ArvoOrchestratorEventFactory } from './Orchestrator';
/**
* Creates an ArvoEventFactory for a specific version of a contract.
*
* @param contract - The versioned contract to create a factory for
* @returns An ArvoEventFactory instance for the specified contract version
*
* @example
* ```typescript
* const contract = createArvoContract({...});
* const v1Contract = contract.version('1.0.0');
* const factory = createArvoEventFactory(v1Contract);
* ```
*/
export declare const createArvoEventFactory: <TContract extends VersionedArvoContract<any, any>>(contract: TContract) => ArvoEventFactory<TContract>;
/**
* Creates an ArvoOrchestratorEventFactory instance for handling orchestration events.
* Provides type-safe event creation with parent-child subject relationship handling.
*
* @param contract - The versioned contract for orchestration events
* @returns An ArvoOrchestratorEventFactory for creating orchestration events
*
* @example
* ```typescript
* const contract = createArvoOrchestratorContract({ ... });
* const factory = createArvoOrchestratorEventFactory(contract.version('1.0.0'));
* const event = factory.init({
* source: 'system',
* data: { parentSubject$$: null, data: 'value' }
* });
* ```
*/
export declare const createArvoOrchestratorEventFactory: <TContract extends VersionedArvoContract<any, any>>(contract: TContract) => ArvoOrchestratorEventFactory<TContract>;