Logging & Utils
NullLogger
Logger no-op che scarta silenziosamente tutti i messaggi — usato per disabilitare completamente il logging della libreria in produzione o nei test.
Cos'è
NullLogger è un'implementazione no-op dell'interfaccia ILogger: ogni chiamata a debug, warn, error viene scartata senza side effect. Sostituisce ConsoleLogger quando si vuole rendere la libreria completamente silenziosa.
Signature
class NullLogger implements ILogger {
debug(): void // no-op
warn(): void // no-op
error(): void // no-op
}
I metodi non accettano argomenti (li accetta ILogger ma vengono ignorati): la JIT engine elimina le chiamate a costo zero a runtime.
Quando usarlo
| Scenario | Motivazione |
|---|---|
| Produzione silenziosa | Eliminare rumore di log in ambienti gestiti via piattaforma esterna (Sentry, CloudWatch) dove la libreria non deve emettere su console.* |
| Test unitari | Evitare output spurio durante l'esecuzione di Jest/Vitest senza dover stubbare console globalmente |
| Hot path performance-critical | Quando ogni microsecondo conta e il logging diagnostico non serve |
| Ambienti embedded / SSR | Quando console non è disponibile o è ridiretto in modo problematico |
Esempio: produzione
import { PostgRESTClient, ConsoleLogger, NullLogger } from '@pzeta/postgrest'
const isProd = process.env.NODE_ENV === 'production'
const client = new PostgRESTClient({
apiUrl: process.env.API_URL,
logger: isProd ? new NullLogger() : new ConsoleLogger(),
})
Esempio: test
import { describe, it, expect } from 'vitest'
import { BasePostgrestService, NullLogger } from '@pzeta/postgrest'
describe('FattureService', () => {
it('dovrebbe ritornare la lista vuota senza errori', async () => {
const service = new FattureService({
apiUrl: 'http://localhost:3000',
logger: new NullLogger(), // nessun output durante il test
})
const fatture = await service.getAll()
expect(fatture).toEqual([])
})
})
Con
NullLogger perdi visibilità su filtri ignorati, fallback cache, errori SQLSTATE mappati. In caso di bug, ripristina temporaneamente ConsoleLogger o un logger applicativo per ispezionare i messaggi diagnostici.Tipi correlati
ILogger— interfaccia implementataConsoleLogger— alternativa verbosa default
FilterUtils
Utility statica per convertire FilterCriteria type-safe in query parameters PostgREST, parsare l'header Content-Range e costruire headers per operazioni bulk e paginate.
MFE Integration
Entry point @pzeta/postgrest/mfe per microfrontend — service e composables Vue 3 basati su MFEHttpClient di @pzeta/mfe-contracts invece di Axios/Fetch diretti.