UNPKG

bs-fetch

Version:
67 lines (47 loc) 2.67 kB
# bs-fetch Low-level bindings to fetch for [BuckleScript](https://github.com/bucklescript/bucklescript). [![npm](https://img.shields.io/npm/v/bs-fetch.svg)](https://npmjs.org/bs-fetch) [![Issues](https://img.shields.io/github/issues/reasonml-community/bs-fetch.svg)](https://github.com/reasonml-community/bs-fetch/issues) [![Last Commit](https://img.shields.io/github/last-commit/reasonml-community/bs-fetch.svg)]() [![Size](https://img.shields.io/github/size/reasonml-community/bs-fetch/lib/js/src/Fetch.js.svg)]() `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 ```reason Js.Promise.( Fetch.fetch("/api/hellos/1") |> then_(Fetch.Response.text) |> then_(text => print_endline(text) |> resolve) ); ``` ## Installation ```sh npm install --save bs-fetch ``` Then add `bs-fetch` to `bs-dependencies` in your `bsconfig.json`: ```js { ... "bs-dependencies": ["bs-fetch"] } ``` ## Usage See usage examples in [`ocaml_examples.ml`](https://github.com/reasonml-community/bs-fetch/blob/master/examples/ocaml_examples.ml) and [`reason_examples.re`](https://github.com/reasonml-community/bs-fetch/blob/master/examples/reason_examples.re). The source is a [single file](https://github.com/reasonml-community/bs-fetch/blob/master/src/Fetch.ml)! ## 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](https://github.com/matthew-andrews/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.6.2 * Added `FormData` bindings ### 0.6.0 * Bugfix: `Response._type` was generating `_type` instead of `type` * Breaking: Rename `Response._type` to `Response.type_` to follow the name mangling convention trends ### 0.5.2 * Added `AbortController` ### 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.