UNPKG

kubricate

Version:

A TypeScript framework for building reusable, type-safe Kubernetes infrastructure — without the YAML mess.

36 lines 1.13 kB
/** * Creates a reusable handler to merge multiple Raw Secret effects. * Will group by Secret `storeName` and merge `.data`. * Throws error if duplicate keys are found within the same store. */ export function createMergeHandler() { return function mergeKubeSecrets(effects) { const grouped = {}; for (const effect of effects) { if (effect.type !== 'custom') continue; const name = effect.value.storeName; const key = name; if (!grouped[key]) { grouped[key] = { ...effect, value: { ...effect.value, rawData: { ...effect.value.rawData } } }; continue; } const existing = grouped[key]; for (const [key, value] of Object.entries(effect.value.rawData ?? {})) { if (existing.value.rawData?.[key]) { throw new Error(`[conflict:in-memory] Conflict detected: key "${key}" already exists in Secret "${name}"`); } existing.value.rawData[key] = value; } } return Object.values(grouped); }; } //# sourceMappingURL=merge-utils.js.map