UNPKG

beesbuild

Version:

构建工具链

97 lines (96 loc) 2.88 kB
import { consola, getBuildConfig } from "@beesbuild/utils"; import { resolveModuleExportNames } from "mlly"; import { isPlainObject, isString, omit } from "lodash-unified"; import { DEFAULT_EXTENSIONS } from "./variables.mjs"; function pathRewriter(ctx, module) { var _a; const manifest = ctx.pkg; const config = (_a = getBuildConfig({ rootDir: ctx.options.rootDir, outDir: ctx.options.outDir, rollup: ctx.options.rollup, manifest }).find((v) => v[0] === module)) == null ? void 0 : _a.at(1); return (id) => { id = id.replaceAll(`${manifest.name}/theme-chalk`, `${ctx.options.name}/theme-chalk`); id = id.replaceAll(`${manifest.name}/`, `${config == null ? void 0 : config.bundle.path}/`); return id; }; } function arrayIncludes(arr, searchElement) { return arr.some( (entry) => entry instanceof RegExp ? entry.test(searchElement) : entry === searchElement ); } function getpkg(id = "") { const s = id.split("/"); return s[0][0] === "@" ? `${s[0]}/${s[1]}` : s[0]; } function resolveAliases(ctx, flag = true) { var _a; const rollup = ctx.options.rollup; const pkg = ctx.pkg; const rollupAlias = rollup.alias; const replaceAlias = (_a = ctx.options.replace) == null ? void 0 : _a.alias; const alias = ctx.options.alias; const aliases1 = {}; const aliases = []; if (pkg.name) { aliases.push({ find: pkg.name, replacement: ctx.options.rootDir }); } function plusAlias(alias2) { if (alias2 && isPlainObject(alias2)) { for (const [find, replacement] of Object.entries(alias2)) { if (isString(replacement)) { aliases.push({ find, replacement }); if (isString(find)) aliases1[find] = replacement; } } } else if (Array.isArray(alias2)) { for (const value of alias2) { const { find, replacement } = value; if (isString(replacement)) { aliases.push(value); if (isString(find)) { aliases1[find] = replacement; } } } } } plusAlias(alias); plusAlias(replaceAlias); if (rollupAlias && isPlainObject(rollupAlias)) { plusAlias(omit(rollupAlias != null ? rollupAlias : {}, "entries", "customResolver")); plusAlias(rollupAlias.entries); } if (flag) { return aliases1; } return aliases.reverse(); } const hasDefaultExport = async (resolvedEntry) => { if (resolvedEntry) { const namedExports = await resolveModuleExportNames(resolvedEntry, { extensions: DEFAULT_EXTENSIONS }).catch((error) => { consola.warn(`Cannot analyze ${resolvedEntry} for exports:${error}`); return []; }); return namedExports.includes("default") || namedExports.length === 0; } return false; }; export { arrayIncludes, getpkg, hasDefaultExport, pathRewriter, resolveAliases };