const ipld = require('ipld')
module.exports = class Transcoder {
static get prefix () {
return
}
static toBuffer (vertex) {
const edges = [...vertex.edges].map(item => {
item[1] = item[1].toBuffer()
return item
})
return ipld.marshal({value: vertex.value, edges: edges})
}
static fromBuffer (data) {
let {value, edges} = ipld.unmarshal(data)
edges = edges.map((edge) => {
if (Buffer.isBuffer(edge[1])) {
return edge
} else {
return Transcoder.fromBuffer(edge)
}
})
// to do handle externtions
return [value, new Map(edges)]
}
static hash (data) {
return ipld.multihash(data)
}
}
|