rename to core

This commit is contained in:
2025-12-15 13:46:07 +01:00
parent aedf58643d
commit 5c22f8820c
559 changed files with 415 additions and 767 deletions

View File

@@ -0,0 +1,3 @@
export interface IEntity<Id = string> {
readonly id: Id;
}

View File

@@ -0,0 +1,10 @@
export interface IDomainEvent<T = any> {
readonly eventType: string;
readonly aggregateId: string;
readonly eventData: T;
readonly occurredAt: Date;
}
export interface IDomainEventPublisher {
publish(event: IDomainEvent): Promise<void>;
}

View File

@@ -0,0 +1,7 @@
export function coalesce<T>(value: T | undefined | null, fallback: T): T {
return value ?? fallback;
}
export function present<T>(value: T | undefined | null): T | undefined {
return value === undefined || value === null ? undefined : value;
}

View File

@@ -0,0 +1,24 @@
import type { Result } from '../result/Result';
import type { IDomainError } from '../errors/DomainError';
export interface IDomainService {
readonly serviceName?: string;
}
export interface IDomainCalculationService<Input, Output> extends IDomainService {
calculate(input: Input): Output;
}
export interface IResultDomainCalculationService<Input, Output, Error = IDomainError>
extends IDomainService {
calculate(input: Input): Result<Output, Error>;
}
export interface IDomainValidationService<Input, Output, Error = IDomainError>
extends IDomainService {
validate(input: Input): Result<Output, Error>;
}
export interface IDomainFactoryService<Input, Output> extends IDomainService {
create(input: Input): Output;
}

View File

@@ -0,0 +1,4 @@
export interface IValueObject<Props> {
readonly props: Props;
equals(other: IValueObject<Props>): boolean;
}

View File

@@ -0,0 +1,4 @@
export * from './Entity';
export * from './ValueObject';
export * from './Service';
export * from './Option';