@tangle/overwrite
see tests for examples.
API
Overwrite(opts) => overwrite
opts Object (optional) can have properties:
identity- define the identity transformation for this strategy
- default
{}
reifiedIdentity- define with
reify(identity)resolves to - default
null,
- define with
valueSchemaObject- add a JSON-schema to validate the values which are allowed to be passed in
- default (see code, allows string / object / boolean / number)
overwrite.schema
overwrite.isValid
overwrite.identity() => I
overwrite.concat(R, S) => T
overwrite.mapFromInput(input, currentTips) => T
overwrite.mapToOutput(T) => t
overwrite.isConflict(graph, nodeIds, field) => Boolean
where:
graphis a@tangle/graphinstancenodeIdsis an Array of nodeIds you're wanting to check for conflictfieldString is the data fieldnode.data[field]you're checking for conflicts
overwrite.isValidMerge(graph, mergeNode, field) => Boolean
where:
graphis a@tangle/graphinstancemergeNodeis the proposed merge-nodefieldString is the data fieldnode.data[field]you're checking for merge validity
overwrite.merge(graph, mergeNode, field) => T
similar to isValidMerge, but return a transformation, T
If it cannot, an error is thrown!
Used with modules such as:
- @tangle/strategy
- ssb-crut