UNPKG

@omnia/tooling-vue

Version:

Used to bundle and serve manifests web component that build on Vue framework.

79 lines (78 loc) 3.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEntryKeyFromManifest = exports.getResourceIdFromEntryKey = exports.getInternalManifestReferences = exports.getExternalManifestReferences = void 0; const tslib_1 = require("tslib"); const fs_1 = tslib_1.__importDefault(require("fs")); const path_1 = tslib_1.__importDefault(require("path")); const globby_1 = require("globby"); const vite_1 = require("vite"); const envUtils = tslib_1.__importStar(require("./env")); const $ = tslib_1.__importStar(require("../../../variables")); const vendors = [ 'omniaVendor', 'omniaSharedVendor', 'omniaWorkerVendor' ]; let internalManifestReferences; const externalManifestReferences = (function () { const externalManifestRefPathPattern = (0, vite_1.normalizePath)(path_1.default.join(envUtils.getRootDirPath(), 'node_modules/@omnia/*/internal-do-not-import-from-here/manifests/*.json')); const manifestFilePaths = (0, globby_1.sync)(externalManifestRefPathPattern); if (manifestFilePaths.length == 0) { return []; } const manifestRawContents = manifestFilePaths.map(p => fs_1.default.readFileSync(p, 'utf8')); const manifestReferences = manifestRawContents.map(c => JSON.parse(c)); manifestReferences.forEach(manifest => { if (vendors.indexOf(manifest.name) > -1) { manifest.isVendor = true; return; } const [serviceId, resourceId, _] = manifest.name.replace('omniaWebpackJsonp', '').replace('[\'', '').split('\']'); manifest.serviceId = serviceId; manifest.resourceId = resourceId; manifest.isVendor = false; }); return manifestReferences; })(); function getExternalManifestReferences() { return externalManifestReferences; } exports.getExternalManifestReferences = getExternalManifestReferences; function getInternalManifestReferences() { if (!internalManifestReferences) { const buildOptions = $.composers.BuildConfigurationRegistry.getBuildOptions(); if (!buildOptions.reference) { internalManifestReferences = []; return []; } const manifestRawContents = buildOptions.reference.map(p => path_1.default.join(envUtils.getRootDirPath(), p)).map(p => fs_1.default.readFileSync(p, 'utf8')); internalManifestReferences = manifestRawContents.map(c => JSON.parse(c)); internalManifestReferences.forEach(manifest => { if (vendors.indexOf(manifest.name) > -1) { manifest.isVendor = true; return; } const [serviceId, resourceId, _] = manifest.name.replace('omniaWebpackJsonp', '').replace('[\'', '').split('\']'); manifest.serviceId = serviceId; manifest.resourceId = resourceId; manifest.isVendor = false; }); } return internalManifestReferences; } exports.getInternalManifestReferences = getInternalManifestReferences; function getResourceIdFromEntryKey(key) { let [resourceName, resourceId] = key.split('_'); if (!!resourceId) { return resourceId; } return resourceName; } exports.getResourceIdFromEntryKey = getResourceIdFromEntryKey; function getEntryKeyFromManifest(manifest) { if (!!manifest.resourceName) { return `${manifest.resourceName}_${manifest.resourceId}`; } return manifest.resourceId; } exports.getEntryKeyFromManifest = getEntryKeyFromManifest;