ipfs-core
Version:
JavaScript implementation of the IPFS specification
38 lines (34 loc) • 1.2 kB
JavaScript
import { Service } from '../utils/service.js'
/**
* @param {object} config
* @param {import('../types').NetworkService} config.network
* @param {import('@libp2p/interface-peer-id').PeerId} config.peerId
* @param {import('ipfs-repo').IPFSRepo} config.repo
* @param {import('../types').Print} config.print
* @param {import('../types').Preload} config.preload
* @param {import('../types').MfsPreload} config.mfsPreload
* @param {import('./ipns').IPNSAPI} config.ipns
* @param {import('@libp2p/interface-keychain').KeyChain} config.keychain
* @param {import('ipfs-core-utils/multihashes').Multihashes} config.hashers
* @param {import('../types').Options} config.options
*/
export function createStart ({ network, preload, peerId, keychain, repo, ipns, mfsPreload, print, hashers, options }) {
/**
* @type {import('ipfs-core-types/src/root').API<{}>["start"]}
*/
const start = async () => {
const { libp2p } = await Service.start(network, {
peerId,
repo,
print,
hashers,
options
})
await Promise.all([
ipns.startOnline({ keychain, libp2p, peerId, repo }),
preload.start(),
mfsPreload.start()
])
}
return start
}