-
-
Notifications
You must be signed in to change notification settings - Fork 95
/
api.cljc
36 lines (35 loc) · 1.38 KB
/
api.cljc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
(ns datahike.api
"Public API for datahike. Expanded from api.specification."
(:refer-clojure :exclude [filter])
(:require [datahike.connector :as dc]
[datahike.config :as config]
[datahike.api.specification :refer [api-specification spec-args->argslist]]
[datahike.api.impl]
[clojure.spec.alpha :as s]
[datahike.writer :as dw]
[datahike.http.writer]
[datahike.writing :as writing]
[datahike.constants :as const]
[datahike.core :as dcore]
[datahike.spec :as spec]
[datahike.pull-api :as dp]
[datahike.query :as dq]
[datahike.schema :as ds]
[datahike.tools :as dt]
[datahike.db :as db #?@(:cljs [:refer [HistoricalDB AsOfDB SinceDB FilteredDB]])]
[datahike.db.interface :as dbi]
[datahike.db.transaction :as dbt]
[datahike.impl.entity :as de])
#?(:clj
(:import [clojure.lang Keyword PersistentArrayMap]
[datahike.db HistoricalDB AsOfDB SinceDB FilteredDB]
[datahike.impl.entity Entity])))
(doseq [[n {:keys [args ret fn doc impl]}] api-specification]
(eval
`(s/fdef ~n :args ~args :ret ~ret ~@(when fn [:fn fn])))
(eval
`(def
~(with-meta n
{:arglists `(spec-args->argslist (quote ~args))
:doc doc})
~impl)))