zephyr-xpack-internal
Version:
Xpack internals for Zephyr
30 lines (29 loc) • 1.54 kB
JavaScript
import "node:module";
function extractBaseHrefFromPluginOptions(options) {
return options?.baseHref;
}
function extractBaseHrefFromHtmlPlugin(plugins) {
const htmlPlugin = plugins.find((plugin)=>plugin?.constructor?.name === 'HtmlWebpackPlugin' || plugin?.constructor?.name === 'HtmlRspackPlugin');
if (!htmlPlugin || !htmlPlugin.options) return;
const { base } = htmlPlugin.options;
if ('string' == typeof base) return base;
if ('object' == typeof base && base?.href) return base.href;
}
function extractBaseHrefFromPublicPath(compiler) {
const publicPath = compiler.options.output?.publicPath;
if ('auto' === publicPath || void 0 === publicPath) return;
if ('string' == typeof publicPath) return publicPath;
if ('function' == typeof publicPath) return void console.warn('Warning: publicPath is a function, cannot extract baseHref automatically.');
}
function detectAndStoreBaseHref(zephyr_engine, compiler, pluginOptions) {
const baseHref = detectBaseHref(compiler, pluginOptions);
if (void 0 !== baseHref) zephyr_engine.buildProperties.baseHref = baseHref;
}
function detectBaseHref(compiler, pluginOptions) {
let baseHref = extractBaseHrefFromPluginOptions(pluginOptions);
if (!baseHref && compiler.options?.plugins) baseHref = extractBaseHrefFromHtmlPlugin(compiler.options.plugins);
if (!baseHref) baseHref = extractBaseHrefFromPublicPath(compiler);
return baseHref;
}
export { detectAndStoreBaseHref, detectBaseHref };
//# sourceMappingURL=basehref-integration.mjs.map