@omnia/tooling-composers
Version:
Provide tooling to work with manifest things.
87 lines (86 loc) • 3.53 kB
JavaScript
;
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));