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