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.
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 intomultiformats.codec()
by an upstream user, but you can also use them independently, along with the additional non-standardvalidate()
andprepare()
. The choices for imports are, as in the example.jsimport * as dagPB from '@ipld/dag-pb'
and then usedagPB.encode()
etc. as if it was already wrapped in acodec()
but you also getdagPB.validate()
anddagPB.prepare()
. The type is pulling them out individually as in example-prepare.jsimport { 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.