@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
,
valueSchema
Object
- 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(currentT, input) => T
overwrite.mapToOutput(T) => t
overwrite.isConflict(graph, nodeIds, field) => Boolean
where:
graph
is a @tangle/graph
instancenodeIds
is an Array of nodeIds you're wanting to check for conflictfield
String is the data field node.data[field]
you're checking for conflicts
overwrite.isValidMerge(graph, nodeId, field) => Boolean
where:
graph
is a @tangle/graph
instancenodeId
is the id of the proposed merge-nodefield
String is the data field node.data[field]
you're checking for merge validity
overwrite.merge(graph, nodeId, field) => T
similar to isValidMerge
, but return a transformation, T
If it cannot, an error is thrown!
Used with modules such as: