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