Skip to content

An IPFS Pinning Service HTTP Client for TypeScript / Javascript

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

ipfs-shipyard/js-pinning-service-http-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPFS Pinning Service API Client for JS

This client was generated using OpenAPI Generator from the IPFS Pinning Service API spec.

You can see the commands used to generate the client in the gen:fetch npm script.

Usage

npm install @ipfs-shipyard/pinning-service-client --save

This client only has a programmatic API at the moment (no CLI). You use it like so:

import { Configuration, RemotePinningServiceClient, Status } from '@ipfs-shipyard/pinning-service-client'
import type { PinsGetRequest, PinResults } from '@ipfs-shipyard/pinning-service-client'

const config = new Configuration({
  endpointUrl, // the URI for your pinning provider, e.g. `http://localhost:3000`
  accessToken, // the secret token/key given to you by your pinning provider
  // fetchApi: fetch, // You can pass your own fetchApi implementation, but we use NodeJS fetch by default.
})

const client = new RemotePinningServiceClient(config)

(async () => {
  // Get 10 failed Pins
  const pinsGetOptions: PinsGetRequest = {
    limit: 10,
    status: [Status.Failed]
  }
  const {count, results}: PinResults = await client.pinsGet(pinsGetOptions)

  console.log(count, results)

})()

Developing

Building

To build and compile the typescript sources to javascript use:

npm install
npm run build

Updating the generated client

To update the client, you need to npm run gen npm script. This will fetch the latest version of the OpenAPI spec and generate the client. However, openapi-generator-cli does not currently generate the client code with proper import syntax. So you must modify the imports in generated/fetch/** directly, or just git checkout -p to remove the invalid import path changes.

It also uses Sets for all collection types though it cannot serialize or deserialize these types to/from JSON. They must be manually changed to be Arrays.

If you need to modify the generated code's import paths, you will have to run npm run postgen manually.

Contributing

See CONTRIBUTING.md.

Publishing

First build the package then run npm publish

License

Licensed under either of

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.