nft.storage
Version:
A client library for the https://nft.storage/ service. It provides a convenient interface for working with the HTTP API from a web browser or Node.js
32 lines (26 loc) • 1.11 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
const GATEWAY = new URL('https://nftstorage.link/');
/**
* @typedef {string|URL} GatewayURL Base URL of an IPFS Gateway e.g. https://dweb.link/ or https://ipfs.io/
* @typedef {{ gateway?: GatewayURL }} GatewayURLOptions
*/
/**
* Convert an IPFS URL (starting ipfs://) to a gateway URL (starting https://)
* that can be used in a webpage. If the passed URL is not an IPFS URL it is
* returned as a new URL object with no further changes.
*
* @param {string|URL} url An IPFS URL e.g. ipfs://bafy.../path
* @param {GatewayURLOptions} [options] Options that allow customization of the gateway used.
* @returns {URL} An IPFS gateway URL e.g. https://nftstorage.link/ipfs/bafy.../path
*/
const toGatewayURL = (url, options = {}) => {
const gateway = options.gateway || GATEWAY;
url = new URL(String(url));
return url.protocol === 'ipfs:'
? new URL(`/ipfs/${url.href.slice('ipfs://'.length)}`, gateway)
: url
};
exports.GATEWAY = GATEWAY;
exports.toGatewayURL = toGatewayURL;
//# sourceMappingURL=gateway.cjs.map
;