UNPKG

@omnia/tooling-composers

Version:

Provide tooling to work with manifest things.

38 lines (37 loc) 2.03 kB
"use strict"; 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));