Files
archy/apps/did-wallet/node_modules/ipfs-unixfs-exporter/src/resolvers/index.ts
T

31 lines
977 B
TypeScript
Raw Normal View History

import * as dagCbor from '@ipld/dag-cbor'
import * as dagPb from '@ipld/dag-pb'
import errCode from 'err-code'
import * as raw from 'multiformats/codecs/raw'
import { identity } from 'multiformats/hashes/identity'
import dagCborResolver from './dag-cbor.js'
import identifyResolver from './identity.js'
import rawResolver from './raw.js'
import dagPbResolver from './unixfs-v1/index.js'
import type { Resolve, Resolver } from '../index.js'
const resolvers: Record<number, Resolver> = {
[dagPb.code]: dagPbResolver,
[raw.code]: rawResolver,
[dagCbor.code]: dagCborResolver,
[identity.code]: identifyResolver
}
const resolve: Resolve = async (cid, name, path, toResolve, depth, blockstore, options) => {
const resolver = resolvers[cid.code]
if (resolver == null) {
throw errCode(new Error(`No resolver for code ${cid.code}`), 'ERR_NO_RESOLVER')
}
return resolver(cid, name, path, toResolve, resolve, depth, blockstore, options)
}
export default resolve