WoodyLab
WoodyLabBuild with UIMS

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 configurazione
  • plugin/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 var
  • utils/getCachedGlobal.ts — la lettura in cache di un global
  • utils/hexToRgb.ts — la conversione per le var colore con opacità
  • utils/iconsList.ts — il catalogo delle icone disponibili
Login