15
40%
MIT
a simple way to use cross-browser cookies that contain JSON.

Reason Cookie Logo

🍪 ReasonCookie

a simple way to use cross-browser cookies that contain JSON.

Note this wrapps js-cookie

Is it ready for prime time?

These are just some simple bindings to the library it wraps. I've used it on some side projects but it should be reasonably good. The Underlying library is pretty battle tested and can even work in older browsers.

Install

npm install --save @justgage/reason-cookie

Then in your bsconfig.json.

  "bs-dependencies": ["@justgage/reason-cookie"],

API 😋

Working with string values

  • RE
  • ML
open JustgageReasonCookie;

Cookie.getAsString("hello") /* None */
Cookie.setString("hello", "test");
Cookie.getAsString("hello") /* Some("test") */
2310: syntax error, consider adding a `;' before

working with JSON

  • RE
  • ML
open JustgageReasonCookie;

let obj = Js.Dict.empty();
Js.Dict.set(obj, "a", Js.Json.number(2.));
let obj = Js.Json.object_(obj);

Cookie.setJson("hello", obj);

let maybeCookie = Cookie.getAsJson("hello");
open JustgageReasonCookie
let obj = Js.Dict.empty ()
let _ = Js.Dict.set obj "a" (Js.Json.number 2.)
let obj = Js.Json.object_ obj
let _ = Cookie.setJson "hello" obj
let maybeCookie = Cookie.getAsJson "hello"

set path/expiry

  • expires: number of days till it's gone.
  • path: this scopes it to a page on your website (note: haven't used this personally)

(see js-cookie for more uses)

  • RE
  • ML
open JustgageReasonCookie;

Cookie.setJsonConfig(
  "hello",
  obj,
  Cookie.makeConfig(~path="", ~expires=2, ()),
);
open JustgageReasonCookie
let _ =
  Cookie.setJsonConfig "hello" obj (Cookie.makeConfig ~path:"" ~expires:2 ())

Contribute?

Best thing somone can do is just use it and find any problems it has.

Absolutely! Just make an issue. Please note that I usually ask people to make the changes themselves.