@omnia/tooling-composers
Version:
Provide tooling to work with manifest things.
38 lines (37 loc) • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServiceManifestRegistry = void 0;
const index_1 = require("./models/index");
const ManifestRegistry_1 = require("./ManifestRegistry");
class ServiceManifestRegistry {
}
exports.ServiceManifestRegistry = ServiceManifestRegistry;
ServiceManifestRegistry.Service = null;
ServiceManifestRegistry.AddService = (service) => {
if (!(service.serviceType === index_1.ServiceTypes.WebApp ||
service.serviceType === index_1.ServiceTypes.Worker ||
service.serviceType === index_1.ServiceTypes.Custom)) {
throw new Error("Unknown service type: " + JSON.stringify(service));
}
if (ServiceManifestRegistry.Service) {
throw new Error("Can't add more than one service in a project, service: " + JSON.stringify(ServiceManifestRegistry.Service) + " already added.");
}
ServiceManifestRegistry.Service = service;
};
ServiceManifestRegistry.getServiceInfo = () => {
return ServiceManifestRegistry.Service;
};
ServiceManifestRegistry.getServerManifests = (currentServiceId) => {
let serverManifests = new Array();
if (ServiceManifestRegistry.Service != null) {
let serviceManifest = Object.assign({
manifestType: index_1.ServerManifestTypes.Service
}, ServiceManifestRegistry.Service);
serverManifests.push(serviceManifest);
}
return serverManifests;
};
ServiceManifestRegistry.clearState = () => {
ServiceManifestRegistry.Service = null;
};
ServiceManifestRegistry.ServerSubscription = ManifestRegistry_1.ManifestRegistry.registerServerManifestProvider(new ManifestRegistry_1.StaticServerManifestProviderProxy(ServiceManifestRegistry.getServerManifests, ServiceManifestRegistry.clearState));