UNPKG

@custom-elements-manifest/analyzer

Version:

<!-- [=> See Source <=](../../docs/analyzer/index.md) -->

46 lines (41 loc) 1.19 kB
/** * @typedef {import('oxc-resolver').NapiResolveOptions} NapiResolveOptions */ /** * Default resolution options for oxc-resolver * @type {NapiResolveOptions} */ export const DEFAULT_RESOLUTION_OPTIONS = { extensions: [".js", ".ts", ".jsx", ".tsx", ".json", ".d.ts", ""], extensionAlias: { ".js": [".ts", ".js"], ".jsx": [".tsx", ".jsx"], }, mainFiles: ["index"], mainFields: ["module", "browser", "main"], conditionNames: ["import", "require", "node"], exportsFields: ["exports"], alias: {}, symlinks: true, modules: ["node_modules"], }; /** * Merge user provided resolution options with defaults * @param {NapiResolveOptions | undefined} userOptions - User config resolution options * @returns {NapiResolveOptions} */ export function mergeResolutionOptions(userOptions) { // Priority: CLI > user config > defaults const merged = { ...DEFAULT_RESOLUTION_OPTIONS, ...(userOptions || {}), }; // Handle special merging for extensionAlias if (userOptions?.extensionAlias) { merged.extensionAlias = { ...DEFAULT_RESOLUTION_OPTIONS.extensionAlias, ...(userOptions?.extensionAlias || {}), }; } return merged; }