UNPKG

pncat

Version:

Enhanced pnpm catalogs management with advanced workspace dependency control.

28 lines (24 loc) 988 B
import { D as DEFAULT_CATALOG_RULES } from './shared/pncat.ZjPjRMjV.mjs'; import deepmerge from 'deepmerge'; function mergeCatalogRules(...args) { const hasOptions = typeof args[0] === "object" && !Array.isArray(args[0]); const options = hasOptions ? args[0] : { mergeDefaults: true }; const rules = hasOptions ? args.slice(1) : args; const { mergeDefaults = true, arrayMerge = mergeByName } = options; const sources = mergeDefaults ? [DEFAULT_CATALOG_RULES, ...rules] : [...rules]; return sources.length === 0 ? [] : deepmerge.all(sources, { arrayMerge }); } function mergeByName(target, source) { return source.reduce((result, item) => { const existing = result.find((x) => x.name === item.name); if (existing) Object.assign(existing, deepmerge(existing, item)); else result.push(item); return result; }, [...target]); } function defineConfig(config) { return config; } export { DEFAULT_CATALOG_RULES, defineConfig, mergeCatalogRules };