@dck/rescript-ky

1.2.1 • Public • Published

rescript-ky

ReScript bindings for ky HTTP client (targeted version : ~1.2.0)

Setup

  1. Install the module
bun install @dck/rescript-ky
# or
yarn install @dck/rescript-ky
# or
npm install @dck/rescript-ky
  1. Add it to your rescript.json config
{
  "bsc-dependencies": ["@dck/rescript-ky"]
}

Usage

The functions can be accessed through Ky module.

type data = {anything: string}

let fetchSomething = async () => {
  try {
    let response: data = await Ky.fetch("test", {prefixUrl: "https://fake.com", method: GET}).json()
    // handle response data
  } catch {
    | JsError(err) => {
      // handle err
      Js.log(err)
    }
  }
}

Use shortcut method :

type data = {anything: string}

let fetchSomething = async () => {
  try {
    let response: data = await Ky.get("test", {prefixUrl: "https://fake.com"}).json()
    // handle response data
  } catch {
    | JsError(err) => {
      // handle err
      Js.log(err)
    }
  }
}

Instance

let instance = Ky.Instance.create({prefixUrl: "https://fake.com"})

type data = {anything: string}

let fetchSomething = async () => {
  try {
    let response: data = await (instance->Ky.Instance.get("test")).json()
    // handle response data
  } catch {
    | JsError(err) => {
      // handle err
      Js.log(err)
    }
  }
}

Extend

let instance = Ky.Instance.create({prefixUrl: "https://fake.com"})
let extendedInstance = instance->Ky.Instance.extend({
  prefixUrl: `${mockBasePath}/extend`,
  headers: Ky.Headers.fromObj({
    "custom-header": "test",
  }),
})

type data = {anything: string}

let fetchSomething = async () => {
  try {
    let response: data = await (instance->Ky.Instance.get("test")).json()
    // handle response data
  } catch {
    | JsError(err) => {
      // handle err
      Js.log(err)
    }
  }
}

Readme

Keywords

Package Sidebar

Install

npm i @dck/rescript-ky

Weekly Downloads

1

Version

1.2.1

License

MIT

Unpacked Size

7.48 kB

Total Files

4

Last publish

Collaborators

  • dck