Add latest datascript (#1185)

* Update datascript config

Add db ns, loads latest datascript and can load datascript-transit
library. All tests for pull.cljc and query.cljc pass except for queries
with fns as inputs

* Add datalog-parser to projects.md per #1171 comment
This commit is contained in:
Gabriel Horner 2022-02-22 08:17:58 -05:00 committed by GitHub
parent 1170e3cce7
commit 7126112cc3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 35 additions and 3 deletions

View file

@ -59,6 +59,7 @@ The following libraries and projects are known to work with babashka.
- [specmonstah](#specmonstah)
- [markdown-clj](#markdown-clj)
- [algo.monads](#algomonads)
- [datalog-parser](#datalog-parser)
- [Pods](#pods)
- [Projects](#projects-1)
- [babashka-test-action](#babashka-test-action)
@ -793,6 +794,10 @@ Markdown parser that translates markdown to html.
Macros for defining monads, and definition of the most common monads.
### [datalog-parser](https://github.com/lambdaforge/datalog-parser)
Datalog parser that is compliant with datomic, datascript and datahike.
## Pods
[Babashka pods](https://github.com/babashka/babashka.pods) are programs that can

View file

@ -1,12 +1,27 @@
(ns babashka.impl.datascript
{:no-doc true}
(:require [datascript.core :as d]
[datascript.db :as db]
[sci.impl.namespaces :refer [copy-var]]
[sci.impl.vars :as vars]))
(def datascript-ns (vars/->SciNamespace 'datascript.core nil))
(def datascript-db-ns (vars/->SciNamespace 'datascript.db nil))
(def datascript-namespace
{'create-conn (copy-var d/create-conn datascript-ns)
'transact! (copy-var d/transact! datascript-ns)
'q (copy-var d/q datascript-ns)})
'q (copy-var d/q datascript-ns)
'empty-db (copy-var d/empty-db datascript-ns)
'db-with (copy-var d/db-with datascript-ns)
'filter (copy-var d/filter datascript-ns)
'init-db (copy-var d/init-db datascript-ns)
'datom (copy-var d/datom datascript-ns)
'pull (copy-var d/pull datascript-ns)
'pull-many (copy-var d/pull-many datascript-ns)})
(def datascript-db-namespace
{'db-from-reader (copy-var db/db-from-reader datascript-db-ns)
'datom-from-reader (copy-var db/datom-from-reader datascript-db-ns)
'datom-added (copy-var db/datom-added datascript-db-ns)
'datom-tx (copy-var db/datom-tx datascript-db-ns)})

View file

@ -16,4 +16,5 @@
'reader (copy-var transit/reader tns)
'read-handler (copy-var transit/read-handler tns)
'read-handler-map (copy-var transit/read-handler-map tns)
'default-write-handlers (copy-var transit/default-write-handlers tns)
'tagged-value (copy-var transit/tagged-value tns)})

View file

@ -46,7 +46,7 @@
:feature/transit {:source-paths ["feature-transit"]
:dependencies [[com.cognitect/transit-clj "1.0.329"]]}
:feature/datascript {:source-paths ["feature-datascript"]
:dependencies [[datascript "1.0.1"]]}
:dependencies [[datascript "1.3.10"]]}
:feature/httpkit-client {:source-paths ["feature-httpkit-client"]
:dependencies [[http-kit "2.5.3"]]}
:feature/httpkit-server {:source-paths ["feature-httpkit-server"]

View file

@ -384,6 +384,16 @@
~(symbol "[I")
~(symbol "[Ljava.lang.Object;")
~(symbol "[Ljava.lang.Double;")
~@(when features/datascript?
`[me.tonsky.persistent_sorted_set.PersistentSortedSet
datascript.db.DB
datascript.db.Datom
~(symbol "[Lclojure.lang.Keyword;")
~(symbol "[Lclojure.lang.PersistentArrayMap;")
~(symbol "[Lclojure.lang.PersistentVector;")
~(symbol "[Lclojure.lang.PersistentHashSet;")
~(symbol "[Ljava.util.regex.Pattern;")
~(symbol "[Lclojure.core$range;")])
~@(when features/yaml? '[org.yaml.snakeyaml.error.YAMLException])
~@(when features/hsqldb? '[org.hsqldb.jdbcDriver])]
:constructors [clojure.lang.Delay

View file

@ -385,7 +385,8 @@ Use bb run --help to show this help output.
'next.jdbc.result-set @(resolve 'babashka.impl.jdbc/result-set-namespace))
features/csv? (assoc 'clojure.data.csv @(resolve 'babashka.impl.csv/csv-namespace))
features/transit? (assoc 'cognitect.transit @(resolve 'babashka.impl.transit/transit-namespace))
features/datascript? (assoc 'datascript.core @(resolve 'babashka.impl.datascript/datascript-namespace))
features/datascript? (assoc 'datascript.core @(resolve 'babashka.impl.datascript/datascript-namespace)
'datascript.db @(resolve 'babashka.impl.datascript/datascript-db-namespace))
features/httpkit-client? (assoc 'org.httpkit.client @(resolve 'babashka.impl.httpkit-client/httpkit-client-namespace)
'org.httpkit.sni-client @(resolve 'babashka.impl.httpkit-client/sni-client-namespace))
features/httpkit-server? (assoc 'org.httpkit.server @(resolve 'babashka.impl.httpkit-server/httpkit-server-namespace))