@c11/engine.runtime
Version:
A runtime for engine applications
57 lines • 4.4 kB
JavaScript
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==
;