@tangle/strategy
Advanced tools
Comparing version 4.0.0 to 4.1.0
16
merge.js
@@ -27,2 +27,5 @@ module.exports = { | ||
isValidMerge.error = null | ||
isValidMerge.errors = [] | ||
isValidMerge.fields = [] | ||
// graph = a graph containing nodeIds, transforms, previous, and history | ||
@@ -33,7 +36,14 @@ // tipId = the merge node | ||
const result = strategy.isValidMerge(graph, mergeNode, field) | ||
if (!result) errors.push(strategy.isValidMerge.error || new Error(field)) | ||
return result | ||
if (!result) { | ||
errors.push({ | ||
field, | ||
detail: strategy.isValidMerge.error || new Error(`merge error on ${field}`) | ||
}) | ||
} | ||
}) | ||
if (errors.length > 0) { | ||
isValidMerge.error = new Error(errors.map(err => err.message).join('\n')) | ||
const fields = errors.map(e => e.field) | ||
isValidMerge.error = new Error(`Merge conflict on fields [${fields}]`) | ||
isValidMerge.errors = errors.map(e => e.detail) | ||
isValidMerge.fields = fields | ||
} | ||
@@ -40,0 +50,0 @@ return errors.length === 0 |
{ | ||
"name": "@tangle/strategy", | ||
"version": "4.0.0", | ||
"version": "4.1.0", | ||
"description": "a toolkit for composing tangle reducing strategies", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -142,3 +142,6 @@ # @tangle/strategy | ||
- `mergeNode` is the proposed merge-node | ||
- If isValidMerge is false, `isValidMerge.error` shows the fields that are conflicting | ||
- If isValidMerge is false, you will can find more info under: | ||
- `isValidMerge.error` - a summary of the fields with errors | ||
- `isValidMerge.errors` - an Array of more detailed errors for each field | ||
- `isValidMerge.fields` - an Array field names which had conflicts | ||
@@ -145,0 +148,0 @@ ### `strategy.merge(graph, mergeNode) => T` |
@@ -26,2 +26,5 @@ const test = require('tape') | ||
t.equal(strategy.isValidMerge(mergeNodeGraph, mergeNode), false, 'merge that does not resolve conflict is invalid') | ||
t.match(strategy.isValidMerge.error.message, /Merge conflict.*title/) | ||
t.match(strategy.isValidMerge.errors[0].message, /title/) | ||
t.deepEqual(strategy.isValidMerge.fields, ['title']) | ||
@@ -31,4 +34,7 @@ mergeNode.data.title = { set: 'mouse' } | ||
t.equal(strategy.isValidMerge(mergeNodeGraph, mergeNode), true, 'nonidentity merge node') | ||
t.deepEqual(strategy.isValidMerge.error, null) | ||
t.deepEqual(strategy.isValidMerge.errors, []) | ||
t.deepEqual(strategy.isValidMerge.fields, []) | ||
t.end() | ||
}) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
25216
595
177