Advertisement
Guest User

Untitled

a guest
Apr 14th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 1.60 KB | None | 0 0
  1. type levelDBErrors =
  2.   | EncodingError
  3.   | InitializationError
  4.   | LevelUPError
  5.   | NotFoundError
  6.   | OpenError
  7.   | ReadError
  8.   | WriteError;
  9.  
  10. type leveldown;
  11. type ldb;
  12.  
  13. [@bs.module]
  14. external levelup: leveldown => ldb = "levelup";
  15.  
  16. [@bs.module]
  17. external leveldown: string => leveldown = "leveldown";
  18.  
  19. [@bs.send]
  20. external put : (ldb, string, string) => Js.Promise.t(unit) = "put";
  21.  
  22. [@bs.send]
  23. external get : (ldb, string) => Js.Promise.t(string) = "get";
  24.  
  25. let db = levelup(leveldown("./mydb"));
  26. put(db, "sdd", "sdsd")
  27. |> Js.Promise.then_(_ => {
  28.   get(db, "sdd")
  29.   |> Js.Promise.then_(value => {
  30.     let valueStr: string = Buffer.contents(value);
  31.     Js.log(valueStr);
  32.     Js.Promise.resolve(valueStr);
  33.   })
  34.   |> Js.Promise.catch(err => {
  35.     Js.log(err);
  36.     Js.Promise.resolve("Error");
  37.   });
  38. })
  39.  
  40. /*
  41.  
  42.  We've found a bug for you!
  43.   /Users/michalmajchrzak/Documents/Reason/bs-leveldb/src/leveldb.re 29:6-34:4
  44.  
  45.   27|> Js.Promise.then_(_ => {
  46.   28 │   get(db, "sdd")
  47.   29 │   |> Js.Promise.then_(value => {
  48.   30 │     /* I am getting <Buffer 13 32..> here as a value */
  49.    ....
  50.   33 │     Js.Promise.resolve(valueStr);
  51.   34 │   })
  52.   35 │   |> Js.Promise.catch(err => {
  53.   36 │     Js.log(err);
  54.  
  55.   This has type:
  56.     Js.Promise.t(Buffer.t) => Js.Promise.t(string)
  57.   But somewhere wanted:
  58.     Js.Promise.t(string) => 'a
  59.  
  60.   The incompatible parts:
  61.     Js.Promise.t(Buffer.t) (defined as Js.Promise.t(Buffer.t))
  62.     vs
  63.     Js.Promise.t(string) (defined as Js.Promise.t(string))
  64.    
  65.     Further expanded:
  66.       Buffer.t
  67.       vs
  68.       string
  69.  
  70.  
  71. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement