Skip to content
Fetch bindings for BuckleScript
OCaml JavaScript
Branch: master
Clone or download
Latest commit 481e1b5 Jun 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples gently unfuck example refmt May 31, 2018
lib/js Upgrade bs-platform to 5.0.4 (#26) May 31, 2019
src Fix signature for Headers append and delete (#28) Jun 20, 2019
.gitignore add .bsb.lock to .gitignore Oct 27, 2017
LICENSE Add LICENSE Mar 21, 2017
README.md update change log Jun 20, 2019
bsconfig.json restore package-specs Oct 27, 2018
package.json 0.5.0 Jun 20, 2019

README.md

bs-fetch

Low-level bindings to fetch for BuckleScript.

npm Issues Last Commit Size

bs-fetch is intended as a thin layer atop the JS API, upon which more high-level and idiomatic libraries can be made. Once such a library has been established, these bindings will likely be refactored to be even thinner.

Example

Js.Promise.(
  Fetch.fetch("/api/hellos/1")
  |> then_(Fetch.Response.text)
  |> then_(text => print_endline(text) |> resolve)
);

Installation

npm install --save bs-fetch

Then add bs-fetch to bs-dependencies in your bsconfig.json:

{
  ...
  "bs-dependencies": ["bs-fetch"]
}

Usage

See usage examples in ocaml_examples.ml and reason_examples.re. The source is a single file!

Node.js polyfill

fetch is a Web API that isn't available out-of-the-box in Node.js, and will therefore need to be polyfilled. isomorphic-fetch one such polyfill that seems to work well. Just install it via npm and add [%raw "require('isomorphic-fetch')"] to the top of your main file, but be aware that there are some subtle differences and even parts that are missing entirely.

Changes

0.5.0

  • Fixed Headers.append and Headers.delete. They were missing the return type.

0.4.0

  • Bumped bs-platform to 5.0.4 to stop compiler from complaining.

0.3.0

  • Added HeadersInit.makeWithDict so as to be able to make headers in OCaml too
  • Require bs-platform >= 3.0.0 due to internal dependency on Js.boolean that has now been removed

0.2.0

  • Rename Bs_fetch module to Fetch. Bs_fetch is kept around as an alias for backwards compatibility, but should be considered deprecated.
You can’t perform that action at this time.