guide users - wwwsolutions/nestjs-starter-kit GitHub Wiki

Domains | Business logic

Example from Prisma-GraphQL integration

Users Domain

Each library has a single responsibility

Structure

api-domain-users-feature lib

This is base domain library which holds, in this case, some resolvers.

api-domain-users-data-access lib

Contains domain's data layer and exposes:

  • ApiGraphqlUsersDataAccessModule
  • UsersService
  • models

Create domain

Generate

// generate feature lib
nx generate @nrwl/nest:library --name=feature --directory=api/domain/users --buildable --standaloneConfig --strict --tags=type:feature,scope:api --no-interactive

// generate data-access lib
nx generate @nrwl/nest:library --name=data-access --directory=api/domain/users --buildable --standaloneConfig --strict --tags=type:data-access,scope:api --no-interactive

Register

Add feature module name to the domains array.

// libs/api/core/src/lib/registrations/domains.registration.ts 

import { ApiDomainUsersFeatureModule } from '@wwwsolutions/api/domain/users/feature';

export const domains: NestImportsType = [ApiDomainUsersFeatureModule];
⚠️ **GitHub.com Fallback** ⚠️