diff --git a/src/libs/ddd/command.base.ts b/src/libs/ddd/command.base.ts index d75d11b4..1a5dfb53 100644 --- a/src/libs/ddd/command.base.ts +++ b/src/libs/ddd/command.base.ts @@ -1,6 +1,7 @@ import { RequestContextService } from '@libs/application/context/AppRequestContext'; import { ArgumentNotProvidedException } from '../exceptions'; import { Guard } from '../guard'; +import { randomUUID } from 'crypto'; export type CommandProps = Omit & Partial; @@ -42,7 +43,7 @@ export class Command { ); } const ctx = RequestContextService.getContext(); - this.id = props.id || crypto.randomUUID(); + this.id = props.id || randomUUID(); this.metadata = { correlationId: props?.metadata?.correlationId || ctx.requestId, causationId: props?.metadata?.causationId, diff --git a/src/libs/ddd/domain-event.base.ts b/src/libs/ddd/domain-event.base.ts index 697ea89d..76921381 100644 --- a/src/libs/ddd/domain-event.base.ts +++ b/src/libs/ddd/domain-event.base.ts @@ -1,3 +1,4 @@ +import { randomUUID } from 'crypto'; import { ArgumentNotProvidedException } from '../exceptions'; import { Guard } from '../guard'; import { RequestContextService } from '@libs/application/context/AppRequestContext'; @@ -40,7 +41,7 @@ export abstract class DomainEvent { 'DomainEvent props should not be empty', ); } - this.id = crypto.randomUUID(); + this.id = randomUUID(); this.aggregateId = props.aggregateId; this.metadata = { correlationId: diff --git a/src/modules/user/domain/user.entity.ts b/src/modules/user/domain/user.entity.ts index 0cb37472..48ccc20a 100644 --- a/src/modules/user/domain/user.entity.ts +++ b/src/modules/user/domain/user.entity.ts @@ -10,12 +10,13 @@ import { import { UserDeletedDomainEvent } from './events/user-deleted.domain-event'; import { UserRoleChangedDomainEvent } from './events/user-role-changed.domain-event'; import { UserAddressUpdatedDomainEvent } from './events/user-address-updated.domain-event'; +import { randomUUID } from 'crypto'; export class UserEntity extends AggregateRoot { protected readonly _id: AggregateID; static create(create: CreateUserProps): UserEntity { - const id = crypto.randomUUID(); + const id = randomUUID(); /* Setting a default role since we are not accepting it during creation. */ const props: UserProps = { ...create, role: UserRoles.guest }; const user = new UserEntity({ id, props }); diff --git a/src/modules/wallet/domain/wallet.entity.ts b/src/modules/wallet/domain/wallet.entity.ts index 2fe4b046..f3289689 100644 --- a/src/modules/wallet/domain/wallet.entity.ts +++ b/src/modules/wallet/domain/wallet.entity.ts @@ -3,6 +3,7 @@ import { ArgumentOutOfRangeException } from '@libs/exceptions'; import { Err, Ok, Result } from 'oxide.ts'; import { WalletCreatedDomainEvent } from './events/wallet-created.domain-event'; import { WalletNotEnoughBalanceError } from './wallet.errors'; +import { randomUUID } from 'crypto'; export interface CreateWalletProps { userId: AggregateID; @@ -16,7 +17,7 @@ export class WalletEntity extends AggregateRoot { protected readonly _id: AggregateID; static create(create: CreateWalletProps): WalletEntity { - const id = crypto.randomUUID(); + const id = randomUUID(); const props: WalletProps = { ...create, balance: 0 }; const wallet = new WalletEntity({ id, props });