UNPKG

@baseplate-dev/sync

Version:

Library for syncing Baseplate descriptions

28 lines 948 B
import jsonPatch from 'fast-json-patch'; /** * Merges JSON strings using a 3-way merge algorithm */ export const jsonMergeAlgorithm = (input) => { try { const originalJson = JSON.parse(input.previousGeneratedText); const newJson = JSON.parse(input.currentGeneratedText); const existingJson = JSON.parse(input.previousWorkingText); const diff = jsonPatch.compare(originalJson, newJson, true); if (diff.length === 0) { return { mergedText: input.previousWorkingText, hasConflict: false, }; } const result = JSON.stringify(jsonPatch.applyPatch(existingJson, diff, true, false).newDocument, null, 2); return { mergedText: result, hasConflict: false, }; } catch { // default to merge strings method if patching fails return null; } }; //# sourceMappingURL=json.js.map