@noddde/typeorm
v0.3.9
Published
TypeORM persistence adapter for noddde
Maintainers
Readme
@noddde/typeorm
TypeORM persistence adapter for noddde. Works with PostgreSQL, MySQL, MariaDB, MSSQL, and SQLite.
Install
yarn add @noddde/typeorm typeorm
# or
npm install @noddde/typeorm typeormWhat's Inside
TypeORMAdapter— Full persistence adapter forwireDomain: event-sourced aggregates, state-stored aggregates, sagas, snapshots, and outboxTypeORMAdvisoryLocker— Distributed pessimistic locking (auto-detected from DataSource)- Built-in entities —
NodddeEventEntity,NodddeAggregateStateEntity,NodddeSagaStateEntity,NodddeSnapshotEntity,NodddeOutboxEntryEntity - Individual persistence classes for fine-grained control
TypeORMUnitOfWork— ACID transaction context
Usage
import { DataSource } from "typeorm";
import {
TypeORMAdapter,
NodddeEventEntity,
NodddeAggregateStateEntity,
NodddeSagaStateEntity,
} from "@noddde/typeorm";
import { wireDomain } from "@noddde/engine";
const dataSource = new DataSource({
type: "postgres",
url: process.env.DATABASE_URL,
entities: [
NodddeEventEntity,
NodddeAggregateStateEntity,
NodddeSagaStateEntity,
],
synchronize: true,
});
await dataSource.initialize();
const adapter = new TypeORMAdapter(dataSource);
const domain = await wireDomain(definition, {
persistenceAdapter: adapter,
});Dedicated State Entities
For state-stored aggregates with custom TypeORM entities:
const adapter = new TypeORMAdapter(dataSource);
adapter.stateStored(OrderStateEntity, {
aggregateId: "id",
state: "data",
version: "rev",
});Peer Dependencies
typeorm>= 0.3.0
Related Packages
| Package | Description |
| :----------------------------------------------------------------- | :------------------------------------------ |
| @noddde/core | Types, interfaces, and definition functions |
| @noddde/engine | Runtime engine with domain orchestration |
| @noddde/drizzle | Drizzle ORM persistence adapter |
| @noddde/prisma | Prisma persistence adapter |
License
MIT
