datahike 0.7.1630

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +226 -0
  2. package/cljs.analyzer.api.js +427 -0
  3. package/cljs.analyzer.api.js.map +1 -0
  4. package/cljs.analyzer.impl.js +86 -0
  5. package/cljs.analyzer.impl.js.map +1 -0
  6. package/cljs.analyzer.impl.namespaces.js +219 -0
  7. package/cljs.analyzer.impl.namespaces.js.map +1 -0
  8. package/cljs.analyzer.js +7186 -0
  9. package/cljs.analyzer.js.map +1 -0
  10. package/cljs.analyzer.passes.and_or.js +141 -0
  11. package/cljs.analyzer.passes.and_or.js.map +1 -0
  12. package/cljs.analyzer.passes.js +104 -0
  13. package/cljs.analyzer.passes.js.map +1 -0
  14. package/cljs.cache.js +1145 -0
  15. package/cljs.cache.js.map +1 -0
  16. package/cljs.cache.wrapped.js +352 -0
  17. package/cljs.cache.wrapped.js.map +1 -0
  18. package/cljs.core.async.impl.buffers.js +489 -0
  19. package/cljs.core.async.impl.buffers.js.map +1 -0
  20. package/cljs.core.async.impl.channels.js +711 -0
  21. package/cljs.core.async.impl.channels.js.map +1 -0
  22. package/cljs.core.async.impl.dispatch.js +81 -0
  23. package/cljs.core.async.impl.dispatch.js.map +1 -0
  24. package/cljs.core.async.impl.ioc_helpers.js +192 -0
  25. package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
  26. package/cljs.core.async.impl.protocols.js +368 -0
  27. package/cljs.core.async.impl.protocols.js.map +1 -0
  28. package/cljs.core.async.impl.timers.js +510 -0
  29. package/cljs.core.async.impl.timers.js.map +1 -0
  30. package/cljs.core.async.js +8813 -0
  31. package/cljs.core.async.js.map +1 -0
  32. package/cljs.core.js +38764 -0
  33. package/cljs.core.js.map +1 -0
  34. package/cljs.env.js +60 -0
  35. package/cljs.env.js.map +1 -0
  36. package/cljs.nodejs.js +80 -0
  37. package/cljs.nodejs.js.map +1 -0
  38. package/cljs.reader.js +462 -0
  39. package/cljs.reader.js.map +1 -0
  40. package/cljs.spec.alpha.js +5312 -0
  41. package/cljs.spec.alpha.js.map +1 -0
  42. package/cljs.spec.gen.alpha.js +2020 -0
  43. package/cljs.spec.gen.alpha.js.map +1 -0
  44. package/cljs.tagged_literals.js +103 -0
  45. package/cljs.tagged_literals.js.map +1 -0
  46. package/cljs.tools.reader.edn.js +960 -0
  47. package/cljs.tools.reader.edn.js.map +1 -0
  48. package/cljs.tools.reader.impl.commons.js +217 -0
  49. package/cljs.tools.reader.impl.commons.js.map +1 -0
  50. package/cljs.tools.reader.impl.errors.js +441 -0
  51. package/cljs.tools.reader.impl.errors.js.map +1 -0
  52. package/cljs.tools.reader.impl.inspect.js +182 -0
  53. package/cljs.tools.reader.impl.inspect.js.map +1 -0
  54. package/cljs.tools.reader.impl.utils.js +429 -0
  55. package/cljs.tools.reader.impl.utils.js.map +1 -0
  56. package/cljs.tools.reader.js +1830 -0
  57. package/cljs.tools.reader.js.map +1 -0
  58. package/cljs.tools.reader.reader_types.js +838 -0
  59. package/cljs.tools.reader.reader_types.js.map +1 -0
  60. package/cljs_env.js +18192 -0
  61. package/cljs_node_io.core.js +1278 -0
  62. package/cljs_node_io.core.js.map +1 -0
  63. package/cljs_node_io.file.js +918 -0
  64. package/cljs_node_io.file.js.map +1 -0
  65. package/cljs_node_io.fs.js +3911 -0
  66. package/cljs_node_io.fs.js.map +1 -0
  67. package/clojure.data.js +319 -0
  68. package/clojure.data.js.map +1 -0
  69. package/clojure.edn.js +119 -0
  70. package/clojure.edn.js.map +1 -0
  71. package/clojure.set.js +406 -0
  72. package/clojure.set.js.map +1 -0
  73. package/clojure.string.js +502 -0
  74. package/clojure.string.js.map +1 -0
  75. package/clojure.walk.js +156 -0
  76. package/clojure.walk.js.map +1 -0
  77. package/datahike.api.impl.js +621 -0
  78. package/datahike.api.impl.js.map +1 -0
  79. package/datahike.api.specification.js +85 -0
  80. package/datahike.api.specification.js.map +1 -0
  81. package/datahike.array.js +275 -0
  82. package/datahike.array.js.map +1 -0
  83. package/datahike.config.js +437 -0
  84. package/datahike.config.js.map +1 -0
  85. package/datahike.connections.js +55 -0
  86. package/datahike.connections.js.map +1 -0
  87. package/datahike.connector.js +1248 -0
  88. package/datahike.connector.js.map +1 -0
  89. package/datahike.constants.js +66 -0
  90. package/datahike.constants.js.map +1 -0
  91. package/datahike.core.js +628 -0
  92. package/datahike.core.js.map +1 -0
  93. package/datahike.datom.js +963 -0
  94. package/datahike.datom.js.map +1 -0
  95. package/datahike.db.interface.js +819 -0
  96. package/datahike.db.interface.js.map +1 -0
  97. package/datahike.db.js +3095 -0
  98. package/datahike.db.js.map +1 -0
  99. package/datahike.db.search.js +1004 -0
  100. package/datahike.db.search.js.map +1 -0
  101. package/datahike.db.transaction.js +1904 -0
  102. package/datahike.db.transaction.js.map +1 -0
  103. package/datahike.db.utils.js +642 -0
  104. package/datahike.db.utils.js.map +1 -0
  105. package/datahike.gc.js +1618 -0
  106. package/datahike.gc.js.map +1 -0
  107. package/datahike.impl.entity.js +604 -0
  108. package/datahike.impl.entity.js.map +1 -0
  109. package/datahike.index.interface.js +484 -0
  110. package/datahike.index.interface.js.map +1 -0
  111. package/datahike.index.js +50 -0
  112. package/datahike.index.js.map +1 -0
  113. package/datahike.index.persistent_set.js +1250 -0
  114. package/datahike.index.persistent_set.js.map +1 -0
  115. package/datahike.js.api.js +2211 -0
  116. package/datahike.js.api.js.map +1 -0
  117. package/datahike.lru.js +404 -0
  118. package/datahike.lru.js.map +1 -0
  119. package/datahike.pull_api.js +533 -0
  120. package/datahike.pull_api.js.map +1 -0
  121. package/datahike.query.js +11891 -0
  122. package/datahike.query.js.map +1 -0
  123. package/datahike.query_stats.js +152 -0
  124. package/datahike.query_stats.js.map +1 -0
  125. package/datahike.readers.js +166 -0
  126. package/datahike.readers.js.map +1 -0
  127. package/datahike.schema.js +251 -0
  128. package/datahike.schema.js.map +1 -0
  129. package/datahike.schema_cache.js +66 -0
  130. package/datahike.schema_cache.js.map +1 -0
  131. package/datahike.spec.js +70 -0
  132. package/datahike.spec.js.map +1 -0
  133. package/datahike.store.js +514 -0
  134. package/datahike.store.js.map +1 -0
  135. package/datahike.tools.js +436 -0
  136. package/datahike.tools.js.map +1 -0
  137. package/datahike.writer.js +3463 -0
  138. package/datahike.writer.js.map +1 -0
  139. package/datahike.writing.js +3168 -0
  140. package/datahike.writing.js.map +1 -0
  141. package/datalog.parser.impl.js +1421 -0
  142. package/datalog.parser.impl.js.map +1 -0
  143. package/datalog.parser.impl.proto.js +213 -0
  144. package/datalog.parser.impl.proto.js.map +1 -0
  145. package/datalog.parser.impl.util.js +117 -0
  146. package/datalog.parser.impl.util.js.map +1 -0
  147. package/datalog.parser.js +47 -0
  148. package/datalog.parser.js.map +1 -0
  149. package/datalog.parser.pull.js +2603 -0
  150. package/datalog.parser.pull.js.map +1 -0
  151. package/datalog.parser.type.js +7502 -0
  152. package/datalog.parser.type.js.map +1 -0
  153. package/datalog.parser.util.js +60 -0
  154. package/datalog.parser.util.js.map +1 -0
  155. package/environ.core.js +263 -0
  156. package/environ.core.js.map +1 -0
  157. package/fress.api.js +607 -0
  158. package/fress.api.js.map +1 -0
  159. package/fress.impl.adler32.js +435 -0
  160. package/fress.impl.adler32.js.map +1 -0
  161. package/fress.impl.bigint.js +185 -0
  162. package/fress.impl.bigint.js.map +1 -0
  163. package/fress.impl.buffer.js +1087 -0
  164. package/fress.impl.buffer.js.map +1 -0
  165. package/fress.impl.codes.js +105 -0
  166. package/fress.impl.codes.js.map +1 -0
  167. package/fress.impl.hopmap.js +603 -0
  168. package/fress.impl.hopmap.js.map +1 -0
  169. package/fress.impl.ranges.js +49 -0
  170. package/fress.impl.ranges.js.map +1 -0
  171. package/fress.impl.raw_input.js +837 -0
  172. package/fress.impl.raw_input.js.map +1 -0
  173. package/fress.impl.raw_output.js +653 -0
  174. package/fress.impl.raw_output.js.map +1 -0
  175. package/fress.impl.table.js +133 -0
  176. package/fress.impl.table.js.map +1 -0
  177. package/fress.reader.js +2312 -0
  178. package/fress.reader.js.map +1 -0
  179. package/fress.util.js +458 -0
  180. package/fress.util.js.map +1 -0
  181. package/fress.writer.js +2141 -0
  182. package/fress.writer.js.map +1 -0
  183. package/geheimnis.aes.js +132 -0
  184. package/geheimnis.aes.js.map +1 -0
  185. package/hasch.base64.js +42 -0
  186. package/hasch.base64.js.map +1 -0
  187. package/hasch.benc.js +201 -0
  188. package/hasch.benc.js.map +1 -0
  189. package/hasch.core.js +188 -0
  190. package/hasch.core.js.map +1 -0
  191. package/hasch.platform.js +221 -0
  192. package/hasch.platform.js.map +1 -0
  193. package/incognito.base.js +276 -0
  194. package/incognito.base.js.map +1 -0
  195. package/incognito.edn.js +54 -0
  196. package/incognito.edn.js.map +1 -0
  197. package/incognito.fressian.js +330 -0
  198. package/incognito.fressian.js.map +1 -0
  199. package/index.d.ts +660 -0
  200. package/is.simm.partial_cps.async.js +142 -0
  201. package/is.simm.partial_cps.async.js.map +1 -0
  202. package/is.simm.partial_cps.runtime.js +65 -0
  203. package/is.simm.partial_cps.runtime.js.map +1 -0
  204. package/is.simm.partial_cps.sequence.js +1255 -0
  205. package/is.simm.partial_cps.sequence.js.map +1 -0
  206. package/konserve.cache.js +2519 -0
  207. package/konserve.cache.js.map +1 -0
  208. package/konserve.compressor.js +502 -0
  209. package/konserve.compressor.js.map +1 -0
  210. package/konserve.core.js +8052 -0
  211. package/konserve.core.js.map +1 -0
  212. package/konserve.encryptor.js +553 -0
  213. package/konserve.encryptor.js.map +1 -0
  214. package/konserve.gc.js +541 -0
  215. package/konserve.gc.js.map +1 -0
  216. package/konserve.impl.defaults.js +8290 -0
  217. package/konserve.impl.defaults.js.map +1 -0
  218. package/konserve.impl.storage_layout.js +849 -0
  219. package/konserve.impl.storage_layout.js.map +1 -0
  220. package/konserve.memory.js +2102 -0
  221. package/konserve.memory.js.map +1 -0
  222. package/konserve.node_filestore.js +2951 -0
  223. package/konserve.node_filestore.js.map +1 -0
  224. package/konserve.protocols.js +590 -0
  225. package/konserve.protocols.js.map +1 -0
  226. package/konserve.serializers.js +562 -0
  227. package/konserve.serializers.js.map +1 -0
  228. package/konserve.store.js +2245 -0
  229. package/konserve.store.js.map +1 -0
  230. package/konserve.tiered.js +9574 -0
  231. package/konserve.tiered.js.map +1 -0
  232. package/konserve.utils.js +180 -0
  233. package/konserve.utils.js.map +1 -0
  234. package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
  235. package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
  236. package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
  237. package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
  238. package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
  239. package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
  240. package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
  241. package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
  242. package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
  243. package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
  244. package/me.tonsky.persistent_sorted_set.js +890 -0
  245. package/me.tonsky.persistent_sorted_set.js.map +1 -0
  246. package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
  247. package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
  248. package/me.tonsky.persistent_sorted_set.util.js +402 -0
  249. package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
  250. package/medley.core.js +1857 -0
  251. package/medley.core.js.map +1 -0
  252. package/package.json +38 -0
  253. package/spec_tools.core.js +1925 -0
  254. package/spec_tools.core.js.map +1 -0
  255. package/spec_tools.data_spec.js +1291 -0
  256. package/spec_tools.data_spec.js.map +1 -0
  257. package/spec_tools.form.js +185 -0
  258. package/spec_tools.form.js.map +1 -0
  259. package/spec_tools.impl.js +362 -0
  260. package/spec_tools.impl.js.map +1 -0
  261. package/spec_tools.parse.js +427 -0
  262. package/spec_tools.parse.js.map +1 -0
  263. package/spec_tools.transform.js +288 -0
  264. package/spec_tools.transform.js.map +1 -0
  265. package/superv.async.js +8617 -0
  266. package/superv.async.js.map +1 -0
  267. package/tailrecursion.priority_map.js +994 -0
  268. package/tailrecursion.priority_map.js.map +1 -0
  269. package/taoensso.encore.js +12385 -0
  270. package/taoensso.encore.js.map +1 -0
  271. package/taoensso.timbre.appenders.core.js +239 -0
  272. package/taoensso.timbre.appenders.core.js.map +1 -0
  273. package/taoensso.timbre.js +1264 -0
  274. package/taoensso.timbre.js.map +1 -0
  275. package/taoensso.truss.impl.js +442 -0
  276. package/taoensso.truss.impl.js.map +1 -0
  277. package/taoensso.truss.js +743 -0
  278. package/taoensso.truss.js.map +1 -0
  279. package/test-config-keys.js +33 -0
  280. package/test-final.js +36 -0
  281. package/test-key-duplication.js +67 -0
  282. package/test.js +557 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["cljs/cache.cljs"],"mappings":"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","names":["cljs$cache$CacheProtocol$lookup$dyn","x__5350__auto__","m__5351__auto__","cljs.cache/lookup","goog/typeOf","m__5349__auto__","cljs.core/missing-protocol","var_args","G__44624","js/Error","cljs$cache$CacheProtocol$has_QMARK_$dyn","cljs.cache/has?","cljs$cache$CacheProtocol$hit$dyn","cljs.cache/hit","cljs$cache$CacheProtocol$miss$dyn","cljs.cache/miss","cljs$cache$CacheProtocol$evict$dyn","cljs.cache/evict","cljs$cache$CacheProtocol$seed$dyn","cljs.cache/seed","cljs.cache/CacheProtocol","cache","e","not-found","ret","base","p1__44672#","p2__44673#","cljs.cache/default-wrapper-fn","G__44679","cljs.cache/through","item","cljs.cache.through","cljs.core/identity","value-fn","wrap-fn","G__44682","p1__44676#","G__44683","G__44692","cljs.cache/through-cache","cljs.cache.through_cache","G__44703","p1__44686#","G__44704","this__44459__auto__","other__44466__auto__","cljs.core._EQ_","elem__44465__auto__","fexpr__44725","fexpr__44730","cljs.core/-count","___44462__auto__","cljs.core/-seq","cljs.core/PROTOCOL_SENTINEL","k__44463__auto__","v__44464__auto__","key__44460__auto__","not-found__44461__auto__","this__5287__auto__","writer__5288__auto__","opt__5289__auto__","cljs.core/-write","cljs.cache/BasicCache","cljs.cache/->BasicCache","_","cljs.core.get","cljs.core/contains?","this","result","cljs.core.assoc","key","cljs.core.dissoc","cljs.cache/get-time","js/Date","cljs.cache/key-killer-fn","ttl","expiry","now","p1__44783#","ks","cljs.core.map","cljs.core/key","p1__44782#","cljs.core.filter","cljs.core/val","cljs.core.apply","cljs.core/dissoc","fexpr__44800","fexpr__44802","cljs.cache/TTLCache","cljs.cache/->TTLCache","ttl-ms","t","kill-old","cljs.core.into","iter__5480__auto__","s__44826","cljs.core/LazySeq","temp__5804__auto__","cljs.core/seq","cljs.core/chunked-seq?","c__5478__auto__","size__5479__auto__","cljs.core/count","b__44828","cljs.core/chunk-buffer","i__44827","cljs.core/-nth","cljs.core/chunk-append","cljs.core/chunk-cons","cljs.core/chunk","iter__44825","cljs.core/chunk-rest","cljs.core/first","cljs.core/cons","cljs.core/rest","x","cljs.cache/build-leastness-queue","limit","start-at","tailrecursion.priority-map/priority-map","cljs.core.concat","cljs.core.take","s__44849","b__44851","i__44850","iter__44848","k","cljs.core.range","s__44906","b__44908","i__44907","vec__44914","cljs.core.nth","iter__44905","vec__44922","fexpr__44946","fexpr__44952","cljs.cache/LRUCache","cljs.cache/->LRUCache","lru","tick","tick+","cljs.core/peek","c","l","cljs.cache/basic-cache-factory","cljs.core/map?","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","cljs.cache/ttl-cache-factory","p__45102","map__45103","cljs.core/--destructure-map","seq45052","G__45053","cljs.core/next","self__5711__auto__","cljs.cache/lru-cache-factory","p__45141","map__45142","seq45129","G__45130","threshold","cljs.core/chunk-first"],"sourcesContent":["; Copyright (c) Rich Hickey. All rights reserved.\n; The use and distribution terms for this software are covered by the\n; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n; which can be found in the file epl-v10.html at the root of this distribution.\n; By using this software in any fashion, you are agreeing to be bound by\n; the terms of this license.\n; You must not remove this notice, or any other, from this software.\n\n\n(ns ^{:doc \"A port of clojure/core.cache to Clojurescript\"\n :author \"Matt Burbidge\"}\n cljs.cache\n (:require [tailrecursion.priority-map :refer [priority-map]])\n (:require-macros [cljs.cache :refer [defcache]]))\n\n(defprotocol CacheProtocol\n \"This is the protocol describing the basic cache capability.\"\n (lookup [cache e]\n [cache e not-found]\n \"Retrieve the value associated with `e` if it exists, else `nil` in\n the 2-arg case. Retrieve the value associated with `e` if it exists,\n else `not-found` in the 3-arg case.\")\n (has? [cache e]\n \"Checks if the cache contains a value associated with `e`\")\n (hit [cache e]\n \"Is meant to be called if the cache is determined to contain a value\n associated with `e`\")\n (miss [cache e ret]\n \"Is meant to be called if the cache is determined to **not** contain a\n value associated with `e`\")\n (evict [cache e]\n \"Removes an entry from the cache\")\n (seed [cache base]\n \"Is used to signal that the cache should be created with a seed.\n The contract is that said cache should return an instance of its\n own type.\"))\n\n(def ^{:private true} default-wrapper-fn #(%1 %2))\n\n(defn through\n \"The basic hit/miss logic for the cache system. Expects a wrap function and\n value function. The wrap function takes the value function and the item in\n question and is expected to run the value function with the item whenever a\n cache miss occurs. The intent is to hide any cache-specific cells from\n leaking into the cache logic itelf.\"\n ([cache item] (through default-wrapper-fn identity cache item))\n ([value-fn cache item] (through default-wrapper-fn value-fn cache item))\n ([wrap-fn value-fn cache item]\n (if (has? cache item)\n (hit cache item)\n (miss cache item (wrap-fn #(value-fn %) item)))))\n\n(defn through-cache\n \"The basic hit/miss logic for the cache system. Like through but always has\n the cache argument in the first position for easier use with swap! etc.\"\n ([cache item] (through-cache cache item default-wrapper-fn identity))\n ([cache item value-fn] (through-cache cache item default-wrapper-fn value-fn))\n ([cache item wrap-fn value-fn]\n (if (cljs.cache/has? cache item)\n (cljs.cache/hit cache item)\n (cljs.cache/miss cache item (wrap-fn #(value-fn %) item)))))\n\n(defcache BasicCache [cache]\n CacheProtocol\n (lookup [_ item]\n (get cache item))\n (lookup [_ item not-found]\n (get cache item not-found))\n (has? [_ item]\n (contains? cache item))\n (hit [this item] this)\n (miss [_ item result]\n (BasicCache. (assoc cache item result)))\n (evict [_ key]\n (BasicCache. (dissoc cache key)))\n (seed [_ base]\n (BasicCache. base))\n Object\n (toString [_] (str cache)))\n\n;; TTL Cache\n\n(defn- get-time []\n (.getTime (js/Date.)))\n\n(defn- key-killer-fn\n \"returns a fn that dissocs expired keys from a map\"\n [ttl expiry now]\n (let [ks (map key (filter #(> (- now (val %)) expiry) ttl))]\n #(apply dissoc % ks)))\n\n(defcache TTLCache [cache ttl ttl-ms]\n CacheProtocol\n (lookup [this item]\n (let [ret (lookup this item ::nope)]\n (when-not (= ret ::nope) ret)))\n (lookup [this item not-found]\n (if (has? this item)\n (get cache item)\n not-found))\n (has? [_ item]\n (let [t (get ttl item (- ttl-ms))]\n (< (- (get-time)\n t)\n ttl-ms)))\n (hit [this item] this)\n (miss [this item result]\n (let [now (get-time)\n kill-old (key-killer-fn ttl ttl-ms now)]\n (TTLCache. (assoc (kill-old cache) item result)\n (assoc (kill-old ttl) item now)\n ttl-ms)))\n (seed [_ base]\n (let [now (get-time)]\n (TTLCache. base\n (into {} (for [x base] [(key x) now]))\n ttl-ms)))\n (evict [_ key]\n (TTLCache. (dissoc cache key)\n (dissoc ttl key)\n ttl-ms))\n Object\n (toString [_]\n (str cache \\, \\space ttl \\, \\space ttl-ms)))\n\n;; LRU Cache\n\n(defn- build-leastness-queue\n [base limit start-at]\n (into (priority-map)\n (concat (take (- limit (count base)) (for [k (range (- limit) 0)] [k k]))\n (for [[k _] base] [k start-at]))))\n\n\n(defcache LRUCache [cache lru tick limit]\n CacheProtocol\n (lookup [_ item]\n (get cache item))\n (lookup [_ item not-found]\n (get cache item not-found))\n (has? [_ item]\n (contains? cache item))\n (hit [_ item]\n (let [tick+ (inc tick)]\n (LRUCache. cache\n (if (contains? cache item)\n (assoc lru item tick+)\n lru)\n tick+\n limit)))\n (miss [_ item result]\n (let [tick+ (inc tick)]\n (if (>= (count lru) limit)\n (let [k (if (contains? lru item)\n item\n (first (peek lru))) ;; minimum-key, maybe evict case\n c (-> cache (dissoc k) (assoc item result))\n l (-> lru (dissoc k) (assoc item tick+))]\n (LRUCache. c l tick+ limit))\n (LRUCache. (assoc cache item result) ;; no change case\n (assoc lru item tick+)\n tick+\n limit))))\n (evict [this key]\n (if (contains? cache key)\n (LRUCache. (dissoc cache key)\n (dissoc lru key)\n (inc tick)\n limit)\n this))\n (seed [_ base]\n (LRUCache. base\n (build-leastness-queue base limit 0)\n 0\n limit))\n Object\n (toString [_]\n (str cache \\, \\space lru \\, \\space tick \\, \\space limit)))\n\n\n;; Factories\n\n(defn basic-cache-factory\n \"Returns a pluggable basic cache initialied to `base`\"\n [base]\n {:pre [(map? base)]}\n (BasicCache. base))\n\n(defn ttl-cache-factory\n \"Returns a TTL cache with the cache and expiration-table initialied to `base` --\n each with the same time-to-live.\n\n This function also allows an optional `:ttl` argument that defines the default\n time in milliseconds that entries are allowed to reside in the cache.\"\n [base & {ttl :ttl :or {ttl 2000}}]\n {:pre [(number? ttl) (<= 0 ttl)\n (map? base)]}\n (seed (TTLCache. {} {} ttl) base))\n\n(defn lru-cache-factory\n \"Returns an LRU cache with the cache and usage-table initialied to `base` --\n each entry is initialized with the same usage value.\n This function takes an optional `:threshold` argument that defines the maximum number\n of elements in the cache before the LRU semantics apply (default is 32).\"\n [base & {threshold :threshold :or {threshold 32}}]\n {:pre [(number? threshold) (< 0 threshold)\n (map? base)]}\n (seed (LRUCache. {} (priority-map) 0 threshold) base))\n"],"x_google_ignoreList":[0]}
