@omnia/tooling-vue
Version:
Used to bundle and serve manifests web component that build on Vue framework.
79 lines (78 loc) • 3.46 kB
JavaScript
;
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;