UNPKG

@omnia/tooling-composers

Version:

Provide tooling to work with manifest things.

87 lines (86 loc) 3.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigurationClientServiceRegistry = exports.OmniaFxConfigurator = void 0; const ManifestRegistry_1 = require("./ManifestRegistry"); const models_1 = require("../../fx-models"); class OmniaFxConfigurator { constructor(composerForDone) { this.composerForDone = composerForDone; this.configuration = {}; this.done = () => { //console.log('this.composerForDone', this.composerForDone) return this.composerForDone; }; this.build = () => { return this.configuration; }; this.addSettingsService = () => { this.configuration.enableSettingsService = true; return this; }; this.addTheming = () => { this.configuration.enableTheming = true; return this; }; this.addAppRoute = () => { this.configuration.enableAppRoute = true; return this; }; this.addMultilingual = () => { this.configuration.enableMultilingual = true; return this; }; this.addWorker = () => { this.configuration.enableWorker = true; return this; }; this.default = () => { this.addSettingsService(); this.addAppRoute(); this.addTheming(); this.addMultilingual(); this.addWorker(); return { done: this.done }; }; } } exports.OmniaFxConfigurator = OmniaFxConfigurator; class ConfigurationClientServiceRegistry { static Add(omniaServiceId, configurationType, constructorArgs) { let creator = function construct(constructor, args) { function F() { return new constructor(...args); //constructor.apply(this, args); } F.prototype = constructor.prototype; return new F(); }; let serviceId = omniaServiceId.toString().toLowerCase(); if (ConfigurationClientServiceRegistry.configurations[serviceId]) { throw new Error(`Can't register more once time configuration service with id: ${omniaServiceId}`); } ConfigurationClientServiceRegistry.configurations[serviceId] = creator(configurationType, constructorArgs); return ConfigurationClientServiceRegistry.configurations[serviceId]; } static getConfigurations() { return ConfigurationClientServiceRegistry.configurations; } } exports.ConfigurationClientServiceRegistry = ConfigurationClientServiceRegistry; ConfigurationClientServiceRegistry.configurations = {}; ConfigurationClientServiceRegistry.getClientManifests = (currentServiceId) => { let result = new Array(); let configuration = ConfigurationClientServiceRegistry.configurations[currentServiceId.toLowerCase()]; if (configuration) { result.push(Object.assign({}, configuration.build(), { manifestType: models_1.ClientManifestTypes.Configuration })); } return result; }; ConfigurationClientServiceRegistry.clearState = () => { ConfigurationClientServiceRegistry.configurations = {}; }; ConfigurationClientServiceRegistry.Subscription = ManifestRegistry_1.ManifestRegistry.registerClientManifestProvider(new ManifestRegistry_1.StaticClientManifestProviderProxy(ConfigurationClientServiceRegistry.getClientManifests, ConfigurationClientServiceRegistry.clearState));