mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-10-07 22:57:07 +00:00
fix: Timeout is globally configurable for IPFSBlock.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
import { CID } from 'multiformats/cid'
|
||||
import { base58btc } from 'multiformats/bases/base58'
|
||||
|
||||
const DefaultTimeout = 5000 // 5 seconds
|
||||
const DefaultTimeout = 30000 // 30 seconds
|
||||
|
||||
/**
|
||||
* Creates an instance of IPFSBlockStorage.
|
||||
@@ -17,14 +17,17 @@ const DefaultTimeout = 5000 // 5 seconds
|
||||
* @param {IPFS} params.ipfs An IPFS instance.
|
||||
* @param {boolean} [params.pin=false] True, if the block should be pinned,
|
||||
* false otherwise.
|
||||
* @param {number} [params.timeout=defaultTimeout] A timeout in ms.
|
||||
* @return {module:Storage.Storage-IPFS} An instance of IPFSBlockStorage.
|
||||
* @memberof module:Storage
|
||||
* @throw An instance of ipfs is required if params.ipfs is not specified.
|
||||
* @instance
|
||||
*/
|
||||
const IPFSBlockStorage = async ({ ipfs, pin } = {}) => {
|
||||
const IPFSBlockStorage = async ({ ipfs, pin, timeout } = {}) => {
|
||||
if (!ipfs) throw new Error('An instance of ipfs is required.')
|
||||
|
||||
timeout = timeout || DefaultTimeout
|
||||
|
||||
/**
|
||||
* Puts data to an IPFS block.
|
||||
* @function
|
||||
@@ -54,7 +57,7 @@ const IPFSBlockStorage = async ({ ipfs, pin } = {}) => {
|
||||
*/
|
||||
const get = async (hash) => {
|
||||
const cid = CID.parse(hash, base58btc)
|
||||
const block = await ipfs.blockstore.get(cid, { signal: AbortSignal.timeout(DefaultTimeout) })
|
||||
const block = await ipfs.blockstore.get(cid, { signal: AbortSignal.timeout(timeout) })
|
||||
if (block) {
|
||||
return block
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user