Skip to content
This repository has been archived by the owner on Oct 15, 2020. It is now read-only.

The Fission Web API TypeScript Client

License

Notifications You must be signed in to change notification settings

fission-codes/typescript-client

Repository files navigation

The webnative SDK replaces this platform / REST API


NPM License Build Status Maintainability Built by FISSION Discord

A TypeScript client library for access accessing the FISSION Web API.

Installing

$ npm install --save @fission-suite/client

API

Utility

getContentURL

Returns the url to access the given CID on our service.

Params:

  • cid: CID (string) required
  • baseURL: string defaults to fission web-api at https://runfission.com

Example:

import { getContentURL } from '@fission-suite/client'
const formattedURL = getContentURL("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u")
// "https://runfission.com/ipfs/QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u"

Unauthenticated

register

Registers a user for the Fission service.

Params:

  • username: string required
  • password: string required
  • email: string

Example:

import { register } from '@fission-suite/client'
await register("username", "password", "email@email.com")

peers

Gets the address for all IPFS nodes in the Fission Network.

Example:

import { peers } from '@fission-suite/client'
await peers()
// [
//   '/ip4/3.215.160.238/tcp/4001/ipfs/QmVLEz2SxoNiFnuyLpbXsH6SvjPTrHNMU88vCQZyhgBzgw',
//   '/ip4/184.68.124.102/tcp/64417/ipfs/QmQ2Jo91xQyVjhw1kmpk9eeHj6A4W1u5BYdh5xjfC5h11g'
// ]

content

Returns content at given CID.

Params:

  • cid: CID (string) required
  • baseURL: string defaults to fission web-api at https://runfission.com

Example:

import { content } from '@fission-suite/client'
const helloWorld = await content("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u")
// "Hello World"

Authenticated

These methods require a username/password from the fission webserver. These can be provisioned through our Fission CLI.

verify

Verifies the given credentialls.

Params:

  • auth: Auth ({username: string, password: string}) required
  • baseURL: string defaults to fission web-api at https://runfission.com

Example:

import { verify } from '@fission-suite/client'
await verify({ username: "username", password: "password" })
// true

resetPassword

Verifies the given credentialls.

Params:

  • auth: Auth ({username: string, password: string}) required
  • baseURL: string defaults to fission web-api at https://runfission.com

Example:

import { resetPassword } from '@fission-suite/client'
await resetPassword("newPassword", { username: "username", password: "password" })
// "newPassword"

add

Adds content to IPFS and returns the CID of that content.

Params:

  • content: Content (json, string, file-stream) required
  • auth: Auth ({username: string, password: string}) required
  • baseURL: string defaults to fission web-api at https://runfission.com
  • name: string optional name for your file, defaults to undefined

Example:

import { add } from '@fission-suite/client'
const auth = { username: "username", password: "password" }
const content = {
  key1: 123,
  key2: 456
}
const cid = await add(content, auth)
// "QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u"

remove

Unpins content from Fission server and disassociates CID with user account.

Params:

  • cid: CID (string) required
  • auth: Auth ({username: string, password: string}) required
  • baseURL: string defaults to fission web-api at https://runfission.com

Example:

import { remove } from '@fission-suite/client'
const auth = { username: "username", password: "password" }
await remove("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u", auth)
// undefined

pin

Pins content to Fission server.

Params:

  • cid: CID (string) required
  • auth: Auth ({username: string, password: string}) required
  • baseURL: string defaults to fission web-api at https://runfission.com

Example:

import { pin } from '@fission-suite/client'
const auth = { username: "username", password: "password" }
await pin("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u", auth)
// undefined

cids

Gets all CIDs associated with the given user.

Params:

  • auth: Auth ({username: string, password: string}) required
  • baseURL: string defaults to fission web-api at https://runfission.com

Example:

import { cids } from '@fission-suite/client'
const auth = { username: "username", password: "password" }
await cids(auth)
// [
//   "QmYwXpFw1QGAWxEnQWFwLuVpdbupaBcEz2DTTRRRsCt9WR",
//   "QmYp9d8BC2HhDCUVH7JEUZAd6Hbxrc5wBRfUs8TqazJJP9",
// ]

updateDNS

Updates the users associated subdomain to point at the given CID

Params:

  • cid: CID (string) required
  • auth: Auth ({username: string, password: string}) required
  • baseURL: string defaults to fission web-api at https://runfission.com

Example:

import { updateDNS } from '@fission-suite/client'
const auth = { username: "username", password: "password" }
await updateDNS("QmYwXpFw1QGAWxEnQWFwLuVpdbupaBcEz2DTTRRRsCt9WR", auth)
// "username.runfission.com"

Fission objects

For repeated calls, instantiate a fission object:

import Fission, { FissionUser } from '@fission-suite/client'

const fission = new Fission("https://someurl.com")
const helloWorld = await fission.content("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u")

const fissionUser = fission.login("username", "password")
// Alternately:
// const fissionUser = new FissionUser("username", "password", "https://someurl.com")

const cid =  await fissionUser.add("Check this out!")
await fissionUser.pin(cid)

const cids = fissionUser.cids()

Testing

  • Run npm i
  • Run tests with: npm run test
  • Or achieve developer zen with npm run test:watch