Domain

Layer di dominio di @pzeta/postgrest — entità, value objects e interfacce con zero dipendenze runtime. Cuore puro della Clean Architecture.

Il layer domain

Il domain layer di @pzeta/postgrest segue rigorosamente i principi della Clean Architecture:

  • Zero dipendenze runtime — non importa nulla da infrastructure/ o application/
  • Solo tipi e logica pura — type guards, helper funzionali, costanti
  • Punto di estensione — implementare un'interfaccia qui (es. ICacheStrategy) basta a integrarsi col resto della libreria
domain/
├── entities/           # AuthEntity (oggetti con identità — credenziali, risposte auth)
├── value-objects/      # FilterCriteria, CacheMetadata, ApiError (oggetti immutabili)
└── interfaces/         # IAuthService, IAuthStrategy, ICacheService, ICacheStrategy,
                          ICrudRepository, IHttpClient, ILogger, IAuthHandler

Cosa contiene

AreaContenutoUso tipico
EntitiesTipi con identità (utenti, sessioni)DTO request/response autenticazione
Value Objects — FilterCriteriaFiltri, sort, paginazione, operatori PostgRESTQuery type-safe su repository
Value Objects — CacheMetadataTipi cache (item, state, refresh config)Implementare strategie cache custom
Value Objects — ApiErrorStruttura errore PostgREST normalizzataError handling cross-cutting
InterfacesContratti di servizi e strategieEstensibilità, DI, testing con mock
Tutti gli elementi del domain sono importabili come pure type. In un consumer TypeScript:
import type { FilterCriteria, CacheItem, IAuthStrategy } from '@pzeta/postgrest'
Zero impatto sul bundle finale.

Sotto-pagine