Documentazione · src/plugin · src/cli · src/utils
Installare
Un plugin e un comando. Il pacchetto entra in un progetto da un punto solo, e ne esce lasciando file che appartengono al progetto.
Il plugin: un punto d’ingresso
Il plugin riceve la configurazione di Payload e la restituisce arricchita: collection, global, blocchi, hook, la vista dello Studio. È il solo punto in cui il pacchetto tocca la configurazione del progetto, e si può disabilitare — restituendo la configurazione intatta — il che serve più di quanto sembri quando si deve isolare un problema.
La collection `media` è opt-in: un progetto che ne ha già una non se ne vede imporre un’altra.
plugin/index.ts— il plugin: cosa aggiunge alla configurazioneplugin/collections.ts— la `media` di default, opt-in
Cosa scaffolda `init`
`npx woodylab-uims init` scrive nel progetto i sei store (copiandoli dalle baseline), il file dei reducer `app-state.ts`, e i pezzi di configurazione che devono stare nel progetto perché il progetto li possa modificare.
I template restano leggibili di proposito: sono sorgente destinato a essere modificato da chi installa, e minificarli sarebbe controproducente. Lo script di minificazione li salta esplicitamente.
Il comando è anche l’unica cosa che `gate.sh` esercita per intero: costruisce un progetto ex novo, installa il tarball, lancia `init`, compila. Un errore in `init` non si vede in nessun altro modo, perché in repo il progetto è già inizializzato.
cli/init.ts— lo scaffolding: store, reducer, configurazione
Il pacchetto non spedisce migrazioni
Per un po’ le ha spedite, e la scelta è stata rivista prima della pubblicazione. Erano cinque trasformazioni di dato — le reazioni diventate effetti, il «torna in cima» diventato un’azione, i trigger DOM col prefisso — tutte relative a forme cambiate DURANTE lo sviluppo, prima che il pacchetto uscisse.
Chi installa oggi non ha niente da migrare: parte dalla forma corrente. Spedirle significava pubblicare la nostra cronologia interna come superficie pubblica, e con essa l’impegno a mantenerla — perché togliere un sottopercorso, dopo, è un cambiamento che rompe.
Resta vero il problema che risolvevano, e riguarda te: cambiare la forma di un tuo blocco non tocca il contenuto già scritto. Quella trasformazione è del progetto, ed è una funzione pura da dato a dato — a leggere e scrivere ci pensa uno script tuo. Vedi la pagina Estendere.
I servizi
Cinque file che non appartengono a nessuna delle aree precedenti e servono a più di una: le CSS var emesse nel layout, la cache dei global, la conversione dei colori, il catalogo delle icone.
utils/generateCssVars.ts— le variabili del tema attivo, come CSS varutils/getCachedGlobal.ts— la lettura in cache di un globalutils/hexToRgb.ts— la conversione per le var colore con opacitàutils/iconsList.ts— il catalogo delle icone disponibili