1.1.6 • Published 1 year ago

@crypticorn-ai/api v1.1.6

Weekly downloads
-
License
-
Repository
github
Last release
1 year ago

api

API client and server library for networking with Crypticorn authorization server and RPC backend. Uses tRPC framework. More extensive documentation is thanks to stronly typed API, use the Typescript language server to explore the API.

See package.json for NPM scripts.

Usage

// In Browser
import { createClient } from '@crypticorn-ai/api'
// Express and NodeJs
import { createServer } from '@crypticorn-ai/api/src/server'
const app = createServer()

// Or with Adapters
import { appRouter, createContext } from '@crypticorn-ai/api/src/server'
import { createNextApiHandler } from '@trpc/server/adapters/next'
const nextApiHandler = createNextApiHandler({
  router: appRouter,
  createContext: createContext,
})

Client

const trpc = createClient('https://app.crypticorn.com/trpc');

// get JWT
await trpc.authorizeUser
  .mutate({
    email: 'alice@test.com',
    password: 'testpass',
  })
  .then((loginInfo) => {
    document.cookie = 'accessToken=' + loginInfo.accessToken
    document.cookie = 'refreshToken=' + loginInfo.refreshToken
    console.log('logged in')
  })

// helpers
function getCookies() {
  return document.cookie.split(';').reduce((cookies, cookie) => {
    const [name, value] = cookie.split('=').map((c) => c.trim())
    cookies[name] = value
    return cookies
  }, {})
}
function getCookie(name) {
  return getCookies()[name]
}

// refresh JWT
await trpc.refreshJwt
  .mutate({
    accessToken: getCookie('accessToken'),
    refreshToken: getCookie('refreshToken'),
  })
  .then((loginInfo) => {
    document.cookie = 'accessToken=' + loginInfo.accessToken
    document.cookie = 'refreshToken=' + loginInfo.refreshToken
    console.log('refreshed jwt')
  })

// perform authenticated requests
const user = await trpc.whoami.query()
console.log('logged in as', user)
1.1.6

1 year ago

1.1.5

1 year ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.10

1 year ago