diff options
Diffstat (limited to 'lib/cache.fnl')
| -rw-r--r-- | lib/cache.fnl | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/cache.fnl b/lib/cache.fnl new file mode 100644 index 0000000..b21a05e --- /dev/null +++ b/lib/cache.fnl @@ -0,0 +1,21 @@ +(local {: must} (require :lib.utils)) + +(fn get [db key else] + (local result + (must (luna.db.query db "SELECT value FROM cache WHERE key = ?" + [key]))) + (or (if (and result (< 0 (# result))) + (. (. result 1) 1) + nil) + else)) + +(fn _set [db key value] + value + (must (luna.db.exec db "INSERT OR REPLACE INTO cache VALUES (?, ?)" + [key value])) + value) + +(fn clear-tx [tx] + (must (luna.db.exec-tx tx "DELETE FROM cache" []))) + +{: get :set _set : clear-tx} |
