ipld / js-dag-pb

An implementation of the DAG-PB spec for JavaScript (for use with multiformats or @ipld/block)
Other
13 stars 5 forks source link

bare export, no multiformats.codec() wrap #4

Closed rvagg closed 4 years ago

rvagg commented 4 years ago

In this variation of #3 we don't wrap in multiformats.codec() but just export { encode, decode, name, code, validate, prepare }. That can be passed as a bundle into multiformats.codec() by an upstream user, but you can also use them independently, along with the additional non-standard validate() and prepare(). The choices for imports are, as in the example.js import * as dagPB from '@ipld/dag-pb' and then use dagPB.encode() etc. as if it was already wrapped in a codec() but you also get dagPB.validate() and dagPB.prepare(). The type is pulling them out individually as in example-prepare.js import { prepare } from '@ipld/dag-pb'. Which is kind of nice.

We still need to pull in multiformats as a dependency for the CID powers internally.