UNPKG

@omnia/tooling-composers

Version:

Provide tooling to work with manifest things.

55 lines (54 loc) 2.42 kB
"use strict"; 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));