Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type levelDBErrors =
- | EncodingError
- | InitializationError
- | LevelUPError
- | NotFoundError
- | OpenError
- | ReadError
- | WriteError;
- type leveldown;
- type ldb;
- [@bs.module]
- external levelup: leveldown => ldb = "levelup";
- [@bs.module]
- external leveldown: string => leveldown = "leveldown";
- [@bs.send]
- external put : (ldb, string, string) => Js.Promise.t(unit) = "put";
- [@bs.send]
- external get : (ldb, string) => Js.Promise.t(string) = "get";
- let db = levelup(leveldown("./mydb"));
- put(db, "sdd", "sdsd")
- |> Js.Promise.then_(_ => {
- get(db, "sdd")
- |> Js.Promise.then_(value => {
- let valueStr: string = Buffer.contents(value);
- Js.log(valueStr);
- Js.Promise.resolve(valueStr);
- })
- |> Js.Promise.catch(err => {
- Js.log(err);
- Js.Promise.resolve("Error");
- });
- })
- /*
- We've found a bug for you!
- /Users/michalmajchrzak/Documents/Reason/bs-leveldb/src/leveldb.re 29:6-34:4
- 27 │ |> Js.Promise.then_(_ => {
- 28 │ get(db, "sdd")
- 29 │ |> Js.Promise.then_(value => {
- 30 │ /* I am getting <Buffer 13 32..> here as a value */
- . │ ...
- 33 │ Js.Promise.resolve(valueStr);
- 34 │ })
- 35 │ |> Js.Promise.catch(err => {
- 36 │ Js.log(err);
- This has type:
- Js.Promise.t(Buffer.t) => Js.Promise.t(string)
- But somewhere wanted:
- Js.Promise.t(string) => 'a
- The incompatible parts:
- Js.Promise.t(Buffer.t) (defined as Js.Promise.t(Buffer.t))
- vs
- Js.Promise.t(string) (defined as Js.Promise.t(string))
- Further expanded:
- Buffer.t
- vs
- string
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement