UNPKG

@omnia/tooling-composers

Version:

Provide tooling to work with manifest things.

66 lines (65 loc) 3.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RequestedResourcesRegistry = 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 RequestedResourcesRegistry { } exports.RequestedResourcesRegistry = RequestedResourcesRegistry; RequestedResourcesRegistry.RequestedResources = {}; RequestedResourcesRegistry.AddSql = (option) => { if (!models_1.Guid.isValid(option.uniqueId)) { throw new Error("Can't add request for sql resource, without valid guid as unqieId: " + JSON.stringify(option)); } if (RequestedResourcesRegistry.RequestedResources[option.uniqueId.toString()] != null) { throw new Error("Can't add request for sql resource, the uniqueid has already been added." + JSON.stringify(option)); } let manifest = { manifestType: index_1.ServerManifestTypes.ResourceRequest, resourceType: index_1.RequestedResourceTypes.SqlDatabase }; let sqlResourceManifest = (0, deep_extend_1.default)(manifest, option); RequestedResourcesRegistry.RequestedResources[option.uniqueId.toString()] = sqlResourceManifest; }; RequestedResourcesRegistry.AddPersistentDisk = (option) => { if (!models_1.Guid.isValid(option.uniqueId)) { throw new Error("Can't add request for persistent disk resource, without valid guid as unqieId: " + JSON.stringify(option)); } if (RequestedResourcesRegistry.RequestedResources[option.uniqueId.toString()] != null) { throw new Error("Can't add request for persistent disk resource, the uniqueid has already been added." + JSON.stringify(option)); } let manifest = { manifestType: index_1.ServerManifestTypes.ResourceRequest, resourceType: index_1.RequestedResourceTypes.PersistentDisk }; let persistentDiskResourceManifest = (0, deep_extend_1.default)(manifest, option); RequestedResourcesRegistry.RequestedResources[option.uniqueId.toString()] = persistentDiskResourceManifest; }; RequestedResourcesRegistry.AddSqlElasticPool = (option) => { if (!models_1.Guid.isValid(option.uniqueId)) { throw new Error("Can't add request for sql elastic pool resource, without valid guid as unqieId: " + JSON.stringify(option)); } if (RequestedResourcesRegistry.RequestedResources[option.uniqueId.toString()] != null) { throw new Error("Can't add request for sql elastic pool resource, the uniqueid has already been added." + JSON.stringify(option)); } let manifest = { manifestType: index_1.ServerManifestTypes.ResourceRequest, resourceType: index_1.RequestedResourceTypes.SqlElasticPoolDatabase }; let sqlElasticPoolResourceManifest = (0, deep_extend_1.default)(manifest, option); RequestedResourcesRegistry.RequestedResources[option.uniqueId.toString()] = sqlElasticPoolResourceManifest; }; RequestedResourcesRegistry.getServerManifests = (currentServiceId) => { let serverManifests = new Array(); for (let key in RequestedResourcesRegistry.RequestedResources) { serverManifests.push(RequestedResourcesRegistry.RequestedResources[key]); } return serverManifests; }; RequestedResourcesRegistry.clearState = () => { RequestedResourcesRegistry.RequestedResources = {}; }; RequestedResourcesRegistry.ServerSubscription = ManifestRegistry_1.ManifestRegistry.registerServerManifestProvider(new ManifestRegistry_1.StaticServerManifestProviderProxy(RequestedResourcesRegistry.getServerManifests, RequestedResourcesRegistry.clearState));