@@ -0,0 +1,352 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./cljs.cache.js");
6
+ var environ=$CLJS.environ || ($CLJS.environ = {});
7
+ var fress=$CLJS.fress || ($CLJS.fress = {});
8
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
9
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
10
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
11
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
12
+ var superv=$CLJS.superv || ($CLJS.superv = {});
13
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
14
+ var is=$CLJS.is || ($CLJS.is = {});
15
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
16
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
17
+ var goog=$CLJS.goog || ($CLJS.goog = {});
18
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
19
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
20
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
21
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
22
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
23
+ var medley=$CLJS.medley || ($CLJS.medley = {});
24
+ var me=$CLJS.me || ($CLJS.me = {});
25
+
26
+ $CLJS.SHADOW_ENV.setLoaded("cljs.cache.wrapped.js");
27
+
28
+ goog.provide('cljs.cache.wrapped');
29
+ /**
30
+ * Retrieve the value associated with `e` if it exists, else `nil` in
31
+ * the 2-arg case. Retrieve the value associated with `e` if it exists,
32
+ * else `not-found` in the 3-arg case.
33
+ *
34
+ * Reads from the current version of the atom.
35
+ */
36
+ cljs.cache.wrapped.lookup = (function cljs$cache$wrapped$lookup(var_args){
37
+ var G__45166 = arguments.length;
38
+ switch (G__45166) {
39
+ case 2:
40
+ return cljs.cache.wrapped.lookup.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
41
+
42
+ break;
43
+ case 3:
44
+ return cljs.cache.wrapped.lookup.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
45
+
46
+ break;
47
+ default:
48
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
49
+
50
+ }
51
+ });
52
+
53
+ (cljs.cache.wrapped.lookup.cljs$core$IFn$_invoke$arity$2 = (function (cache_atom,e){
54
+ return cljs.cache.lookup(cljs.core.deref(cache_atom),e);
55
+ }));
56
+
57
+ (cljs.cache.wrapped.lookup.cljs$core$IFn$_invoke$arity$3 = (function (cache_atom,e,not_found){
58
+ return cljs.cache.lookup(cljs.core.deref(cache_atom),e,not_found);
59
+ }));
60
+
61
+ (cljs.cache.wrapped.lookup.cljs$lang$maxFixedArity = 3);
62
+
63
+ cljs.cache.wrapped.default_wrapper_fn = (function cljs$cache$wrapped$default_wrapper_fn(p1__45178_SHARP_,p2__45179_SHARP_){
64
+ return (p1__45178_SHARP_.cljs$core$IFn$_invoke$arity$1 ? p1__45178_SHARP_.cljs$core$IFn$_invoke$arity$1(p2__45179_SHARP_) : p1__45178_SHARP_.call(null, p2__45179_SHARP_));
65
+ });
66
+ /**
67
+ * Retrieve the value associated with `e` if it exists, else compute the
68
+ * value (using value-fn, and optionally wrap-fn), update the cache for `e`
69
+ * and then perform the lookup again.
70
+ *
71
+ * value-fn (and wrap-fn) will only be called (at most) once even in the
72
+ * case of retries, so there is no risk of cache stampede.
73
+ *
74
+ * Since lookup can cause invalidation in some caches (such as TTL), we
75
+ * trap that case and retry (a maximum of ten times).
76
+ */
77
+ cljs.cache.wrapped.lookup_or_miss = (function cljs$cache$wrapped$lookup_or_miss(var_args){
78
+ var G__45192 = arguments.length;
79
+ switch (G__45192) {
80
+ case 3:
81
+ return cljs.cache.wrapped.lookup_or_miss.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
82
+
83
+ break;
84
+ case 4:
85
+ return cljs.cache.wrapped.lookup_or_miss.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
86
+
87
+ break;
88
+ default:
89
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
90
+
91
+ }
92
+ });
93
+
94
+ (cljs.cache.wrapped.lookup_or_miss.cljs$core$IFn$_invoke$arity$3 = (function (cache_atom,e,value_fn){
95
+ return cljs.cache.wrapped.lookup_or_miss.cljs$core$IFn$_invoke$arity$4(cache_atom,e,cljs.cache.wrapped.default_wrapper_fn,value_fn);
96
+ }));
97
+
98
+ (cljs.cache.wrapped.lookup_or_miss.cljs$core$IFn$_invoke$arity$4 = (function (cache_atom,e,wrap_fn,value_fn){
99
+ var d_new_value = (new cljs.core.Delay((function (){
100
+ return (wrap_fn.cljs$core$IFn$_invoke$arity$2 ? wrap_fn.cljs$core$IFn$_invoke$arity$2(value_fn,e) : wrap_fn.call(null, value_fn,e));
101
+ }),null));
102
+ var n = (0);
103
+ var v = cljs.cache.lookup(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cache_atom,cljs.cache.through_cache,e,cljs.cache.wrapped.default_wrapper_fn,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([((function (n,d_new_value){
104
+ return (function (_){
105
+ return cljs.core.deref(d_new_value);
106
+ });})(n,d_new_value))
107
+ ], 0)),e,new cljs.core.Keyword("cljs.cache.wrapped","expired","cljs.cache.wrapped/expired",1047049468));
108
+ while(true){
109
+ if((n < (10))){
110
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword("cljs.cache.wrapped","expired","cljs.cache.wrapped/expired",1047049468),v)){
111
+ var G__45366 = (n + (1));
112
+ var G__45367 = cljs.cache.lookup(cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cache_atom,cljs.cache.through_cache,e,cljs.cache.wrapped.default_wrapper_fn,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([((function (n,v,d_new_value){
113
+ return (function (_){
114
+ return cljs.core.deref(d_new_value);
115
+ });})(n,v,d_new_value))
116
+ ], 0)),e,new cljs.core.Keyword("cljs.cache.wrapped","expired","cljs.cache.wrapped/expired",1047049468));
117
+ n = G__45366;
118
+ v = G__45367;
119
+ continue;
120
+ } else {
121
+ return v;
122
+ }
123
+ } else {
124
+ return null;
125
+ }
126
+ break;
127
+ }
128
+ }));
129
+
130
+ (cljs.cache.wrapped.lookup_or_miss.cljs$lang$maxFixedArity = 4);
131
+
132
+ /**
133
+ * Checks if the cache contains a value associated with `e`.
134
+ *
135
+ * Reads from the current version of the atom.
136
+ */
137
+ cljs.cache.wrapped.has_QMARK_ = (function cljs$cache$wrapped$has_QMARK_(cache_atom,e){
138
+ return cljs.cache.has_QMARK_(cljs.core.deref(cache_atom),e);
139
+ });
140
+ /**
141
+ * Is meant to be called if the cache is determined to contain a value
142
+ * associated with `e`.
143
+ *
144
+ * Returns the updated cache from the atom. Provided for completeness.
145
+ */
146
+ cljs.cache.wrapped.hit = (function cljs$cache$wrapped$hit(cache_atom,e){
147
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cache_atom,cljs.cache.hit,e);
148
+ });
149
+ /**
150
+ * Is meant to be called if the cache is determined to **not** contain a
151
+ * value associated with `e`.
152
+ *
153
+ * Returns the updated cache from the atom. Provided for completeness.
154
+ */
155
+ cljs.cache.wrapped.miss = (function cljs$cache$wrapped$miss(cache_atom,e,ret){
156
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(cache_atom,cljs.cache.miss,e,ret);
157
+ });
158
+ /**
159
+ * Removes an entry from the cache.
160
+ *
161
+ * Returns the updated cache from the atom.
162
+ */
163
+ cljs.cache.wrapped.evict = (function cljs$cache$wrapped$evict(cache_atom,e){
164
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cache_atom,cljs.cache.evict,e);
165
+ });
166
+ /**
167
+ * Is used to signal that the cache should be created with a seed.
168
+ * The contract is that said cache should return an instance of its
169
+ * own type.
170
+ *
171
+ * Returns the updated cache from the atom. Provided for completeness.
172
+ */
173
+ cljs.cache.wrapped.seed = (function cljs$cache$wrapped$seed(cache_atom,base){
174
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(cache_atom,cljs.cache.seed,base);
175
+ });
176
+ /**
177
+ * The basic hit/miss logic for the cache system. Expects a wrap function and
178
+ * value function. The wrap function takes the value function and the item in question
179
+ * and is expected to run the value function with the item whenever a cache
180
+ * miss occurs. The intent is to hide any cache-specific cells from leaking
181
+ * into the cache logic itelf.
182
+ */
183
+ cljs.cache.wrapped.through = (function cljs$cache$wrapped$through(var_args){
184
+ var G__45283 = arguments.length;
185
+ switch (G__45283) {
186
+ case 2:
187
+ return cljs.cache.wrapped.through.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
188
+
189
+ break;
190
+ case 3:
191
+ return cljs.cache.wrapped.through.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
192
+
193
+ break;
194
+ case 4:
195
+ return cljs.cache.wrapped.through.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
196
+
197
+ break;
198
+ default:
199
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
200
+
201
+ }
202
+ });
203
+
204
+ (cljs.cache.wrapped.through.cljs$core$IFn$_invoke$arity$2 = (function (cache_atom,item){
205
+ return cljs.cache.wrapped.through.cljs$core$IFn$_invoke$arity$4(cljs.cache.wrapped.default_wrapper_fn,cljs.core.identity,cache_atom,item);
206
+ }));
207
+
208
+ (cljs.cache.wrapped.through.cljs$core$IFn$_invoke$arity$3 = (function (value_fn,cache_atom,item){
209
+ return cljs.cache.wrapped.through.cljs$core$IFn$_invoke$arity$4(cljs.cache.wrapped.default_wrapper_fn,value_fn,cache_atom,item);
210
+ }));
211
+
212
+ (cljs.cache.wrapped.through.cljs$core$IFn$_invoke$arity$4 = (function (wrap_fn,value_fn,cache_atom,item){
213
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cache_atom,cljs.cache.through_cache,item,wrap_fn,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([value_fn], 0));
214
+ }));
215
+
216
+ (cljs.cache.wrapped.through.cljs$lang$maxFixedArity = 4);
217
+
218
+ /**
219
+ * The basic hit/miss logic for the cache system. Like through but always has
220
+ * the cache argument in the first position.
221
+ */
222
+ cljs.cache.wrapped.through_cache = (function cljs$cache$wrapped$through_cache(var_args){
223
+ var G__45292 = arguments.length;
224
+ switch (G__45292) {
225
+ case 2:
226
+ return cljs.cache.wrapped.through_cache.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
227
+
228
+ break;
229
+ case 3:
230
+ return cljs.cache.wrapped.through_cache.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
231
+
232
+ break;
233
+ case 4:
234
+ return cljs.cache.wrapped.through_cache.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
235
+
236
+ break;
237
+ default:
238
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
239
+
240
+ }
241
+ });
242
+
243
+ (cljs.cache.wrapped.through_cache.cljs$core$IFn$_invoke$arity$2 = (function (cache_atom,item){
244
+ return cljs.cache.wrapped.through_cache.cljs$core$IFn$_invoke$arity$4(cache_atom,item,cljs.cache.wrapped.default_wrapper_fn,cljs.core.identity);
245
+ }));
246
+
247
+ (cljs.cache.wrapped.through_cache.cljs$core$IFn$_invoke$arity$3 = (function (cache_atom,item,value_fn){
248
+ return cljs.cache.wrapped.through_cache.cljs$core$IFn$_invoke$arity$4(cache_atom,item,cljs.cache.wrapped.default_wrapper_fn,value_fn);
249
+ }));
250
+
251
+ (cljs.cache.wrapped.through_cache.cljs$core$IFn$_invoke$arity$4 = (function (cache_atom,item,wrap_fn,value_fn){
252
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(cache_atom,cljs.cache.through_cache,item,wrap_fn,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([value_fn], 0));
253
+ }));
254
+
255
+ (cljs.cache.wrapped.through_cache.cljs$lang$maxFixedArity = 4);
256
+
257
+ /**
258
+ * Returns a pluggable basic cache initialized to `base`
259
+ */
260
+ cljs.cache.wrapped.basic_cache_factory = (function cljs$cache$wrapped$basic_cache_factory(base){
261
+ return cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.cache.basic_cache_factory(base));
262
+ });
263
+ /**
264
+ * Returns an LRU cache with the cache and usage-table initialized to `base` --
265
+ * each entry is initialized with the same usage value.
266
+ *
267
+ * This function takes an optional `:threshold` argument that defines the maximum number
268
+ * of elements in the cache before the LRU semantics apply (default is 32).
269
+ */
270
+ cljs.cache.wrapped.lru_cache_factory = (function cljs$cache$wrapped$lru_cache_factory(var_args){
271
+ var args__5732__auto__ = [];
272
+ var len__5726__auto___45377 = arguments.length;
273
+ var i__5727__auto___45378 = (0);
274
+ while(true){
275
+ if((i__5727__auto___45378 < len__5726__auto___45377)){
276
+ args__5732__auto__.push((arguments[i__5727__auto___45378]));
277
+
278
+ var G__45379 = (i__5727__auto___45378 + (1));
279
+ i__5727__auto___45378 = G__45379;
280
+ continue;
281
+ } else {
282
+ }
283
+ break;
284
+ }
285
+
286
+ var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
287
+ return cljs.cache.wrapped.lru_cache_factory.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
288
+ });
289
+
290
+ (cljs.cache.wrapped.lru_cache_factory.cljs$core$IFn$_invoke$arity$variadic = (function (base,p__45318){
291
+ var map__45319 = p__45318;
292
+ var map__45319__$1 = cljs.core.__destructure_map(map__45319);
293
+ var threshold = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45319__$1,new cljs.core.Keyword(null,"threshold","threshold",204221583),(32));
294
+ return cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.cache.lru_cache_factory.cljs$core$IFn$_invoke$arity$variadic(base,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"threshold","threshold",204221583),threshold], 0)));
295
+ }));
296
+
297
+ (cljs.cache.wrapped.lru_cache_factory.cljs$lang$maxFixedArity = (1));
298
+
299
+ /** @this {Function} */
300
+ (cljs.cache.wrapped.lru_cache_factory.cljs$lang$applyTo = (function (seq45308){
301
+ var G__45309 = cljs.core.first(seq45308);
302
+ var seq45308__$1 = cljs.core.next(seq45308);
303
+ var self__5711__auto__ = this;
304
+ return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45309,seq45308__$1);
305
+ }));
306
+
307
+ /**
308
+ * Returns a TTL cache with the cache and expiration-table initialized to `base` --
309
+ * each with the same time-to-live.
310
+ *
311
+ * This function also allows an optional `:ttl` argument that defines the default
312
+ * time in milliseconds that entries are allowed to reside in the cache.
313
+ */
314
+ cljs.cache.wrapped.ttl_cache_factory = (function cljs$cache$wrapped$ttl_cache_factory(var_args){
315
+ var args__5732__auto__ = [];
316
+ var len__5726__auto___45450 = arguments.length;
317
+ var i__5727__auto___45451 = (0);
318
+ while(true){
319
+ if((i__5727__auto___45451 < len__5726__auto___45450)){
320
+ args__5732__auto__.push((arguments[i__5727__auto___45451]));
321
+
322
+ var G__45452 = (i__5727__auto___45451 + (1));
323
+ i__5727__auto___45451 = G__45452;
324
+ continue;
325
+ } else {
326
+ }
327
+ break;
328
+ }
329
+
330
+ var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
331
+ return cljs.cache.wrapped.ttl_cache_factory.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
332
+ });
333
+
334
+ (cljs.cache.wrapped.ttl_cache_factory.cljs$core$IFn$_invoke$arity$variadic = (function (base,p__45341){
335
+ var map__45342 = p__45341;
336
+ var map__45342__$1 = cljs.core.__destructure_map(map__45342);
337
+ var ttl = cljs.core.get.cljs$core$IFn$_invoke$arity$3(map__45342__$1,new cljs.core.Keyword(null,"ttl","ttl",-1115275118),(2000));
338
+ return cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.cache.ttl_cache_factory.cljs$core$IFn$_invoke$arity$variadic(base,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"ttl","ttl",-1115275118),ttl], 0)));
339
+ }));
340
+
341
+ (cljs.cache.wrapped.ttl_cache_factory.cljs$lang$maxFixedArity = (1));
342
+
343
+ /** @this {Function} */
344
+ (cljs.cache.wrapped.ttl_cache_factory.cljs$lang$applyTo = (function (seq45334){
345
+ var G__45336 = cljs.core.first(seq45334);
346
+ var seq45334__$1 = cljs.core.next(seq45334);
347
+ var self__5711__auto__ = this;
348
+ return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__45336,seq45334__$1);
349
+ }));
350
+
351
+
352
+ //# sourceMappingURL=cljs.cache.wrapped.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["cljs/cache/wrapped.cljs"],"mappings":"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","names":["var_args","G__45166","cljs.cache.wrapped/lookup","js/Error","cache-atom","e","cljs.core/deref","cljs.cache/lookup","not-found","p1__45178#","p2__45179#","cljs.cache.wrapped/default-wrapper-fn","G__45192","cljs.cache.wrapped/lookup-or-miss","value-fn","cljs.cache.wrapped.lookup_or_miss","wrap-fn","d-new-value","cljs.core/Delay","n","v","cljs.core.swap_BANG_","cljs.cache/through-cache","_","cljs.core._EQ_","cljs.cache.wrapped/has?","cljs.cache/has?","cljs.cache.wrapped/hit","cljs.cache/hit","cljs.cache.wrapped/miss","ret","cljs.cache/miss","cljs.cache.wrapped/evict","cljs.cache/evict","cljs.cache.wrapped/seed","base","cljs.cache/seed","G__45283","cljs.cache.wrapped/through","item","cljs.cache.wrapped.through","cljs.core/identity","G__45292","cljs.cache.wrapped/through-cache","cljs.cache.wrapped.through_cache","cljs.cache.wrapped/basic-cache-factory","cljs.core.atom","cljs.cache/basic-cache-factory","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","cljs.cache.wrapped/lru-cache-factory","p__45318","map__45319","cljs.core/--destructure-map","cljs.core.get","seq45308","G__45309","cljs.core/first","cljs.core/next","self__5711__auto__","threshold","cljs.cache.lru_cache_factory","cljs.cache.wrapped/ttl-cache-factory","p__45341","map__45342","seq45334","G__45336","ttl","cljs.cache.ttl_cache_factory"],"sourcesContent":["(ns cljs.cache.wrapped\n \"A higher level way to use clojure.core.cache that assumes the immutable\n cache is wrapped in an atom.\n\n The API is (almost) the same as clojure.core.cache -- including the factory\n functions -- but instead of accepting immutable caches, the functions\n here accept atoms containing those caches. The factory functions return\n new atoms containing the newly created cache.\n\n In addition, lookup-or-miss provides a safe, atomic way to retrieve a\n value from a cache or compute it if it is missing, without risking a\n cache stampede.\"\n (:require [cljs.cache :as c]))\n\n\n(defn lookup\n \"Retrieve the value associated with `e` if it exists, else `nil` in\n the 2-arg case. Retrieve the value associated with `e` if it exists,\n else `not-found` in the 3-arg case.\n\n Reads from the current version of the atom.\"\n ([cache-atom e]\n (c/lookup @cache-atom e))\n ([cache-atom e not-found]\n (c/lookup @cache-atom e not-found)))\n\n(def ^{:private true} default-wrapper-fn #(%1 %2))\n\n(defn lookup-or-miss\n \"Retrieve the value associated with `e` if it exists, else compute the\n value (using value-fn, and optionally wrap-fn), update the cache for `e`\n and then perform the lookup again.\n\n value-fn (and wrap-fn) will only be called (at most) once even in the\n case of retries, so there is no risk of cache stampede.\n\n Since lookup can cause invalidation in some caches (such as TTL), we\n trap that case and retry (a maximum of ten times).\"\n ([cache-atom e value-fn]\n (lookup-or-miss cache-atom e default-wrapper-fn value-fn))\n ([cache-atom e wrap-fn value-fn]\n (let [d-new-value (delay (wrap-fn value-fn e))]\n (loop [n 0\n v (c/lookup (swap! cache-atom\n c/through-cache\n e\n default-wrapper-fn\n (fn [_] @d-new-value))\n e\n ::expired)]\n (when (< n 10)\n (if (= ::expired v)\n (recur (inc n)\n (c/lookup (swap! cache-atom\n c/through-cache\n e\n default-wrapper-fn\n (fn [_] @d-new-value))\n e\n ::expired))\n v))))))\n\n(defn has?\n \"Checks if the cache contains a value associated with `e`.\n\n Reads from the current version of the atom.\"\n [cache-atom e]\n (c/has? @cache-atom e))\n\n(defn hit\n \"Is meant to be called if the cache is determined to contain a value\n associated with `e`.\n\n Returns the updated cache from the atom. Provided for completeness.\"\n [cache-atom e]\n (swap! cache-atom c/hit e))\n\n(defn miss\n \"Is meant to be called if the cache is determined to **not** contain a\n value associated with `e`.\n\n Returns the updated cache from the atom. Provided for completeness.\"\n [cache-atom e ret]\n (swap! cache-atom c/miss e ret))\n\n(defn evict\n \"Removes an entry from the cache.\n\n Returns the updated cache from the atom.\"\n [cache-atom e]\n (swap! cache-atom c/evict e))\n\n(defn seed\n \"Is used to signal that the cache should be created with a seed.\n The contract is that said cache should return an instance of its\n own type.\n\n Returns the updated cache from the atom. Provided for completeness.\"\n [cache-atom base]\n (swap! cache-atom c/seed base))\n\n(defn through\n \"The basic hit/miss logic for the cache system. Expects a wrap function and\n value function. The wrap function takes the value function and the item in question\n and is expected to run the value function with the item whenever a cache\n miss occurs. The intent is to hide any cache-specific cells from leaking\n into the cache logic itelf.\"\n ([cache-atom item] (through default-wrapper-fn identity cache-atom item))\n ([value-fn cache-atom item] (through default-wrapper-fn value-fn cache-atom item))\n ([wrap-fn value-fn cache-atom item]\n (swap! cache-atom c/through-cache item wrap-fn value-fn)))\n\n(defn through-cache\n \"The basic hit/miss logic for the cache system. Like through but always has\n the cache argument in the first position.\"\n ([cache-atom item] (through-cache cache-atom item default-wrapper-fn identity))\n ([cache-atom item value-fn] (through-cache cache-atom item default-wrapper-fn value-fn))\n ([cache-atom item wrap-fn value-fn]\n (swap! cache-atom c/through-cache item wrap-fn value-fn)))\n\n(defn basic-cache-factory\n \"Returns a pluggable basic cache initialized to `base`\"\n [base]\n (atom (c/basic-cache-factory base)))\n\n; (defn fifo-cache-factory\n; \"Returns a FIFO cache with the cache and FIFO queue initialized to `base` --\n; the queue is filled as the values are pulled out of `base`. If the associative\n; structure can guarantee ordering, then the said ordering will define the\n; eventual eviction order. Otherwise, there are no guarantees for the eventual\n; eviction ordering.\n;\n; This function takes an optional `:threshold` argument that defines the maximum number\n; of elements in the cache before the FIFO semantics apply (default is 32).\n;\n; If the number of elements in `base` is greater than the limit then some items\n; in `base` will be dropped from the resulting cache. If the associative\n; structure used as `base` can guarantee sorting, then the last `limit` elements\n; will be used as the cache seed values. Otherwise, there are no guarantees about\n; the elements in the resulting cache.\"\n; [base & {threshold :threshold :or {threshold 32}}]\n; (atom (c/fifo-cache-factory base :threshold threshold)))\n\n(defn lru-cache-factory\n \"Returns an LRU cache with the cache and usage-table initialized to `base` --\n each entry is initialized with the same usage value.\n\n This function takes an optional `:threshold` argument that defines the maximum number\n of elements in the cache before the LRU semantics apply (default is 32).\"\n [base & {threshold :threshold :or {threshold 32}}]\n (atom (c/lru-cache-factory base :threshold threshold)))\n\n(defn ttl-cache-factory\n \"Returns a TTL cache with the cache and expiration-table initialized to `base` --\n each with the same time-to-live.\n\n This function also allows an optional `:ttl` argument that defines the default\n time in milliseconds that entries are allowed to reside in the cache.\"\n [base & {ttl :ttl :or {ttl 2000}}]\n (atom (c/ttl-cache-factory base :ttl ttl)))\n\n; (defn lu-cache-factory\n; \"Returns an LU cache with the cache and usage-table initialized to `base`.\n;\n; This function takes an optional `:threshold` argument that defines the maximum number\n; of elements in the cache before the LU semantics apply (default is 32).\"\n; [base & {threshold :threshold :or {threshold 32}}]\n; (atom (c/lu-cache-factory base :threshold threshold)))\n;\n; (defn lirs-cache-factory\n; \"Returns an LIRS cache with the S & R LRU lists set to the indicated\n; limits.\"\n; [base & {:keys [s-history-limit q-history-limit]\n; :or {s-history-limit 32\n; q-history-limit 32}}]\n; (atom (c/lirs-cache-factory base\n; :s-history-limit s-history-limit\n; :q-history-limit q-history-limit)))\n\n; (defn soft-cache-factory\n; \"Returns a SoftReference cache. Cached values will be referred to with\n; SoftReferences, allowing the values to be garbage collected when there is\n; memory pressure on the JVM.\n;\n; SoftCache is a mutable cache, since it is always based on a\n; ConcurrentHashMap.\"\n; [base]\n; (atom (c/soft-cache-factory base)))\n"],"x_google_ignoreList":[0]}