# @pinata/ipfs-gateway-tools

> Toolkit for working with IPFS Gateways and CIDs

Latest version **1.3.0** (published 2022-04-12) · MIT license · 0 weekly downloads

## Install

```sh
npm install @pinata/ipfs-gateway-tools
pnpm add @pinata/ipfs-gateway-tools
yarn add @pinata/ipfs-gateway-tools
bun add @pinata/ipfs-gateway-tools
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.3.0 |
| Published | 2022-04-12 |
| First published | 2021-04-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 363.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 63 |
| Author | Matt Ober |
| Maintainers | mattober, polluterofminds |
| Keywords | ipfs, gateway, pinata |

## Links

- npm: https://www.npmjs.com/package/@pinata/ipfs-gateway-tools
- Repository: https://github.com/PinataCloud/ipfs-gateway-tools
- Issues: https://github.com/PinataCloud/ipfs-gateway-tools/issues
- npm.io page: https://npm.io/package/@pinata/ipfs-gateway-tools

## Dependencies (1)

- [is-ipfs](https://npm.io/package/is-ipfs.md) ^5.0.0

## Recent versions

- 1.3.0 (latest) — 2022-04-12
- 1.2.0 — 2022-01-13
- 1.1.6 — 2021-07-08
- 1.1.5 — 2021-07-08
- 1.1.4 — 2021-07-08
- 1.1.3 — 2021-07-08
- 1.1.2 — 2021-07-08
- 1.1.1 — 2021-07-08
- 1.0.1 — 2021-04-27
- 1.0.0 — 2021-04-27

## README

# IPFS Gateway Tools

IPFS Gateway Tools

## Overview

This toolkit contains helper functions for working with IPFS gateway URLs and transforming them as desired.

This package comes with a distributions for the browser and for NodeJS. Take care to ensure you are importing or requiring in the right version.

## Installation

```
npm install --save @pinata/ipfs-gateway-tools
```

## Browser Setup

To require this in your project simply include the library at the top of your file like so:

```javascript
import IPFSGatewayTools from "@pinata/ipfs-gateway-tools/dist/browser";
const gatewayTools = new IPFSGatewayTools();
```

## NodeJS Setup

```javascript
const IPFSGatewayTools = require("@pinata/ipfs-gateway-tools/dist/node");
const gatewayTools = new IPFSGatewayTools();
```

## Usage

The IPFS gateway toolkit currently contains the following functions:

- [containsCID](#containsCID-anchor)
- [convertToDesiredGateway](#convertToDesiredGateway-anchor)

<a name="containsCID-anchor"></a>

### containsCID

##### `ipfsGatewayTools.containsCID(url)`

##### Params

- `url` - A gateway url that should take one of the following forms:
  - `ipfs://CID`
  - `ipfs://ipfs/CID`
  - `https://example-gateway.com/ipfs/CID`
  - `https://example-gateway.com/ipfs/CID/exampleFile.json`
  - `https://example-gateway.com/ipns/CID`

#### Response

```
{
    containsCid: (Boolean) - True if the url contains a CID,
    cid: (string) - The CID that the url contains if "containsCid" is true
}
```

<a name="convertToDesiredGateway-anchor"></a>

### convertToDesiredGateway

##### `ipfsGatewayTools.convertToDesiredGateway(sourceUrl, desiredGatewayPrefix)`

##### Params

- `sourceUrl` - A gateway url that should take one of the following forms:
  - `ipfs://CID`
  - `ipfs://ipfs/CID`
  - `https://example-gateway.com/ipfs/CID`
  - `https://example-gateway.com/ipfs/CID/exampleFile.json`
  - `https://example-gateway.com/ipns/CID`
- `desiredGatewayPrefix` - The desired gateway you want to convert your source URL to. A few examples of this would be:
  - `https://mygateway.mypinata.cloud`
  - `https://ipfs.io`

#### Response

Returns a string that uses the desired source gateway prefix.

Example code:

```javascript
const sourceUrl =
  "https://exampleGateway.com/ipfs/bafybeifx7yeb55armcsxwwitkymga5xf53dxiarykms3ygqic223w5sk3m";
const desiredGatewayPrefix = "https://mygateway.mypinata.cloud";
const convertedGatewayUrl = ipfsGatewayTools.convertToDesiredGateway(
  sourceUrl,
  desiredGatewayPrefix
);

//In the example above, the resulting value for convertedGatewayUrl would be: https://mygateway.mypinata.cloud/ipfs/bafybeifx7yeb55armcsxwwitkymga5xf53dxiarykms3ygqic223w5sk3m
```

## Questions? Issues? Suggestions?

Feel free to file a github issue or email us at team@pinata.cloud

We'd love to hear from you!

---
_Source: https://npm.io/package/@pinata/ipfs-gateway-tools · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
