zephyr-xpack-internal
Version:
Xpack internals for Zephyr
157 lines (156 loc) • 6.49 kB
JavaScript
;
var __webpack_require__ = {};
(()=>{
__webpack_require__.d = (exports1, getters, values)=>{
var define = (defs, kind)=>{
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
enumerable: true,
[kind]: defs[key]
});
};
define(getters, "get");
define(values, "value");
};
})();
(()=>{
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
})();
(()=>{
__webpack_require__.r = (exports1)=>{
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
value: 'Module'
});
Object.defineProperty(exports1, '__esModule', {
value: true
});
};
})();
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
__webpack_require__.d(__webpack_exports__, {
getBuildStats: ()=>getBuildStats,
getModuleFederationBuildMetadata: ()=>getModuleFederationBuildMetadata,
getModuleFederationConfigs: ()=>getModuleFederationConfigs
});
const external_zephyr_agent_namespaceObject = require("zephyr-agent");
const extract_federation_config_js_namespaceObject = require("../xpack-extract/extract-federation-config.js");
const federation_config_metadata_js_namespaceObject = require("../xpack-extract/federation-config-metadata.js");
const FederationDashboardPlugin_js_namespaceObject = require("./utils/federation-dashboard-plugin/FederationDashboardPlugin.js");
function getFederationConfigEntries(mfConfig) {
const plugins = mfConfig ? Array.isArray(mfConfig) ? mfConfig : [
mfConfig
] : [];
return plugins.flatMap((plugin)=>{
const config = (0, extract_federation_config_js_namespaceObject.extractFederatedConfig)(plugin);
return config ? [
{
plugin,
config
}
] : [];
});
}
function getModuleFederationConfigs(mfConfig) {
return (0, federation_config_metadata_js_namespaceObject.mergeModuleFederationConfigs)([
getFederationConfigEntries(mfConfig).map(({ config })=>JSON.parse(JSON.stringify(config)))
]);
}
function getModuleFederationBuildMetadata(mfConfig) {
return (0, federation_config_metadata_js_namespaceObject.mergeModuleFederationBuildMetadata)([
getFederationConfigEntries(mfConfig).map(({ plugin, config })=>{
const emitsManifest = void 0 !== config.manifest || 'name' in plugin && 'string' == typeof plugin.name;
return {
name: config.name,
remote: config.filename,
mf_manifest: emitsManifest ? (0, external_zephyr_agent_namespaceObject.resolveMfManifestPath)(config.manifest) : void 0,
library_type: config.library?.type ?? 'var',
exposes: config.exposes,
shared: config.shared
};
})
]);
}
async function getBuildStats({ stats, stats_json, pluginOptions, EDGE_URL, DOMAIN, PLATFORM, TYPE, DELIMITER: delimiter }) {
external_zephyr_agent_namespaceObject.ze_log.app('get build stats started. create federation dashboard plugin');
const ze_engine = pluginOptions.zephyr_engine;
const app = ze_engine.applicationProperties;
const { git } = ze_engine.gitProperties;
const context = ze_engine.env;
const version = await ze_engine.snapshotId;
const application_uid = ze_engine.application_uid;
const buildId = await ze_engine.build_id;
const build_target = ze_engine.env.target ?? 'web';
const federation = getModuleFederationBuildMetadata(pluginOptions.mfConfig);
const legacyFederation = 1 === federation.length ? federation[0] : void 0;
const legacyFederationFields = legacyFederation ?? {
name: app.name,
remote: void 0,
mf_manifest: void 0,
library_type: void 0,
exposes: void 0,
shared: void 0
};
const remotes = ze_engine.federated_dependencies;
const data_overrides = {
id: application_uid,
...legacyFederationFields,
federation,
edge: {
url: EDGE_URL,
delimiter
},
domain: DOMAIN,
platform: PLATFORM,
type: TYPE ?? 'app',
app: Object.assign({}, app, {
buildId
}),
version,
git,
remotes: remotes?.map(({ application_uid })=>application_uid) ?? [],
context,
build_target,
zephyrDependencies: ze_engine.zephyr_dependencies
};
if ('tap-app' === build_target) {
const baseline = await (0, external_zephyr_agent_namespaceObject.zeBuildDashData)(ze_engine);
const tapBuildStats = {
...baseline,
...data_overrides,
project: legacyFederation?.name ?? app.name,
tags: baseline.tags ?? []
};
external_zephyr_agent_namespaceObject.ze_log.app('get tap-app build stats done.', tapBuildStats);
return tapBuildStats;
}
const dashboardPlugin = new FederationDashboardPlugin_js_namespaceObject.FederationDashboardPlugin({
app,
git,
context
});
external_zephyr_agent_namespaceObject.ze_log.app('process webpack graph.pluginOptions', pluginOptions);
const convertedGraph = dashboardPlugin.processWebpackGraph({
stats,
stats_json,
pluginOptions
});
if (!convertedGraph) throw new external_zephyr_agent_namespaceObject.ZephyrError(external_zephyr_agent_namespaceObject.ZeErrors.ERR_CONVERT_GRAPH_TO_DASHBOARD);
const res = Object.assign({}, convertedGraph, data_overrides, {
project: legacyFederation?.name ?? app.name,
tags: []
});
external_zephyr_agent_namespaceObject.ze_log.app('get build stats done.', res);
return res;
}
exports.getBuildStats = __webpack_exports__.getBuildStats;
exports.getModuleFederationBuildMetadata = __webpack_exports__.getModuleFederationBuildMetadata;
exports.getModuleFederationConfigs = __webpack_exports__.getModuleFederationConfigs;
for(var __rspack_i in __webpack_exports__)if (-1 === [
"getBuildStats",
"getModuleFederationBuildMetadata",
"getModuleFederationConfigs"
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
Object.defineProperty(exports, '__esModule', {
value: true
});
//# sourceMappingURL=get-build-stats.js.map