@omnia/tooling-composers
Version:
Provide tooling to work with manifest things.
38 lines (37 loc) • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServiceRoleRegistry = void 0;
const tslib_1 = require("tslib");
const index_1 = require("./models/index");
const ManifestRegistry_1 = require("./ManifestRegistry");
const deep_extend_1 = tslib_1.__importDefault(require("deep-extend"));
const models_1 = require("../../fx-models");
class ServiceRoleRegistry {
}
exports.ServiceRoleRegistry = ServiceRoleRegistry;
ServiceRoleRegistry.AddedRoleDefinitions = {};
ServiceRoleRegistry.AddRoleDefinition = (roleDefinitionId, option) => {
if (roleDefinitionId == models_1.Guid.empty) {
throw new Error("Can't add role definition with id: Guid.empty. See manifest file: " + ManifestRegistry_1.ManifestRegistry.getCurrentManifestPath());
}
if (ServiceRoleRegistry.AddedRoleDefinitions[roleDefinitionId.toString()] != null) {
throw new Error("Can't add role definition id " + roleDefinitionId + ", an role definition with the same id has already been added. See manifest file: " + ManifestRegistry_1.ManifestRegistry.getCurrentManifestPath());
}
let manifest = {
manifestType: index_1.ServerManifestTypes.ServiceRoleDefinition
};
let roleManifest = (0, deep_extend_1.default)(manifest, option);
roleManifest.uniqueId = roleDefinitionId;
ServiceRoleRegistry.AddedRoleDefinitions[roleDefinitionId.toString()] = roleManifest;
};
ServiceRoleRegistry.getServerManifests = (currentServiceId) => {
let serverManifests = new Array();
for (let key in ServiceRoleRegistry.AddedRoleDefinitions) {
serverManifests.push(ServiceRoleRegistry.AddedRoleDefinitions[key]);
}
return serverManifests;
};
ServiceRoleRegistry.clearState = () => {
ServiceRoleRegistry.AddedRoleDefinitions = {};
};
ServiceRoleRegistry.ServerSubscription = ManifestRegistry_1.ManifestRegistry.registerServerManifestProvider(new ManifestRegistry_1.StaticServerManifestProviderProxy(ServiceRoleRegistry.getServerManifests, ServiceRoleRegistry.clearState));