UNPKG

@c11/engine.runtime

Version:

A runtime for engine applications

57 lines 4.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.producers = void 0; var engine_types_1 = require("@c11/engine.types"); var engine_utils_1 = require("@c11/engine.utils"); var producers = function (list, config) { if (config === void 0) { config = {}; } var producers = {}; return { name: engine_types_1.ModuleNames.ENGINE_PRODUCERS, mount: function (context) { var producerContext = { debug: config.debug || false, emit: context.emit, }; var listType = (0, engine_utils_1.extractProducers)(list); listType.forEach(function (x) { var instance = context.addProducer(x, producerContext); instance.mount(); var sourceId = x.sourceId; if (sourceId) { var unsubscribeUpdate = context.onSourceUpdate(sourceId, function (config) { if (producers[sourceId]) { producers[sourceId].instance.unmount(); } var instance = context.addProducer(config, producerContext); producers[sourceId].instance = instance; instance.mount(); }); producers[sourceId] = { instance: instance, unsubscribeUpdate: unsubscribeUpdate, }; } else { var sourceId_1 = (0, engine_utils_1.randomId)(); producers[sourceId_1] = { instance: instance, }; } }); return Promise.resolve(); }, unmount: function () { Object.keys(producers).forEach(function (x) { producers[x].instance.unmount(); var unsubscribe = producers[x].unsubscribeUpdate; if (unsubscribe) { unsubscribe(); } }); return Promise.resolve(); }, }; }; exports.producers = producers; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Byb2R1Y2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFPMkI7QUFDM0Isa0RBQStEO0FBYXhELElBQU0sU0FBUyxHQUFHLFVBQUMsSUFBbUIsRUFBRSxNQUFtQjtJQUFuQix1QkFBQSxFQUFBLFdBQW1CO0lBQ2hFLElBQU0sU0FBUyxHQUFtQixFQUFFLENBQUM7SUFDckMsT0FBTztRQUNMLElBQUksRUFBRSwwQkFBVyxDQUFDLGdCQUFnQjtRQUNsQyxLQUFLLEVBQUUsVUFBQyxPQUFzQjtZQUM1QixJQUFNLGVBQWUsR0FBRztnQkFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksS0FBSztnQkFDNUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2FBQ25CLENBQUM7WUFDRixJQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFnQixFQUFDLElBQUksQ0FBQyxDQUFDO1lBRXhDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBQyxDQUFDO2dCQUNqQixJQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztnQkFDekQsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUVqQixJQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUM1QixJQUFJLFFBQVEsRUFBRTtvQkFDWixJQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQzlDLFFBQVEsRUFDUixVQUFDLE1BQU07d0JBQ0wsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7NEJBQ3ZCLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7eUJBQ3hDO3dCQUNELElBQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQ2xDLE1BQXdCLEVBQ3hCLGVBQWUsQ0FDaEIsQ0FBQzt3QkFDRixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzt3QkFDeEMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuQixDQUFDLENBQ0YsQ0FBQztvQkFDRixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUc7d0JBQ3BCLFFBQVEsVUFBQTt3QkFDUixpQkFBaUIsbUJBQUE7cUJBQ2xCLENBQUM7aUJBQ0g7cUJBQU07b0JBQ0wsSUFBTSxVQUFRLEdBQUcsSUFBQSx1QkFBUSxHQUFFLENBQUM7b0JBQzVCLFNBQVMsQ0FBQyxVQUFRLENBQUMsR0FBRzt3QkFDcEIsUUFBUSxVQUFBO3FCQUNULENBQUM7aUJBQ0g7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRCxPQUFPLEVBQUU7WUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLENBQUM7Z0JBQy9CLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hDLElBQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDbkQsSUFBSSxXQUFXLEVBQUU7b0JBQ2YsV0FBVyxFQUFFLENBQUM7aUJBQ2Y7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBMURXLFFBQUEsU0FBUyxhQTBEcEIifQ==