Moduli condivisi nelle estensioni web
Un modulo condiviso è un meccanismo mediante il quale è possibile comunicare con altre estensioni. Ad esempio, l’estensione A può caricare una parte di dati in modo asincrono e renderla disponibile all’estensione B tramite una promise, o promessa.
Nelle implementazioni JavaScript, tutte le istanze dei moduli condivisi vengono create utilizzando il metodo getSharedModule
fornito dalla variabile libera turbine
.
I moduli condivisi sono inclusi nelle librerie di tag anche quando non vengono mai chiamati dall’interno di altre estensioni. Per non aumentare inutilmente la dimensione della libreria, occorre prestare attenzione a ciò che viene esposto come modulo condiviso.
I moduli condivisi non hanno un componente vista.
Quando sviluppi un’estensione tag, puoi definire tutti i moduli condivisi che intendi fornire. Ad esempio, puoi creare un modulo che carica un ID utente in modo asincrono e quindi lo condivide con qualsiasi altra estensione tramite una promise, o promessa:
var userIdPromise = new Promise(/* load user ID, then resolve promise */);
module.exports = userIdPromise;
Nel manifesto dell'estensione, devi fornire un nome per questo modulo condiviso. Se gli si assegna il nome user-id-promise
, un’altra estensione potrebbe quindi accedere al modulo condiviso nel modo seguente:
var userIdPromise = turbine.getSharedModule('user-extension', 'user-id-promise');
È possibile usare come modulo condiviso qualsiasi elemento possa essere esportato da un modulo CommonJS (come funzioni, oggetti, stringhe, valori numerici o booleani).