@anysoftinc/anydb-sdk
Version:
AnyDB TypeScript SDK for querying and transacting with Datomic databases
815 lines (684 loc) • 33.7 kB
JavaScript
var $CLJS = require("./cljs_env");
var $jscomp = $CLJS.$jscomp;
var COMPILED = false;
require("./cljs.core.js");
require("./datascript.db.js");
require("./datascript.storage.js");
require("./extend_clj.core.js");
require("./me.tonsky.persistent_sorted_set.js");
var anydb=$CLJS.anydb || ($CLJS.anydb = {});
var clojure=$CLJS.clojure || ($CLJS.clojure = {});
var cljs=$CLJS.cljs || ($CLJS.cljs = {});
var goog=$CLJS.goog || ($CLJS.goog = {});
var datascript=$CLJS.datascript || ($CLJS.datascript = {});
var me=$CLJS.me || ($CLJS.me = {});
var extend_clj=$CLJS.extend_clj || ($CLJS.extend_clj = {});
$CLJS.SHADOW_ENV.setLoaded("datascript.conn.js");
goog.provide('datascript.conn');
/**
* @constructor
* @implements {cljs.core.IWatchable}
* @implements {cljs.core.IEquiv}
* @implements {cljs.core.IHash}
* @implements {cljs.core.IReset}
* @implements {cljs.core.ISwap}
* @implements {cljs.core.IMeta}
* @implements {cljs.core.IDeref}
* @implements {extend_clj.core.IAtom3}
* @implements {cljs.core.ILookup}
*/
datascript.conn.Conn = (function (atom,validator,watches,meta){
this.atom = atom;
this.validator = validator;
this.watches = watches;
this.meta = meta;
this.cljs$lang$protocol_mask$partition1$ = 98306;
this.cljs$lang$protocol_mask$partition0$ = 6455552;
});
(datascript.conn.Conn.prototype.equiv = (function (other__8011__auto__){
var self__ = this;
var this__8010__auto__ = this;
return this__8010__auto__.cljs$core$IEquiv$_equiv$arity$2(null,other__8011__auto__);
}));
(datascript.conn.Conn.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = (function (this__8010__auto__,oldv__8018__auto__,newv__8013__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
var seq__13524 = cljs.core.seq(self__.watches);
var chunk__13525 = null;
var count__13526 = (0);
var i__13527 = (0);
while(true){
if((i__13527 < count__13526)){
var vec__13534 = chunk__13525.cljs$core$IIndexed$_nth$arity$2(null,i__13527);
var k__8019__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13534,(0),null);
var f__8014__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13534,(1),null);
(f__8014__auto__.cljs$core$IFn$_invoke$arity$4 ? f__8014__auto__.cljs$core$IFn$_invoke$arity$4(k__8019__auto__,this__8010__auto____$1,oldv__8018__auto__,newv__8013__auto__) : f__8014__auto__.call(null,k__8019__auto__,this__8010__auto____$1,oldv__8018__auto__,newv__8013__auto__));
var G__13732 = seq__13524;
var G__13733 = chunk__13525;
var G__13734 = count__13526;
var G__13735 = (i__13527 + (1));
seq__13524 = G__13732;
chunk__13525 = G__13733;
count__13526 = G__13734;
i__13527 = G__13735;
continue;
} else {
var temp__5804__auto__ = cljs.core.seq(seq__13524);
if(temp__5804__auto__){
var seq__13524__$1 = temp__5804__auto__;
if(cljs.core.chunked_seq_QMARK_(seq__13524__$1)){
var c__5525__auto__ = cljs.core.chunk_first(seq__13524__$1);
var G__13736 = cljs.core.chunk_rest(seq__13524__$1);
var G__13737 = c__5525__auto__;
var G__13738 = cljs.core.count(c__5525__auto__);
var G__13739 = (0);
seq__13524 = G__13736;
chunk__13525 = G__13737;
count__13526 = G__13738;
i__13527 = G__13739;
continue;
} else {
var vec__13541 = cljs.core.first(seq__13524__$1);
var k__8019__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13541,(0),null);
var f__8014__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13541,(1),null);
(f__8014__auto__.cljs$core$IFn$_invoke$arity$4 ? f__8014__auto__.cljs$core$IFn$_invoke$arity$4(k__8019__auto__,this__8010__auto____$1,oldv__8018__auto__,newv__8013__auto__) : f__8014__auto__.call(null,k__8019__auto__,this__8010__auto____$1,oldv__8018__auto__,newv__8013__auto__));
var G__13740 = cljs.core.next(seq__13524__$1);
var G__13741 = null;
var G__13742 = (0);
var G__13743 = (0);
seq__13524 = G__13740;
chunk__13525 = G__13741;
count__13526 = G__13742;
i__13527 = G__13743;
continue;
}
} else {
return null;
}
}
break;
}
}));
(datascript.conn.Conn.prototype.cljs$core$IWatchable$_add_watch$arity$3 = (function (this__8010__auto__,key__8020__auto__,f__8014__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
(this__8010__auto____$1.watches = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.watches,key__8020__auto__,f__8014__auto__));
return this__8010__auto____$1;
}));
(datascript.conn.Conn.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = (function (this__8010__auto__,key__8020__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return (this__8010__auto____$1.watches = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.watches,key__8020__auto__));
}));
(datascript.conn.Conn.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (o__8012__auto__,other__8011__auto__){
var self__ = this;
var o__8012__auto____$1 = this;
return (o__8012__auto____$1 === other__8011__auto__);
}));
(datascript.conn.Conn.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__8010__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return goog.getUid(this__8010__auto____$1);
}));
(datascript.conn.Conn.prototype.cljs$core$IReset$_reset_BANG_$arity$2 = (function (this__8010__auto__,newv__8013__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(this__8010__auto____$1.extend_clj$core$IAtom3$swap_STAR_$arity$3(null,cljs.core.constantly(newv__8013__auto__),cljs.core.List.EMPTY),(1));
}));
(datascript.conn.Conn.prototype.cljs$core$ISwap$_swap_BANG_$arity$2 = (function (this__8010__auto__,f__8014__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(this__8010__auto____$1.extend_clj$core$IAtom3$swap_STAR_$arity$3(null,f__8014__auto__,cljs.core.List.EMPTY),(1));
}));
(datascript.conn.Conn.prototype.cljs$core$ISwap$_swap_BANG_$arity$3 = (function (this__8010__auto__,f__8014__auto__,a__8015__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(this__8010__auto____$1.extend_clj$core$IAtom3$swap_STAR_$arity$3(null,f__8014__auto__,(new cljs.core.List(null,a__8015__auto__,null,(1),null))),(1));
}));
(datascript.conn.Conn.prototype.cljs$core$ISwap$_swap_BANG_$arity$4 = (function (this__8010__auto__,f__8014__auto__,a__8015__auto__,b__8016__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(this__8010__auto____$1.extend_clj$core$IAtom3$swap_STAR_$arity$3(null,f__8014__auto__,(new cljs.core.List(null,a__8015__auto__,(new cljs.core.List(null,b__8016__auto__,null,(1),null)),(2),null))),(1));
}));
(datascript.conn.Conn.prototype.cljs$core$ISwap$_swap_BANG_$arity$5 = (function (this__8010__auto__,f__8014__auto__,a__8015__auto__,b__8016__auto__,xs__8017__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return cljs.core.nth.cljs$core$IFn$_invoke$arity$2(this__8010__auto____$1.extend_clj$core$IAtom3$swap_STAR_$arity$3(null,f__8014__auto__,cljs.core.cons(a__8015__auto__,cljs.core.cons(b__8016__auto__,xs__8017__auto__))),(1));
}));
(datascript.conn.Conn.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__8010__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return self__.meta;
}));
(datascript.conn.Conn.prototype.cljs$core$IDeref$_deref$arity$1 = (function (this__8010__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return this__8010__auto____$1.extend_clj$core$IAtom3$deref_impl$arity$1(null);
}));
(datascript.conn.Conn.prototype.extend_clj$core$IAtom3$ = cljs.core.PROTOCOL_SENTINEL);
(datascript.conn.Conn.prototype.extend_clj$core$IAtom3$validate$arity$3 = (function (this__8010__auto__,validator__8022__auto__,value__8023__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
if((!((validator__8022__auto__ == null)))){
if(cljs.core.truth_((validator__8022__auto__.cljs$core$IFn$_invoke$arity$1 ? validator__8022__auto__.cljs$core$IFn$_invoke$arity$1(value__8023__auto__) : validator__8022__auto__.call(null,value__8023__auto__)))){
return null;
} else {
throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Invalid reference state",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"value","value",305978217),value__8023__auto__], null));
}
} else {
return null;
}
}));
(datascript.conn.Conn.prototype.extend_clj$core$IAtom3$notify_watches$arity$3 = (function (this__8010__auto__,oldv__8018__auto__,newv__8013__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
var seq__13557 = cljs.core.seq(self__.watches);
var chunk__13558 = null;
var count__13559 = (0);
var i__13560 = (0);
while(true){
if((i__13560 < count__13559)){
var vec__13568 = chunk__13558.cljs$core$IIndexed$_nth$arity$2(null,i__13560);
var k__8019__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13568,(0),null);
var w__8024__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13568,(1),null);
(w__8024__auto__.cljs$core$IFn$_invoke$arity$4 ? w__8024__auto__.cljs$core$IFn$_invoke$arity$4(k__8019__auto__,this__8010__auto____$1,oldv__8018__auto__,newv__8013__auto__) : w__8024__auto__.call(null,k__8019__auto__,this__8010__auto____$1,oldv__8018__auto__,newv__8013__auto__));
var G__13747 = seq__13557;
var G__13748 = chunk__13558;
var G__13749 = count__13559;
var G__13750 = (i__13560 + (1));
seq__13557 = G__13747;
chunk__13558 = G__13748;
count__13559 = G__13749;
i__13560 = G__13750;
continue;
} else {
var temp__5804__auto__ = cljs.core.seq(seq__13557);
if(temp__5804__auto__){
var seq__13557__$1 = temp__5804__auto__;
if(cljs.core.chunked_seq_QMARK_(seq__13557__$1)){
var c__5525__auto__ = cljs.core.chunk_first(seq__13557__$1);
var G__13751 = cljs.core.chunk_rest(seq__13557__$1);
var G__13752 = c__5525__auto__;
var G__13753 = cljs.core.count(c__5525__auto__);
var G__13754 = (0);
seq__13557 = G__13751;
chunk__13558 = G__13752;
count__13559 = G__13753;
i__13560 = G__13754;
continue;
} else {
var vec__13571 = cljs.core.first(seq__13557__$1);
var k__8019__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13571,(0),null);
var w__8024__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13571,(1),null);
(w__8024__auto__.cljs$core$IFn$_invoke$arity$4 ? w__8024__auto__.cljs$core$IFn$_invoke$arity$4(k__8019__auto__,this__8010__auto____$1,oldv__8018__auto__,newv__8013__auto__) : w__8024__auto__.call(null,k__8019__auto__,this__8010__auto____$1,oldv__8018__auto__,newv__8013__auto__));
var G__13762 = cljs.core.next(seq__13557__$1);
var G__13763 = null;
var G__13764 = (0);
var G__13765 = (0);
seq__13557 = G__13762;
chunk__13558 = G__13763;
count__13559 = G__13764;
i__13560 = G__13765;
continue;
}
} else {
return null;
}
}
break;
}
}));
(datascript.conn.Conn.prototype.extend_clj$core$IAtom3$swap_STAR_$arity$3 = (function (this__8010__auto__,f__8014__auto__,args__8025__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
var oldv__8018__auto__ = cljs.core.deref(this__8010__auto____$1);
var newv__8013__auto__ = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f__8014__auto__,oldv__8018__auto__,args__8025__auto__);
this__8010__auto____$1.extend_clj$core$IAtom3$validate$arity$3(null,self__.validator,newv__8013__auto__);
this__8010__auto____$1.extend_clj$core$IAtom3$compare_and_set_impl$arity$3(null,oldv__8018__auto__,newv__8013__auto__);
this__8010__auto____$1.extend_clj$core$IAtom3$notify_watches$arity$3(null,oldv__8018__auto__,newv__8013__auto__);
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [oldv__8018__auto__,newv__8013__auto__], null);
}));
(datascript.conn.Conn.prototype.extend_clj$core$IAtom3$deref_impl$arity$1 = (function (this$){
var self__ = this;
var this$__$1 = this;
return new cljs.core.Keyword(null,"db","db",993250759).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(self__.atom));
}));
(datascript.conn.Conn.prototype.extend_clj$core$IAtom3$compare_and_set_impl$arity$3 = (function (this$,oldv,newv){
var self__ = this;
var this$__$1 = this;
return cljs.core.compare_and_set_BANG_(self__.atom,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.atom),new cljs.core.Keyword(null,"db","db",993250759),oldv),cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(self__.atom),new cljs.core.Keyword(null,"db","db",993250759),newv));
}));
(datascript.conn.Conn.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__8010__auto__,k__8019__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
return this__8010__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__8019__auto__,null);
}));
(datascript.conn.Conn.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__8010__auto__,k__8019__auto__,not_found__8021__auto__){
var self__ = this;
var this__8010__auto____$1 = this;
var G__13585 = k__8019__auto__;
var G__13585__$1 = (((G__13585 instanceof cljs.core.Keyword))?G__13585.fqn:null);
switch (G__13585__$1) {
case "atom":
return self__.atom;
break;
default:
return not_found__8021__auto__;
}
}));
(datascript.conn.Conn.getBasis = (function (){
return new cljs.core.PersistentVector(null, 4, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"atom","atom",1243487874,null),new cljs.core.Symbol(null,"validator","validator",-325659154,null),new cljs.core.Symbol(null,"watches","watches",1367433992,null),new cljs.core.Symbol(null,"meta","meta",-1154898805,null)], null);
}));
(datascript.conn.Conn.cljs$lang$type = true);
(datascript.conn.Conn.cljs$lang$ctorStr = "datascript.conn/Conn");
(datascript.conn.Conn.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
return cljs.core._write(writer__5288__auto__,"datascript.conn/Conn");
}));
/**
* Positional factory function for datascript.conn/Conn.
*/
datascript.conn.__GT_Conn = (function datascript$conn$__GT_Conn(atom,validator,watches,meta){
return (new datascript.conn.Conn(atom,validator,watches,meta));
});
datascript.conn.__GT_Conn = (function datascript$conn$__GT_Conn(var_args){
var G__13600 = arguments.length;
switch (G__13600) {
case 1:
return datascript.conn.__GT_Conn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
default:
var args_arr__5751__auto__ = [];
var len__5726__auto___13769 = arguments.length;
var i__5727__auto___13772 = (0);
while(true){
if((i__5727__auto___13772 < len__5726__auto___13769)){
args_arr__5751__auto__.push((arguments[i__5727__auto___13772]));
var G__13773 = (i__5727__auto___13772 + (1));
i__5727__auto___13772 = G__13773;
continue;
} else {
}
break;
}
var argseq__5752__auto__ = ((((1) < args_arr__5751__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5751__auto__.slice((1)),(0),null)):null);
return datascript.conn.__GT_Conn.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5752__auto__);
}
});
(datascript.conn.__GT_Conn.cljs$core$IFn$_invoke$arity$1 = (function (atom){
return (new datascript.conn.Conn(atom,null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY));
}));
(datascript.conn.__GT_Conn.cljs$core$IFn$_invoke$arity$variadic = (function (atom,rest__8026__auto__){
var opts__8027__auto__ = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.array_map,rest__8026__auto__);
var ref__8028__auto__ = (new datascript.conn.Conn(atom,null,cljs.core.PersistentArrayMap.EMPTY,cljs.core.PersistentArrayMap.EMPTY));
var temp__5808__auto___13774 = new cljs.core.Keyword(null,"validator","validator",-1966190681).cljs$core$IFn$_invoke$arity$1(opts__8027__auto__);
if((temp__5808__auto___13774 == null)){
} else {
var validator__8022__auto___13776 = temp__5808__auto___13774;
ref__8028__auto__.extend_clj$core$IAtom3$validate$arity$3(null,validator__8022__auto___13776,cljs.core.deref(ref__8028__auto__));
(ref__8028__auto__.validator = validator__8022__auto___13776);
}
var temp__5808__auto___13777 = new cljs.core.Keyword(null,"meta","meta",1499536964).cljs$core$IFn$_invoke$arity$1(opts__8027__auto__);
if((temp__5808__auto___13777 == null)){
} else {
var meta__8030__auto___13778 = temp__5808__auto___13777;
cljs.core.reset_meta_BANG_(ref__8028__auto__,meta__8030__auto___13778);
}
return ref__8028__auto__;
}));
/** @this {Function} */
(datascript.conn.__GT_Conn.cljs$lang$applyTo = (function (seq13598){
var G__13599 = cljs.core.first(seq13598);
var seq13598__$1 = cljs.core.next(seq13598);
var self__5711__auto__ = this;
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__13599,seq13598__$1);
}));
(datascript.conn.__GT_Conn.cljs$lang$maxFixedArity = (1));
datascript.conn.make_conn = (function datascript$conn$make_conn(opts){
var G__13608 = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(opts);
return (datascript.conn.__GT_Conn.cljs$core$IFn$_invoke$arity$1 ? datascript.conn.__GT_Conn.cljs$core$IFn$_invoke$arity$1(G__13608) : datascript.conn.__GT_Conn.call(null,G__13608));
});
datascript.conn.with$ = (function datascript$conn$with(var_args){
var G__13614 = arguments.length;
switch (G__13614) {
case 2:
return datascript.conn.with$.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return datascript.conn.with$.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(datascript.conn.with$.cljs$core$IFn$_invoke$arity$2 = (function (db,tx_data){
return datascript.conn.with$.cljs$core$IFn$_invoke$arity$3(db,tx_data,null);
}));
(datascript.conn.with$.cljs$core$IFn$_invoke$arity$3 = (function (db,tx_data,tx_meta){
if(datascript.db.db_QMARK_(db)){
} else {
throw (new Error("Assert failed: (db/db? db)"));
}
if((db instanceof datascript.db.FilteredDB)){
throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Filtered DB cannot be modified",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("transaction","filtered","transaction/filtered",1699706605)], null));
} else {
return datascript.db.transact_tx_data(datascript.db.__GT_TxReport(db,db,cljs.core.PersistentVector.EMPTY,cljs.core.PersistentArrayMap.EMPTY,tx_meta),tx_data);
}
}));
(datascript.conn.with$.cljs$lang$maxFixedArity = 3);
/**
* Applies transaction to an immutable db value, returning new immutable db value. Same as `(:db-after (with db tx-data))`.
*/
datascript.conn.db_with = (function datascript$conn$db_with(db,tx_data){
if(datascript.db.db_QMARK_(db)){
} else {
throw (new Error("Assert failed: (db/db? db)"));
}
return new cljs.core.Keyword(null,"db-after","db-after",-571884666).cljs$core$IFn$_invoke$arity$1(datascript.conn.with$.cljs$core$IFn$_invoke$arity$2(db,tx_data));
});
datascript.conn.conn_QMARK_ = (function datascript$conn$conn_QMARK_(conn){
var and__5000__auto__ = (((!((conn == null))))?(((((conn.cljs$lang$protocol_mask$partition0$ & (32768))) || ((cljs.core.PROTOCOL_SENTINEL === conn.cljs$core$IDeref$))))?true:(((!conn.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,conn):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IDeref,conn));
if(and__5000__auto__){
var temp__5806__auto__ = cljs.core.deref(conn);
if((temp__5806__auto__ == null)){
return true;
} else {
var db = temp__5806__auto__;
return datascript.db.db_QMARK_(db);
}
} else {
return and__5000__auto__;
}
});
datascript.conn.conn_from_db = (function datascript$conn$conn_from_db(db){
if(datascript.db.db_QMARK_(db)){
} else {
throw (new Error("Assert failed: (db/db? db)"));
}
var temp__5806__auto__ = datascript.storage.storage(db);
if((temp__5806__auto__ == null)){
return datascript.conn.make_conn(new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"db","db",993250759),db], null));
} else {
var storage = temp__5806__auto__;
datascript.storage.store.cljs$core$IFn$_invoke$arity$1(db);
return datascript.conn.make_conn(new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"db","db",993250759),db,new cljs.core.Keyword(null,"tx-tail","tx-tail",1116487556),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"db-last-stored","db-last-stored",-2068760702),db], null));
}
});
datascript.conn.conn_from_datoms = (function datascript$conn$conn_from_datoms(var_args){
var G__13626 = arguments.length;
switch (G__13626) {
case 1:
return datascript.conn.conn_from_datoms.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return datascript.conn.conn_from_datoms.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return datascript.conn.conn_from_datoms.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(datascript.conn.conn_from_datoms.cljs$core$IFn$_invoke$arity$1 = (function (datoms){
return datascript.conn.conn_from_db(datascript.db.init_db(datoms,null,cljs.core.PersistentArrayMap.EMPTY));
}));
(datascript.conn.conn_from_datoms.cljs$core$IFn$_invoke$arity$2 = (function (datoms,schema){
return datascript.conn.conn_from_db(datascript.db.init_db(datoms,schema,cljs.core.PersistentArrayMap.EMPTY));
}));
(datascript.conn.conn_from_datoms.cljs$core$IFn$_invoke$arity$3 = (function (datoms,schema,opts){
return datascript.conn.conn_from_db(datascript.db.init_db(datoms,schema,datascript.storage.maybe_adapt_storage(opts)));
}));
(datascript.conn.conn_from_datoms.cljs$lang$maxFixedArity = 3);
datascript.conn.create_conn = (function datascript$conn$create_conn(var_args){
var G__13636 = arguments.length;
switch (G__13636) {
case 0:
return datascript.conn.create_conn.cljs$core$IFn$_invoke$arity$0();
break;
case 1:
return datascript.conn.create_conn.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return datascript.conn.create_conn.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(datascript.conn.create_conn.cljs$core$IFn$_invoke$arity$0 = (function (){
return datascript.conn.conn_from_db(datascript.db.empty_db(null,cljs.core.PersistentArrayMap.EMPTY));
}));
(datascript.conn.create_conn.cljs$core$IFn$_invoke$arity$1 = (function (schema){
return datascript.conn.conn_from_db(datascript.db.empty_db(schema,cljs.core.PersistentArrayMap.EMPTY));
}));
(datascript.conn.create_conn.cljs$core$IFn$_invoke$arity$2 = (function (schema,opts){
return datascript.conn.conn_from_db(datascript.db.empty_db(schema,datascript.storage.maybe_adapt_storage(opts)));
}));
(datascript.conn.create_conn.cljs$lang$maxFixedArity = 2);
datascript.conn._transact_BANG_ = (function datascript$conn$_transact_BANG_(conn,tx_data,tx_meta){
if(datascript.conn.conn_QMARK_(conn)){
} else {
throw (new Error("Assert failed: (conn? conn)"));
}
var _STAR_report = cljs.core.volatile_BANG_(null);
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(conn,(function (db){
var r = datascript.conn.with$.cljs$core$IFn$_invoke$arity$3(db,tx_data,tx_meta);
cljs.core.vreset_BANG_(_STAR_report,r);
return new cljs.core.Keyword(null,"db-after","db-after",-571884666).cljs$core$IFn$_invoke$arity$1(r);
}));
return cljs.core.deref(_STAR_report);
});
datascript.conn.transact_BANG_ = (function datascript$conn$transact_BANG_(var_args){
var G__13648 = arguments.length;
switch (G__13648) {
case 2:
return datascript.conn.transact_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return datascript.conn.transact_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(datascript.conn.transact_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (conn,tx_data){
return datascript.conn.transact_BANG_.cljs$core$IFn$_invoke$arity$3(conn,tx_data,null);
}));
(datascript.conn.transact_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (conn,tx_data,tx_meta){
if(datascript.conn.conn_QMARK_(conn)){
} else {
throw (new Error("Assert failed: (conn? conn)"));
}
var report = datascript.conn._transact_BANG_(conn,tx_data,tx_meta);
var seq__13650_13787 = cljs.core.seq(new cljs.core.Keyword(null,"listeners","listeners",394544445).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,"atom","atom",-397043653).cljs$core$IFn$_invoke$arity$1(conn))));
var chunk__13651_13788 = null;
var count__13652_13789 = (0);
var i__13653_13790 = (0);
while(true){
if((i__13653_13790 < count__13652_13789)){
var vec__13661_13791 = chunk__13651_13788.cljs$core$IIndexed$_nth$arity$2(null,i__13653_13790);
var __13792 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13661_13791,(0),null);
var callback_13793 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13661_13791,(1),null);
(callback_13793.cljs$core$IFn$_invoke$arity$1 ? callback_13793.cljs$core$IFn$_invoke$arity$1(report) : callback_13793.call(null,report));
var G__13797 = seq__13650_13787;
var G__13798 = chunk__13651_13788;
var G__13799 = count__13652_13789;
var G__13800 = (i__13653_13790 + (1));
seq__13650_13787 = G__13797;
chunk__13651_13788 = G__13798;
count__13652_13789 = G__13799;
i__13653_13790 = G__13800;
continue;
} else {
var temp__5804__auto___13801 = cljs.core.seq(seq__13650_13787);
if(temp__5804__auto___13801){
var seq__13650_13802__$1 = temp__5804__auto___13801;
if(cljs.core.chunked_seq_QMARK_(seq__13650_13802__$1)){
var c__5525__auto___13803 = cljs.core.chunk_first(seq__13650_13802__$1);
var G__13805 = cljs.core.chunk_rest(seq__13650_13802__$1);
var G__13806 = c__5525__auto___13803;
var G__13807 = cljs.core.count(c__5525__auto___13803);
var G__13808 = (0);
seq__13650_13787 = G__13805;
chunk__13651_13788 = G__13806;
count__13652_13789 = G__13807;
i__13653_13790 = G__13808;
continue;
} else {
var vec__13667_13809 = cljs.core.first(seq__13650_13802__$1);
var __13810 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13667_13809,(0),null);
var callback_13811 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13667_13809,(1),null);
(callback_13811.cljs$core$IFn$_invoke$arity$1 ? callback_13811.cljs$core$IFn$_invoke$arity$1(report) : callback_13811.call(null,report));
var G__13812 = cljs.core.next(seq__13650_13802__$1);
var G__13813 = null;
var G__13814 = (0);
var G__13815 = (0);
seq__13650_13787 = G__13812;
chunk__13651_13788 = G__13813;
count__13652_13789 = G__13814;
i__13653_13790 = G__13815;
continue;
}
} else {
}
}
break;
}
return report;
}));
(datascript.conn.transact_BANG_.cljs$lang$maxFixedArity = 3);
datascript.conn.reset_conn_BANG_ = (function datascript$conn$reset_conn_BANG_(var_args){
var G__13672 = arguments.length;
switch (G__13672) {
case 2:
return datascript.conn.reset_conn_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return datascript.conn.reset_conn_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(datascript.conn.reset_conn_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (conn,db){
return datascript.conn.reset_conn_BANG_.cljs$core$IFn$_invoke$arity$3(conn,db,null);
}));
(datascript.conn.reset_conn_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (conn,db,tx_meta){
if(datascript.conn.conn_QMARK_(conn)){
} else {
throw (new Error("Assert failed: (conn? conn)"));
}
if(datascript.db.db_QMARK_(db)){
} else {
throw (new Error("Assert failed: (db/db? db)"));
}
var db_before = cljs.core.deref(conn);
var report = datascript.db.map__GT_TxReport(new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"db-before","db-before",-553691536),db_before,new cljs.core.Keyword(null,"db-after","db-after",-571884666),db,new cljs.core.Keyword(null,"tx-data","tx-data",934159761),cljs.core.concat.cljs$core$IFn$_invoke$arity$2((cljs.core.truth_(db_before)?cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__13670_SHARP_){
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(p1__13670_SHARP_,new cljs.core.Keyword(null,"added","added",2057651688),false);
}),datascript.db._datoms(db_before,new cljs.core.Keyword(null,"eavt","eavt",-666437073),null,null,null,null)):null),datascript.db._datoms(db,new cljs.core.Keyword(null,"eavt","eavt",-666437073),null,null,null,null)),new cljs.core.Keyword(null,"tx-meta","tx-meta",1159283194),tx_meta], null));
var temp__5806__auto___13817 = datascript.storage.storage(db_before);
if((temp__5806__auto___13817 == null)){
cljs.core.reset_BANG_(conn,db);
} else {
var storage_13818 = temp__5806__auto___13817;
datascript.storage.store.cljs$core$IFn$_invoke$arity$1(db);
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.Keyword(null,"atom","atom",-397043653).cljs$core$IFn$_invoke$arity$1(conn),cljs.core.assoc,new cljs.core.Keyword(null,"db","db",993250759),db,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"tx-tail","tx-tail",1116487556),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"db-last-stored","db-last-stored",-2068760702),db], 0));
}
var seq__13687_13819 = cljs.core.seq(new cljs.core.Keyword(null,"listeners","listeners",394544445).cljs$core$IFn$_invoke$arity$1(cljs.core.deref(new cljs.core.Keyword(null,"atom","atom",-397043653).cljs$core$IFn$_invoke$arity$1(conn))));
var chunk__13688_13820 = null;
var count__13689_13821 = (0);
var i__13690_13822 = (0);
while(true){
if((i__13690_13822 < count__13689_13821)){
var vec__13701_13823 = chunk__13688_13820.cljs$core$IIndexed$_nth$arity$2(null,i__13690_13822);
var __13824 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13701_13823,(0),null);
var callback_13825 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13701_13823,(1),null);
(callback_13825.cljs$core$IFn$_invoke$arity$1 ? callback_13825.cljs$core$IFn$_invoke$arity$1(report) : callback_13825.call(null,report));
var G__13826 = seq__13687_13819;
var G__13827 = chunk__13688_13820;
var G__13828 = count__13689_13821;
var G__13829 = (i__13690_13822 + (1));
seq__13687_13819 = G__13826;
chunk__13688_13820 = G__13827;
count__13689_13821 = G__13828;
i__13690_13822 = G__13829;
continue;
} else {
var temp__5804__auto___13830 = cljs.core.seq(seq__13687_13819);
if(temp__5804__auto___13830){
var seq__13687_13831__$1 = temp__5804__auto___13830;
if(cljs.core.chunked_seq_QMARK_(seq__13687_13831__$1)){
var c__5525__auto___13832 = cljs.core.chunk_first(seq__13687_13831__$1);
var G__13833 = cljs.core.chunk_rest(seq__13687_13831__$1);
var G__13834 = c__5525__auto___13832;
var G__13835 = cljs.core.count(c__5525__auto___13832);
var G__13836 = (0);
seq__13687_13819 = G__13833;
chunk__13688_13820 = G__13834;
count__13689_13821 = G__13835;
i__13690_13822 = G__13836;
continue;
} else {
var vec__13708_13837 = cljs.core.first(seq__13687_13831__$1);
var __13838 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13708_13837,(0),null);
var callback_13839 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__13708_13837,(1),null);
(callback_13839.cljs$core$IFn$_invoke$arity$1 ? callback_13839.cljs$core$IFn$_invoke$arity$1(report) : callback_13839.call(null,report));
var G__13840 = cljs.core.next(seq__13687_13831__$1);
var G__13841 = null;
var G__13842 = (0);
var G__13843 = (0);
seq__13687_13819 = G__13840;
chunk__13688_13820 = G__13841;
count__13689_13821 = G__13842;
i__13690_13822 = G__13843;
continue;
}
} else {
}
}
break;
}
return db;
}));
(datascript.conn.reset_conn_BANG_.cljs$lang$maxFixedArity = 3);
datascript.conn.reset_schema_BANG_ = (function datascript$conn$reset_schema_BANG_(conn,schema){
if(datascript.conn.conn_QMARK_(conn)){
} else {
throw (new Error("Assert failed: (conn? conn)"));
}
var db = cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(conn,datascript.db.with_schema,schema);
return db;
});
datascript.conn.listen_BANG_ = (function datascript$conn$listen_BANG_(var_args){
var G__13722 = arguments.length;
switch (G__13722) {
case 2:
return datascript.conn.listen_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return datascript.conn.listen_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(datascript.conn.listen_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (conn,callback){
return datascript.conn.listen_BANG_.cljs$core$IFn$_invoke$arity$3(conn,cljs.core.rand.cljs$core$IFn$_invoke$arity$0(),callback);
}));
(datascript.conn.listen_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (conn,key,callback){
if(datascript.conn.conn_QMARK_(conn)){
} else {
throw (new Error("Assert failed: (conn? conn)"));
}
cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.Keyword(null,"atom","atom",-397043653).cljs$core$IFn$_invoke$arity$1(conn),cljs.core.update,new cljs.core.Keyword(null,"listeners","listeners",394544445),cljs.core.assoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([key,callback], 0));
return key;
}));
(datascript.conn.listen_BANG_.cljs$lang$maxFixedArity = 3);
datascript.conn.unlisten_BANG_ = (function datascript$conn$unlisten_BANG_(conn,key){
if(datascript.conn.conn_QMARK_(conn)){
} else {
throw (new Error("Assert failed: (conn? conn)"));
}
return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.Keyword(null,"atom","atom",-397043653).cljs$core$IFn$_invoke$arity$1(conn),cljs.core.update,new cljs.core.Keyword(null,"listeners","listeners",394544445),cljs.core.dissoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([key], 0));
});
//# sourceMappingURL=datascript.conn.js.map