UNPKG

ipfs-api

Version:

A client library for the IPFS HTTP API

47 lines (37 loc) 1.23 kB
'use strict' const multiaddr = require('multiaddr') const loadCommands = require('./utils/load-commands') const getConfig = require('./utils/default-config') const sendRequest = require('./utils/send-request') function IpfsAPI (hostOrMultiaddr, port, opts) { const config = getConfig() try { const maddr = multiaddr(hostOrMultiaddr).nodeAddress() config.host = maddr.address config.port = maddr.port } catch (e) { if (typeof hostOrMultiaddr === 'string') { config.host = hostOrMultiaddr config.port = port && typeof port !== 'object' ? port : config.port } } let lastIndex = arguments.length while (!opts && lastIndex-- > 0) { opts = arguments[lastIndex] if (opts) break } Object.assign(config, opts) // autoconfigure in browser if (!config.host && typeof self !== 'undefined') { const split = self.location.host.split(':') config.host = split[0] config.port = split[1] } const requestAPI = sendRequest(config) const cmds = loadCommands(requestAPI, config) cmds.send = requestAPI cmds.Buffer = Buffer // Added buffer in types (this should be removed once a breaking change is release) return cmds } exports = module.exports = IpfsAPI