85 lines
3.1 KiB
JavaScript
85 lines
3.1 KiB
JavaScript
goog.provide('re_frame.utils');
|
|
/**
|
|
* Dissociates an entry from a nested associative structure returning a new
|
|
* nested structure. keys is a sequence of keys. Any empty maps that result
|
|
* will not be present in the new structure.
|
|
* The key thing is that 'm' remains identical? to itself if the path was never present
|
|
*/
|
|
re_frame.utils.dissoc_in = (function re_frame$utils$dissoc_in(m,p__51827){
|
|
var vec__51828 = p__51827;
|
|
var seq__51829 = cljs.core.seq(vec__51828);
|
|
var first__51830 = cljs.core.first(seq__51829);
|
|
var seq__51829__$1 = cljs.core.next(seq__51829);
|
|
var k = first__51830;
|
|
var ks = seq__51829__$1;
|
|
var keys = vec__51828;
|
|
if(ks){
|
|
var temp__5802__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(m,k);
|
|
if(cljs.core.truth_(temp__5802__auto__)){
|
|
var nextmap = temp__5802__auto__;
|
|
var newmap = (re_frame.utils.dissoc_in.cljs$core$IFn$_invoke$arity$2 ? re_frame.utils.dissoc_in.cljs$core$IFn$_invoke$arity$2(nextmap,ks) : re_frame.utils.dissoc_in.call(null,nextmap,ks));
|
|
if(cljs.core.seq(newmap)){
|
|
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(m,k,newmap);
|
|
} else {
|
|
return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);
|
|
}
|
|
} else {
|
|
return m;
|
|
}
|
|
} else {
|
|
return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(m,k);
|
|
}
|
|
});
|
|
re_frame.utils.first_in_vector = (function re_frame$utils$first_in_vector(v){
|
|
if(cljs.core.vector_QMARK_(v)){
|
|
return cljs.core.first(v);
|
|
} else {
|
|
return re_frame.loggers.console.cljs$core$IFn$_invoke$arity$variadic(new cljs.core.Keyword(null,"error","error",-978969032),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2(["re-frame: expected a vector, but got:",v], 0));
|
|
}
|
|
});
|
|
/**
|
|
* Like apply, but f takes keyword arguments and the last argument is
|
|
* not a seq but a map with the arguments for f
|
|
*/
|
|
re_frame.utils.apply_kw = (function re_frame$utils$apply_kw(var_args){
|
|
var args__5755__auto__ = [];
|
|
var len__5749__auto___51835 = arguments.length;
|
|
var i__5750__auto___51836 = (0);
|
|
while(true){
|
|
if((i__5750__auto___51836 < len__5749__auto___51835)){
|
|
args__5755__auto__.push((arguments[i__5750__auto___51836]));
|
|
|
|
var G__51837 = (i__5750__auto___51836 + (1));
|
|
i__5750__auto___51836 = G__51837;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);
|
|
return re_frame.utils.apply_kw.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__);
|
|
});
|
|
|
|
(re_frame.utils.apply_kw.cljs$core$IFn$_invoke$arity$variadic = (function (f,args){
|
|
if(cljs.core.map_QMARK_(cljs.core.last(args))){
|
|
} else {
|
|
throw (new Error("Assert failed: (map? (last args))"));
|
|
}
|
|
|
|
return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(f,cljs.core.apply.cljs$core$IFn$_invoke$arity$3(cljs.core.concat,cljs.core.butlast(args),cljs.core.last(args)));
|
|
}));
|
|
|
|
(re_frame.utils.apply_kw.cljs$lang$maxFixedArity = (1));
|
|
|
|
/** @this {Function} */
|
|
(re_frame.utils.apply_kw.cljs$lang$applyTo = (function (seq51833){
|
|
var G__51834 = cljs.core.first(seq51833);
|
|
var seq51833__$1 = cljs.core.next(seq51833);
|
|
var self__5734__auto__ = this;
|
|
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__51834,seq51833__$1);
|
|
}));
|
|
|
|
|
|
//# sourceMappingURL=re_frame.utils.js.map
|