A TypeScript DDD example is a skeleton of contain all business logic to be used in the application.
Based on @sui-domain
package.
import domain from "@typescript-ddd-example";
await domain.get("get_recipe_list_use_case").execute(/* params */);
All execute
methods will return promises to be more consistent.
import domain from "@typescript-ddd-example";
const { unsubscribe } = domain
.get("get_recipe_list_use_case")
.subscribe(({ params, error, result }) => {
// Callback
});
Use subscribe
method to subscribe to this use case.
pnpm run domain:test
pnpm run domain:test:ci
- domain
├── src
│ ├── contexts
│ │ └── [context]
│ │ ├── entities
│ │ │ ├── factory.ts
│ │ │ └── [Entity].ts
│ │ ├── mappers
│ │ │ ├── factory.ts
│ │ │ └── [Mapper].ts
│ │ ├── repository
│ │ │ ├── factory.ts
│ │ │ └── [Repository].ts
│ │ ├── services
│ │ │ ├── factory.ts
│ │ │ └── [Service].ts
│ │ ├── useCases
│ │ │ ├── factories
│ │ │ │ └── [useCaseFactory].ts
│ │ │ └── [UseCase].ts
│ │ └── valueObjects
│ │ ├── factories
│ │ └── [valueObject].ts
│ └── index.ts
└── test
├── contexts
│ └── [context]
│ └── [useCase].spec.ts
└── fixtures
└── [context]
└── [useCase|Feature].ts