Vulcan.js è un framework JavaScript che fornisce una collezione di strumenti il cui scopo è consentire allo sviluppatore di produrre applicazioni Web basate sulle tecnologie React e GraphQL. Tra le tante cose, Vulcan.js permette il data loading, la generazione automatica di form e le notifiche mail.
Vulcan.js è un progetto full-stack, quindi le sue funzionalità comprendono tutto l'ambiente di sviluppo, dall'ambiente front-end del browser fino a quello back-end del database. L'idea degli sviluppatori è infatti quella di fornire uno strumento completo che, oltre a comprendere controlli back-end, come quelli offerti da moltissimi altri framework di qualità dedicati a React, possa includere anche codice front-end, per compiti quali la lettura, la scrittura e la presentazione dei dati.
Dato che Vulcan.js è full-stack, permette di velocizzare tutti questi compiti fornendo un'ampia gamma di componenti/helpers che si integrano alla perfezione con il lato back-end dello stesso progetto. Vediamo brevemente una lista delle caratteristiche offerte da Vulcan.js:
- genera automaticamente schemi GraphQL per le collezioni basate sullo schema JSON SimpleSchema. Questa feature permette di avere un solo formato per gli schemi utilizzati, ma è perfettamente opzionale, sarà dunque possibile specificare manualmente il formato di schema preferito;
- automatizzazione dei form: Vulcan.js utilizza gli schemi per generare i form sul lato client-side e gestire il loro inoltro al server tramite la mutazione Apollo. Un esempio di codice utile al display di un componente del form:
<Components.SmartForm collection={Movies} documentId={props.documentId}/>
- caricamento dei dati: tramite una moltitudine di helpers sarà possible caricare dati Apollo in maniera molto compatta, potendo caricare sia una lista di documenti che un documento singolo;
- sicurezza e validazione basate sugli schemi: le procedure di validazione e la gestione della sicurezza sono direttamente basate sulle collezioni derivanti dallo schema. Per ogni campo dello schema sarà possibile configurare funzioni quali
canRead
,canCreate
ecanUpdate
; - Internazionalizzazione;
- rendering server-side;
- utility per temi ed estensioni;
- gestione di mail e template per gestione delle mail.
Via Vulcan.js