arvo-core
Version:
This core package contains all the core classes and components of the Arvo Event Driven System
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>;