Domain
Il layer domain
Il domain layer di @pzeta/postgrest segue rigorosamente i principi della Clean Architecture:
- Zero dipendenze runtime — non importa nulla da
infrastructure/oapplication/ - 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
| Area | Contenuto | Uso tipico |
|---|---|---|
| Entities | Tipi con identità (utenti, sessioni) | DTO request/response autenticazione |
Value Objects — FilterCriteria | Filtri, sort, paginazione, operatori PostgREST | Query type-safe su repository |
Value Objects — CacheMetadata | Tipi cache (item, state, refresh config) | Implementare strategie cache custom |
Value Objects — ApiError | Struttura errore PostgREST normalizzata | Error handling cross-cutting |
| Interfaces | Contratti di servizi e strategie | Estensibilità, DI, testing con mock |
import type { FilterCriteria, CacheItem, IAuthStrategy } from '@pzeta/postgrest'
Sotto-pagine
ApiError
Struttura errore PostgREST unificata — message, code, details, hint. Formato standard usato dal core (RepositoryUtils) e dal modulo MFE.
AuthEntity
Entità di dominio per l'autenticazione — credenziali, richieste registrazione/reset, risposte token e custom response. Include type guards runtime.
CacheMetadata
Value objects immutabili per la gestione cache — elementi cached, metadati temporali, snapshot stato, configurazione stale-while-revalidate e risposte HTTP cached.
FilterCriteria
Tipo principale per query PostgREST type-safe — combina filtri sui campi con metadati di query (operatori, OR conditions, sort, paginazione, vertical filtering).
Interfaces
Contratti del domain layer — IAuthHandler, IAuthService, IAuthStrategy, ICacheService, ICacheStrategy, ICrudRepository, IHttpClient, ILogger. Punti di estensione e DI.
PostgRESTClient
Facade Pattern di @pzeta/postgrest. Punto di ingresso principale — nasconde la complessità di HTTP client, autenticazione, cache e repository factory.
ApiError
Struttura errore PostgREST unificata — message, code, details, hint. Formato standard usato dal core (RepositoryUtils) e dal modulo MFE.