Files
logseq/src/main/frontend/storage.cljs
2020-12-06 00:28:24 +08:00

38 lines
848 B
Clojure

(ns frontend.storage
(:refer-clojure :exclude [get set remove])
(:require [cljs.reader :as reader]
[datascript.transit :as dt]))
(defn get
[key]
(reader/read-string ^js (.getItem js/localStorage (name key))))
(defn set
[key value]
(.setItem ^js js/localStorage (name key) (pr-str value)))
(defn get-transit
[key]
(dt/read-transit-str ^js (.getItem js/localStorage (name key))))
(defn set-transit!
[key value]
(.setItem ^js js/localStorage (name key) (dt/write-transit-str value)))
(defn get-json
[key]
(when-let [value (.getItem js/localStorage (name key))]
(js/JSON.parse value)))
(defn set-json
[key value]
(.setItem ^js js/localStorage (name key) (js/JSON.stringify value)))
(defn remove
[key]
(.removeItem ^js js/localStorage (name key)))
(defn clear
[]
(.clear ^js js/localStorage))