ipfs-core
Version:
JavaScript implementation of the IPFS specification
29 lines (24 loc) • 813 B
JavaScript
import { withTimeoutOption } from 'ipfs-core-utils/with-timeout-option'
import { toCidAndPath } from 'ipfs-core-utils/to-cid-and-path'
import { resolvePath } from '../../utils.js'
/**
* @param {object} config
* @param {import('ipfs-core-utils/multicodecs').Multicodecs} config.codecs
* @param {import('ipfs-repo').IPFSRepo} config.repo
* @param {import('../../types').Preload} config.preload
*/
export function createResolve ({ repo, codecs, preload }) {
/**
* @type {import('ipfs-core-types/src/dag').API<{}>["resolve"]}
*/
async function dagResolve (ipfsPath, options = {}) {
const {
cid
} = toCidAndPath(ipfsPath)
if (options.preload !== false) {
preload(cid)
}
return resolvePath(repo, codecs, ipfsPath, options)
}
return withTimeoutOption(dagResolve)
}