You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the new interface meant for use by itself or with multiformats and
@ipld/block. It is not used by js-ipld-format which is currently
used in IPFS. That library is here.
Usage:
import{encode,decode}from'@ipld/dag-cbor'import{CID}from'multiformats'constobj={x: 1,/* CID instances are encoded as links */y: [2,3,CID.parse('QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4')],z: {a: CID.parse('QmaozNR7DZHQK1ZcU9p7QdrshMvXqWK6gpu5rmrkPdT3L4'),b: null,c: 'string'}}letdata=encode(obj)letdecoded=decode(data)decoded.y[0]// 2CID.asCID(decoded.z.a)// cid instance// encode/decode options are exported for use with cborg's encodedLength and decodeFirstimport{encodeOptions,decodeOptions}from'@ipld/dag-cbor'import{encodedLength}from'cborg/length'import{decodeFirst}from'cborg'// dag-cbor encoded length of obj in bytesconstbyteLength=encodedLength(obj,encodeOptions)byteLength// 104// concatenate two dag-cbor encoded objconstconcatenatedData=newUint8Array(data.length*2)concatenatedData.set(data)concatenatedData.set(data,data.length)// returns dag-cbor decoded obj at the beginning of the buffer as well as the remaining bytesconst[first,remainder]=decodeFirst(concatenatedData,decodeOptions)assert.deepStrictEqual(first,obj)assert.deepStrictEqual(remainder,data)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.