Enterprise architecture primitives for Gravito framework (DDD/Clean Architecture)
npm install @gravito/enterpriseEnterprise architecture primitives for Gravito framework. This package provides the building blocks for Domain-Driven Design (DDD) and Clean Architecture in Gravito applications.
``typescript
import { AggregateRoot, DomainEvent, ValueObject } from '@gravito/enterprise'
class UserCreated extends DomainEvent {
// ...
}
class UserId extends ValueObject<{ value: string }> {}
class User extends AggregateRoot
static create(id: UserId, name: string): User {
const user = new User(id)
user.addDomainEvent(new UserCreated())
return user
}
}
`
`typescript
import { Command, CommandHandler } from '@gravito/enterprise'
class CreateUserCommand extends Command {
constructor(public readonly name: string) { super() }
}
class CreateUserHandler implements CommandHandler
async handle(command: CreateUserCommand): Promise
// Logic here
return 'new-id'
}
}
``