@omnia/tooling-composers
Version:
Provide tooling to work with manifest things.
55 lines (54 loc) • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BlockingRegistry = void 0;
const ManifestRegistry_1 = require("./ManifestRegistry");
const Utils_1 = require("./Utils");
//import { BlockedBundleManifest, ClientManifest } from "./models";
const Enums_1 = require("./models/Enums");
class BlockInformation {
constructor(blockedManifest, manifestPath) {
this.blockedManifest = blockedManifest;
this.manifestPath = manifestPath;
}
}
//export interface IBlockedComponent extends IClientManifest {
// /** The name of the components element*/
// elementName: string;
// omniaServiceId: string;
//}
class BlockingRegistry {
}
exports.BlockingRegistry = BlockingRegistry;
BlockingRegistry.BlockedManifests = [];
BlockingRegistry.addBlockedManifest = (omniaServiceId, manifestId) => {
omniaServiceId = Utils_1.Utils.ensureValidServiceId(omniaServiceId);
manifestId = Utils_1.Utils.ensureValidManifestId(manifestId);
BlockingRegistry.BlockedManifests.push(new BlockInformation({
omniaServiceId: omniaServiceId,
resourceId: manifestId,
manifestType: Enums_1.ClientManifestTypes.BlockedManifest
}, ManifestRegistry_1.ManifestRegistry.getCurrentManifestPath()));
};
//public static addBlockedElementName = (omniaServiceId: string, elementName: string) => {
// omniaServiceId = Utils.ensureValidOmniaServiceId(omniaServiceId);
// elementName = Utils.ensureValidElementName(elementName);
// BlockingRegistry.BlockedManifests.push({
// omniaServiceId: omniaServiceId,
// resourceId: manifestId,
// manifestType: ManifestType.BlockedManifest
// });
//}
BlockingRegistry.getClientManifests = (currentServiceId) => {
let result = [];
for (let b of BlockingRegistry.BlockedManifests) {
if (b.blockedManifest.omniaServiceId === currentServiceId) {
throw new Error("It's not allowed to block manifests in the current omnia service (only external), see manifest file:" + b.manifestPath);
}
result.push(b.blockedManifest);
}
return result;
};
BlockingRegistry.clearState = () => {
BlockingRegistry.BlockedManifests = [];
};
BlockingRegistry.Subscription = ManifestRegistry_1.ManifestRegistry.registerClientManifestProvider(new ManifestRegistry_1.StaticClientManifestProviderProxy(BlockingRegistry.getClientManifests, BlockingRegistry.clearState));