bs-hyperquest

0.5.0 • Public • Published

bs-hyperquest

BuckleScript bindings for substack's hyperquest library.

Usage

Standard Event Interface

GET

let result =
  Js.Promise.make((~resolve, ~reject) =>
    Hyperquest.get(~uri, ())
    |. Hyperquest.on(
         `response(
           res => {
             let data = ref("");

             res
             |. Hyperquest.IncomingMessage.on(
                  `data(
                    b => data := data^ ++ Hyperquest.Buffer.toString(b),
                  ),
                )
             |. Hyperquest.IncomingMessage.on(
                  `error(exn => reject(. exn)),
                )
             |. Hyperquest.IncomingMessage.on(
                  `end_(_ => resolve(. data^)),
                )
             |. ignore;
           },
         ),
       )
    |. ignore
  );

reason-future Interface

GET

Hyperquest.Future.get(~uri, ())
|. Future.mapOk(((_, data)) => data)
|. Future.mapError(res =>
  switch(res) {
  | (_, `error(exn)) => exn |. Js.String.make |. fail |. finish
  | (_, `response(data)) => data |. fail |. finish
  }
)
|. ignore

Readme

Keywords

none

Package Sidebar

Install

npm i bs-hyperquest

Weekly Downloads

5

Version

0.5.0

License

MIT

Unpacked Size

52.7 kB

Total Files

36

Last publish

Collaborators

  • scull7