@modern-js/module-tools
Version:
Simple, powerful, high-performance modern npm package development solution.
189 lines (188 loc) • 12.5 kB
JavaScript
"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var merge_exports = {};
__export(merge_exports, {
isLegacyUserConfig: () => isLegacyUserConfig,
mergeDefaultBaseConfig: () => mergeDefaultBaseConfig
});
module.exports = __toCommonJS(merge_exports);
var import_utils = require("@modern-js/utils");
var import_build = require("../constants/build");
var import_utils2 = require("../utils");
const mergeDefaultBaseConfig = async (pConfig, options) => {
var _pConfig_resolve, _pConfig_resolve1, _pConfig_resolve2, _pConfig_resolve3, _pConfig_style, _pConfig_style1, _pConfig_style2, _pConfig_style3;
const defaultConfig = (0, import_build.getDefaultBuildConfig)();
const { context, buildCmdOptions } = options;
const { applyOptionsChain, ensureAbsolutePath, slash } = await Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
const { getDefaultIndexEntry, getStyleConfig } = await Promise.resolve().then(() => __toESM(require("../utils")));
const defaultAlias = {
"@": context.srcDirectory
};
const mergedAlias = applyOptionsChain(defaultAlias, pConfig.alias);
const mergedResolveAlias = applyOptionsChain({}, (_pConfig_resolve = pConfig.resolve) === null || _pConfig_resolve === void 0 ? void 0 : _pConfig_resolve.alias);
const alias = Object.keys(mergedAlias).reduce((prev, name) => {
const formattedValue = (value2) => {
if (typeof value2 === "string" && value2.startsWith(".")) {
return slash(ensureAbsolutePath(context.appDirectory, value2));
}
return value2;
};
const value = formattedValue(mergedAlias[name]);
prev[name] = value;
return prev;
}, {});
const styleConfig = await getStyleConfig(pConfig);
var _pConfig_buildType;
const buildType = (_pConfig_buildType = pConfig.buildType) !== null && _pConfig_buildType !== void 0 ? _pConfig_buildType : defaultConfig.buildType;
var _pConfig_sourceDir;
const sourceDir = (_pConfig_sourceDir = pConfig.sourceDir) !== null && _pConfig_sourceDir !== void 0 ? _pConfig_sourceDir : defaultConfig.sourceDir;
var _pConfig_metafile;
const metafile = (_pConfig_metafile = pConfig.metafile) !== null && _pConfig_metafile !== void 0 ? _pConfig_metafile : defaultConfig.metafile;
const asset = {
...defaultConfig.asset,
...pConfig.asset
};
const defaultIndexEntry = buildType === "bundle" ? await getDefaultIndexEntry(context) : [
sourceDir
];
var _pConfig_input;
const input = await (0, import_utils2.normalizeInput)((_pConfig_input = pConfig.input) !== null && _pConfig_input !== void 0 ? _pConfig_input : defaultIndexEntry, context.appDirectory, Boolean(asset === null || asset === void 0 ? void 0 : asset.svgr));
var _pConfig_define;
const userDefine = (_pConfig_define = pConfig.define) !== null && _pConfig_define !== void 0 ? _pConfig_define : {};
const define = {
...defaultConfig.define,
...Object.keys(userDefine).reduce((memo, name) => {
memo[name] = JSON.stringify(userDefine[name]);
return memo;
}, {})
};
const { dts: cmdDts, tsconfig: cmdTsconfigPath } = buildCmdOptions;
const noDts = cmdDts === false || pConfig.dts === false;
const dts = noDts ? false : {
...defaultConfig.dts,
...pConfig.dts
};
var _ref;
const tsconfig = (_ref = cmdTsconfigPath !== null && cmdTsconfigPath !== void 0 ? cmdTsconfigPath : pConfig.tsconfig) !== null && _ref !== void 0 ? _ref : defaultConfig.tsconfig;
var _pConfig_externals;
let externals = (_pConfig_externals = pConfig.externals) !== null && _pConfig_externals !== void 0 ? _pConfig_externals : defaultConfig.externals;
var _pConfig_autoExternal;
const autoExternal = (_pConfig_autoExternal = pConfig.autoExternal) !== null && _pConfig_autoExternal !== void 0 ? _pConfig_autoExternal : defaultConfig.autoExternal;
if (autoExternal) {
const deps = await (0, import_utils2.getAllDeps)(context.appDirectory, (0, import_utils.isObject)(autoExternal) ? autoExternal : {
dependencies: true,
peerDependencies: true
});
externals = [
...deps.map((dep) => new RegExp(`^${dep}($|\\/|\\\\)`)),
...externals || []
];
}
var _pConfig_platform;
const platform = (_pConfig_platform = pConfig.platform) !== null && _pConfig_platform !== void 0 ? _pConfig_platform : defaultConfig.platform;
const defaultMainFields = platform === "node" ? [
"module",
"main"
] : [
"module",
"browser",
"main"
];
var _pConfig_resolve_mainFields, _pConfig_resolve_jsExtensions, _pConfig_resolve_tsConfig;
const resolve = {
mainFields: (_pConfig_resolve_mainFields = (_pConfig_resolve1 = pConfig.resolve) === null || _pConfig_resolve1 === void 0 ? void 0 : _pConfig_resolve1.mainFields) !== null && _pConfig_resolve_mainFields !== void 0 ? _pConfig_resolve_mainFields : defaultMainFields,
jsExtensions: (_pConfig_resolve_jsExtensions = (_pConfig_resolve2 = pConfig.resolve) === null || _pConfig_resolve2 === void 0 ? void 0 : _pConfig_resolve2.jsExtensions) !== null && _pConfig_resolve_jsExtensions !== void 0 ? _pConfig_resolve_jsExtensions : defaultConfig.resolve.jsExtensions,
alias: mergedResolveAlias,
tsConfig: (_pConfig_resolve_tsConfig = (_pConfig_resolve3 = pConfig.resolve) === null || _pConfig_resolve3 === void 0 ? void 0 : _pConfig_resolve3.tsConfig) !== null && _pConfig_resolve_tsConfig !== void 0 ? _pConfig_resolve_tsConfig : tsconfig ? {
configFile: tsconfig
} : defaultConfig.resolve.tsConfig
};
var _pConfig_esbuildOptions;
const esbuildOptions = (_pConfig_esbuildOptions = pConfig.esbuildOptions) !== null && _pConfig_esbuildOptions !== void 0 ? _pConfig_esbuildOptions : defaultConfig.esbuildOptions;
var _pConfig_loader, _pConfig_shims, _pConfig_autoExtension, _pConfig_footer, _pConfig_banner, _pConfig_hooks, _pConfig_format, _pConfig_target, _pConfig_sourceMap, _pConfig_copy, _pConfig_outDir, _pConfig_jsx, _pConfig_splitting, _pConfig_minify, _pConfig_umdModuleName, _pConfig_sideEffects, _pConfig_style_inject, _pConfig_style_modules, _pConfig_style_autoModules, _pConfig_style_tailwindcss, _pConfig_externalHelpers, _pConfig_transformCache, _pConfig_transformImport, _pConfig_transformLodash, _pConfig_sourceType, _pConfig_disableSwcTransform;
return {
loader: (_pConfig_loader = pConfig.loader) !== null && _pConfig_loader !== void 0 ? _pConfig_loader : defaultConfig.loader,
shims: (_pConfig_shims = pConfig.shims) !== null && _pConfig_shims !== void 0 ? _pConfig_shims : defaultConfig.shims,
autoExtension: (_pConfig_autoExtension = pConfig.autoExtension) !== null && _pConfig_autoExtension !== void 0 ? _pConfig_autoExtension : defaultConfig.autoExtension,
footer: (_pConfig_footer = pConfig.footer) !== null && _pConfig_footer !== void 0 ? _pConfig_footer : defaultConfig.footer,
banner: (_pConfig_banner = pConfig.banner) !== null && _pConfig_banner !== void 0 ? _pConfig_banner : defaultConfig.banner,
resolve,
tsconfig,
hooks: (_pConfig_hooks = pConfig.hooks) !== null && _pConfig_hooks !== void 0 ? _pConfig_hooks : defaultConfig.hooks,
asset,
buildType,
format: (_pConfig_format = pConfig.format) !== null && _pConfig_format !== void 0 ? _pConfig_format : defaultConfig.format,
target: (_pConfig_target = pConfig.target) !== null && _pConfig_target !== void 0 ? _pConfig_target : defaultConfig.target,
sourceMap: (_pConfig_sourceMap = pConfig.sourceMap) !== null && _pConfig_sourceMap !== void 0 ? _pConfig_sourceMap : defaultConfig.sourceMap,
copy: (_pConfig_copy = pConfig.copy) !== null && _pConfig_copy !== void 0 ? _pConfig_copy : defaultConfig.copy,
outDir: (_pConfig_outDir = pConfig.outDir) !== null && _pConfig_outDir !== void 0 ? _pConfig_outDir : defaultConfig.outDir,
dts,
jsx: (_pConfig_jsx = pConfig.jsx) !== null && _pConfig_jsx !== void 0 ? _pConfig_jsx : defaultConfig.jsx,
input,
platform,
splitting: (_pConfig_splitting = pConfig.splitting) !== null && _pConfig_splitting !== void 0 ? _pConfig_splitting : defaultConfig.splitting,
minify: (_pConfig_minify = pConfig.minify) !== null && _pConfig_minify !== void 0 ? _pConfig_minify : defaultConfig.minify,
autoExternal,
umdGlobals: {
...defaultConfig.umdGlobals,
...pConfig.umdGlobals
},
umdModuleName: (_pConfig_umdModuleName = pConfig.umdModuleName) !== null && _pConfig_umdModuleName !== void 0 ? _pConfig_umdModuleName : defaultConfig.umdModuleName,
sideEffects: (_pConfig_sideEffects = pConfig.sideEffects) !== null && _pConfig_sideEffects !== void 0 ? _pConfig_sideEffects : defaultConfig.sideEffects,
externals,
sourceDir,
alias,
define,
metafile,
style: {
...styleConfig,
inject: (_pConfig_style_inject = (_pConfig_style = pConfig.style) === null || _pConfig_style === void 0 ? void 0 : _pConfig_style.inject) !== null && _pConfig_style_inject !== void 0 ? _pConfig_style_inject : defaultConfig.style.inject,
modules: (_pConfig_style_modules = (_pConfig_style1 = pConfig.style) === null || _pConfig_style1 === void 0 ? void 0 : _pConfig_style1.modules) !== null && _pConfig_style_modules !== void 0 ? _pConfig_style_modules : defaultConfig.style.modules,
autoModules: (_pConfig_style_autoModules = (_pConfig_style2 = pConfig.style) === null || _pConfig_style2 === void 0 ? void 0 : _pConfig_style2.autoModules) !== null && _pConfig_style_autoModules !== void 0 ? _pConfig_style_autoModules : defaultConfig.style.autoModules,
tailwindcss: (_pConfig_style_tailwindcss = (_pConfig_style3 = pConfig.style) === null || _pConfig_style3 === void 0 ? void 0 : _pConfig_style3.tailwindcss) !== null && _pConfig_style_tailwindcss !== void 0 ? _pConfig_style_tailwindcss : defaultConfig.style.tailwindcss
},
redirect: {
...defaultConfig.redirect,
...pConfig.redirect
},
esbuildOptions,
externalHelpers: (_pConfig_externalHelpers = pConfig.externalHelpers) !== null && _pConfig_externalHelpers !== void 0 ? _pConfig_externalHelpers : defaultConfig.externalHelpers,
transformCache: (_pConfig_transformCache = pConfig.transformCache) !== null && _pConfig_transformCache !== void 0 ? _pConfig_transformCache : defaultConfig.transformCache,
transformImport: (_pConfig_transformImport = pConfig.transformImport) !== null && _pConfig_transformImport !== void 0 ? _pConfig_transformImport : defaultConfig.transformImport,
transformLodash: (_pConfig_transformLodash = pConfig.transformLodash) !== null && _pConfig_transformLodash !== void 0 ? _pConfig_transformLodash : defaultConfig.transformLodash,
sourceType: (_pConfig_sourceType = pConfig.sourceType) !== null && _pConfig_sourceType !== void 0 ? _pConfig_sourceType : defaultConfig.sourceType,
disableSwcTransform: (_pConfig_disableSwcTransform = pConfig.disableSwcTransform) !== null && _pConfig_disableSwcTransform !== void 0 ? _pConfig_disableSwcTransform : defaultConfig.disableSwcTransform
};
};
const isLegacyUserConfig = (config) => Boolean(config.legacy);
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
isLegacyUserConfig,
mergeDefaultBaseConfig
});