(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}