Módulos compartidos en extensiones web
Un módulo compartido es un mecanismo mediante el cual puede comunicarse con otras extensiones. Por ejemplo, la extensión A puede cargar un fragmento de datos asincrónicamente y ponerlo a disposición de la extensión B mediante una promesa.
En las implementaciones de JavaScript, todas las instancias de los módulos compartidos se crean mediante el método getSharedModule
que proporciona la variable gratuita turbine
.
Los módulos compartidos se incluyen en las bibliotecas de etiquetas incluso cuando nunca se les llama desde otras extensiones. Para no incrementar el tamaño de la biblioteca de manera innecesaria, debe tener cuidado con lo que expone como módulo compartido.
Los módulos compartidos no tienen componente de vista.
Al desarrollar su propia extensión de etiqueta, puede definir los módulos compartidos que desea proporcionar. Por ejemplo, puede crear un módulo que cargue un ID de usuario de forma asíncrona y que, a continuación, comparta el ID de usuario con cualquier otra extensión mediante el objeto promise:
var userIdPromise = new Promise(/* load user ID, then resolve promise */);
module.exports = userIdPromise;
En el manifiesto de extensión, debe proporcionar un nombre para este módulo compartido. Si le asigna el nombre user-id-promise
, otra extensión diferente podría acceder a este módulo compartido como se indica a continuación:
var userIdPromise = turbine.getSharedModule('user-extension', 'user-id-promise');
Los módulos compartidos pueden ser cualquier cosa que normalmente puede exportar desde un módulo CommonJS (como funciones, objetos, cadenas, números o valores booleanos).