Comments (4)
I’m planning to add this functionality as I’m often find myself in need for reset!
to swap DB value without transaction, but with listeners. Best you can do right now is probably something like this:
(defn db-reset! [conn db]
(let [report (datascript.core/map->TxReport { :db-before @conn, :db-after db})]
(reset! conn db)
(doseq [[_ callback] @(:listeners (meta conn))]
(callback report))))
It depends on some internals, but should fit for now until I add something like this to the API.
from datascript.
It’ll be wonderful when this gets added. When it does get implemented, it might be best to implement it as a transaction function that can be used in transact!
, like :db/add
and :db.fn/cas
, instead of (or in addition to) a function like the above code, which acts directly on connections.
from datascript.
@cigitia yep, sounds reasonable
On Sat, Feb 28, 2015 at 10:03 PM cigitia [email protected] wrote:
It’ll be wonderful when this gets added. When it does get implemented, it
might be best to implement it as a transaction function that can be used in
transact!, like :db/add and :db.fn/cas, rather than a function separate
from transact! that acts directly on connections.—
Reply to this email directly or view it on GitHub
#45 (comment).
from datascript.
Just added reset-conn!
function to reset database value inside a conn and trigger all listeners. Usage example: https://github.com/tonsky/datascript/blob/master/test/datascript/test/conn.cljc
@cigitia I would pass on your idea for now, if you need that kind of function inside a transaction it’s not that hard to build for youself. Transactions totally support user-provided functions
from datascript.
Related Issues (20)
- Cannot compare xxx to xxx HOT 4
- Difference in pull query output between 1.0.1 and 1.3.11 HOT 3
- :db/cas should take a function HOT 3
- Nil values when building clojurescript for chrome extension HOT 3
- equality on ^Entity bypasses db HOT 3
- Improve Skypack "Package Score" for better devX HOT 2
- Attribute of composite tuple starting with colon is not working in js HOT 1
- How to hotfix aot code ?
- How to hot fix aot code?
- Rules - Required bindings doesn't evaluate correctly HOT 1
- Datascript101 link is dead HOT 1
- `get-else` fails when passed a lookup.
- `entity` returns entities for ids that don't exist HOT 2
- Is there any doc to demo idiom way to implement pagination in datascript? HOT 4
- Upsert of datom with composite tuple containing lookup ref fails HOT 5
- Recursive reverse lookups not working quite like it should HOT 1
- Lookup ref in composite tuple during upsert HOT 1
- do we have double vector type? HOT 2
- `:xform` is not called on ref attributes HOT 2
- Query performance with rules is much worse than "equivalent" inline clause HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from datascript.