pncat
Version:
A unified cli tool that enhances package managers catalogs feature.
39 lines (36 loc) • 2.15 kB
JavaScript
import { a as __toESM } from "./chunk-6qLfnLNH.mjs";
import "./semver-Df1PSY8l.mjs";
import { C as isCatalogWorkspace, S as isCatalogSpecifier, T as normalizeCatalogName, a as BunCatalog, b as inferCatalogName, c as require_lodash, i as PnpmCatalog, n as YarnCatalog, r as VltCatalog, t as createCatalogHandler, u as toArray, v as createDepCatalogIndex, w as isDepMatched, x as isCatalogPackageName, y as extractCatalogName } from "./catalog-handler-C1GrDpDU.mjs";
import { n as require_cjs, r as DEFAULT_CATALOG_RULES, t as Workspace } from "./workspace-manager-C0ZBpw-G.mjs";
//#region src/utils/merge.ts
var import_cjs = /* @__PURE__ */ __toESM(require_cjs(), 1);
var import_lodash = /* @__PURE__ */ __toESM(require_lodash(), 1);
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 ? [(0, import_lodash.default)(DEFAULT_CATALOG_RULES), ...rules] : [...rules];
return sources.length === 0 ? [] : sortCatalogRules(import_cjs.default.all(sources, { arrayMerge }));
}
function mergeByName(target, source) {
return source.reduce((result, item) => {
const existing = result.find((x) => x.name === item.name);
if (existing) {
existing.match = toArray(existing.match);
item.match = toArray(item.match);
Object.assign(existing, (0, import_cjs.default)(existing, item));
} else result.push(item);
return result;
}, [...target]);
}
function sortCatalogRules(rules) {
return rules.sort((a, b) => (a.priority ?? Infinity) - (b.priority ?? Infinity));
}
//#endregion
//#region src/index.ts
function defineConfig(config) {
return config;
}
//#endregion
export { BunCatalog, DEFAULT_CATALOG_RULES, PnpmCatalog, VltCatalog, Workspace, YarnCatalog, createCatalogHandler, createDepCatalogIndex, defineConfig, extractCatalogName, inferCatalogName, isCatalogPackageName, isCatalogSpecifier, isCatalogWorkspace, isDepMatched, mergeCatalogRules, normalizeCatalogName };