171 lines
8.7 KiB
JavaScript
171 lines
8.7 KiB
JavaScript
// Compiled by ClojureScript 1.9.229 {}
|
|
goog.provide('re_frame.events');
|
|
goog.require('cljs.core');
|
|
goog.require('re_frame.db');
|
|
goog.require('re_frame.utils');
|
|
goog.require('re_frame.interop');
|
|
goog.require('re_frame.registrar');
|
|
goog.require('re_frame.loggers');
|
|
goog.require('re_frame.interceptor');
|
|
goog.require('re_frame.trace');
|
|
re_frame.events.kind = new cljs.core.Keyword(null,"event","event",301435442);
|
|
if(cljs.core.truth_(re_frame.registrar.kinds.call(null,re_frame.events.kind))){
|
|
} else {
|
|
throw (new Error("Assert failed: (re-frame.registrar/kinds kind)"));
|
|
}
|
|
/**
|
|
* `interceptors` might have nested collections, and contain nil elements.
|
|
* return a flat collection, with all nils removed.
|
|
* This function is 9/10 about giving good error messages
|
|
*/
|
|
re_frame.events.flatten_and_remove_nils = (function re_frame$events$flatten_and_remove_nils(id,interceptors){
|
|
var make_chain = (function (p1__32773_SHARP_){
|
|
return cljs.core.remove.call(null,cljs.core.nil_QMARK_,cljs.core.flatten.call(null,p1__32773_SHARP_));
|
|
});
|
|
if(!(re_frame.interop.debug_enabled_QMARK_)){
|
|
return make_chain.call(null,interceptors);
|
|
} else {
|
|
if(cljs.core.coll_QMARK_.call(null,interceptors)){
|
|
} else {
|
|
re_frame.loggers.console.call(null,new cljs.core.Keyword(null,"error","error",-978969032),[cljs.core.str("re-frame: when registering "),cljs.core.str(id),cljs.core.str(", expected a collection of interceptors, got:")].join(''),interceptors);
|
|
}
|
|
|
|
var chain = make_chain.call(null,interceptors);
|
|
if(cljs.core.empty_QMARK_.call(null,chain)){
|
|
re_frame.loggers.console.call(null,new cljs.core.Keyword(null,"error","error",-978969032),[cljs.core.str("re-frame: when registering"),cljs.core.str(id),cljs.core.str(", given an empty interceptor chain")].join(''));
|
|
} else {
|
|
}
|
|
|
|
var temp__4657__auto___32774 = cljs.core.first.call(null,cljs.core.remove.call(null,re_frame.interceptor.interceptor_QMARK_,chain));
|
|
if(cljs.core.truth_(temp__4657__auto___32774)){
|
|
var not_i_32775 = temp__4657__auto___32774;
|
|
if(cljs.core.fn_QMARK_.call(null,not_i_32775)){
|
|
re_frame.loggers.console.call(null,new cljs.core.Keyword(null,"error","error",-978969032),[cljs.core.str("re-frame: when registering "),cljs.core.str(id),cljs.core.str(", got a function instead of an interceptor. Did you provide old style middleware by mistake? Got:")].join(''),not_i_32775);
|
|
} else {
|
|
re_frame.loggers.console.call(null,new cljs.core.Keyword(null,"error","error",-978969032),[cljs.core.str("re-frame: when registering "),cljs.core.str(id),cljs.core.str(", expected interceptors, but got:")].join(''),not_i_32775);
|
|
}
|
|
} else {
|
|
}
|
|
|
|
return chain;
|
|
}
|
|
});
|
|
/**
|
|
* Associate the given event `id` with the given collection of `interceptors`.
|
|
*
|
|
* `interceptors` may contain nested collections and there may be nils
|
|
* at any level,so process this structure into a simple, nil-less vector
|
|
* before registration.
|
|
*
|
|
* An `event handler` will likely be at the end of the chain (wrapped in an interceptor).
|
|
*/
|
|
re_frame.events.register = (function re_frame$events$register(id,interceptors){
|
|
return re_frame.registrar.register_handler.call(null,re_frame.events.kind,id,re_frame.events.flatten_and_remove_nils.call(null,id,interceptors));
|
|
});
|
|
re_frame.events._STAR_handling_STAR_ = null;
|
|
/**
|
|
* Given an event vector, look up the associated intercepter chain, and execute it.
|
|
*/
|
|
re_frame.events.handle = (function re_frame$events$handle(event_v){
|
|
var event_id = re_frame.utils.first_in_vector.call(null,event_v);
|
|
var temp__4655__auto__ = re_frame.registrar.get_handler.call(null,re_frame.events.kind,event_id,true);
|
|
if(cljs.core.truth_(temp__4655__auto__)){
|
|
var interceptors = temp__4655__auto__;
|
|
if(cljs.core.truth_(re_frame.events._STAR_handling_STAR_)){
|
|
return re_frame.loggers.console.call(null,new cljs.core.Keyword(null,"error","error",-978969032),[cljs.core.str("re-frame: while handling \""),cljs.core.str(re_frame.events._STAR_handling_STAR_),cljs.core.str("\", dispatch-sync was called for \""),cljs.core.str(event_v),cljs.core.str("\". You can't call dispatch-sync within an event handler.")].join(''));
|
|
} else {
|
|
var _STAR_handling_STAR_32790 = re_frame.events._STAR_handling_STAR_;
|
|
re_frame.events._STAR_handling_STAR_ = event_v;
|
|
|
|
try{if(re_frame.trace.is_trace_enabled_QMARK_.call(null)){
|
|
var _STAR_current_trace_STAR_32791 = re_frame.trace._STAR_current_trace_STAR_;
|
|
re_frame.trace._STAR_current_trace_STAR_ = re_frame.trace.start_trace.call(null,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"operation","operation",-1267664310),event_id,new cljs.core.Keyword(null,"op-type","op-type",-1636141668),re_frame.events.kind,new cljs.core.Keyword(null,"tags","tags",1771418977),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"event","event",301435442),event_v], null)], null));
|
|
|
|
try{try{return re_frame.interceptor.execute.call(null,event_v,interceptors);
|
|
}finally {if(re_frame.trace.is_trace_enabled_QMARK_.call(null)){
|
|
var end__32708__auto___32804 = re_frame.interop.now.call(null);
|
|
var duration__32709__auto___32805 = (end__32708__auto___32804 - new cljs.core.Keyword(null,"start","start",-355208981).cljs$core$IFn$_invoke$arity$1(re_frame.trace._STAR_current_trace_STAR_));
|
|
var seq__32792_32806 = cljs.core.seq.call(null,cljs.core.deref.call(null,re_frame.trace.trace_cbs));
|
|
var chunk__32793_32807 = null;
|
|
var count__32794_32808 = (0);
|
|
var i__32795_32809 = (0);
|
|
while(true){
|
|
if((i__32795_32809 < count__32794_32808)){
|
|
var vec__32796_32810 = cljs.core._nth.call(null,chunk__32793_32807,i__32795_32809);
|
|
var k__32710__auto___32811 = cljs.core.nth.call(null,vec__32796_32810,(0),null);
|
|
var cb__32711__auto___32812 = cljs.core.nth.call(null,vec__32796_32810,(1),null);
|
|
try{cb__32711__auto___32812.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.call(null,re_frame.trace._STAR_current_trace_STAR_,new cljs.core.Keyword(null,"duration","duration",1444101068),duration__32709__auto___32805,new cljs.core.Keyword(null,"end","end",-268185958),re_frame.interop.now.call(null))], null));
|
|
}catch (e32799){if((e32799 instanceof java.lang.Exception)){
|
|
var e__32712__auto___32813 = e32799;
|
|
re_frame.loggers.console.call(null,new cljs.core.Keyword(null,"error","error",-978969032),"Error thrown from trace cb",k__32710__auto___32811,"while storing",re_frame.trace._STAR_current_trace_STAR_,e__32712__auto___32813);
|
|
} else {
|
|
throw e32799;
|
|
|
|
}
|
|
}
|
|
var G__32814 = seq__32792_32806;
|
|
var G__32815 = chunk__32793_32807;
|
|
var G__32816 = count__32794_32808;
|
|
var G__32817 = (i__32795_32809 + (1));
|
|
seq__32792_32806 = G__32814;
|
|
chunk__32793_32807 = G__32815;
|
|
count__32794_32808 = G__32816;
|
|
i__32795_32809 = G__32817;
|
|
continue;
|
|
} else {
|
|
var temp__4657__auto___32818 = cljs.core.seq.call(null,seq__32792_32806);
|
|
if(temp__4657__auto___32818){
|
|
var seq__32792_32819__$1 = temp__4657__auto___32818;
|
|
if(cljs.core.chunked_seq_QMARK_.call(null,seq__32792_32819__$1)){
|
|
var c__25941__auto___32820 = cljs.core.chunk_first.call(null,seq__32792_32819__$1);
|
|
var G__32821 = cljs.core.chunk_rest.call(null,seq__32792_32819__$1);
|
|
var G__32822 = c__25941__auto___32820;
|
|
var G__32823 = cljs.core.count.call(null,c__25941__auto___32820);
|
|
var G__32824 = (0);
|
|
seq__32792_32806 = G__32821;
|
|
chunk__32793_32807 = G__32822;
|
|
count__32794_32808 = G__32823;
|
|
i__32795_32809 = G__32824;
|
|
continue;
|
|
} else {
|
|
var vec__32800_32825 = cljs.core.first.call(null,seq__32792_32819__$1);
|
|
var k__32710__auto___32826 = cljs.core.nth.call(null,vec__32800_32825,(0),null);
|
|
var cb__32711__auto___32827 = cljs.core.nth.call(null,vec__32800_32825,(1),null);
|
|
try{cb__32711__auto___32827.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.assoc.call(null,re_frame.trace._STAR_current_trace_STAR_,new cljs.core.Keyword(null,"duration","duration",1444101068),duration__32709__auto___32805,new cljs.core.Keyword(null,"end","end",-268185958),re_frame.interop.now.call(null))], null));
|
|
}catch (e32803){if((e32803 instanceof java.lang.Exception)){
|
|
var e__32712__auto___32828 = e32803;
|
|
re_frame.loggers.console.call(null,new cljs.core.Keyword(null,"error","error",-978969032),"Error thrown from trace cb",k__32710__auto___32826,"while storing",re_frame.trace._STAR_current_trace_STAR_,e__32712__auto___32828);
|
|
} else {
|
|
throw e32803;
|
|
|
|
}
|
|
}
|
|
var G__32829 = cljs.core.next.call(null,seq__32792_32819__$1);
|
|
var G__32830 = null;
|
|
var G__32831 = (0);
|
|
var G__32832 = (0);
|
|
seq__32792_32806 = G__32829;
|
|
chunk__32793_32807 = G__32830;
|
|
count__32794_32808 = G__32831;
|
|
i__32795_32809 = G__32832;
|
|
continue;
|
|
}
|
|
} else {
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
} else {
|
|
}
|
|
}}finally {re_frame.trace._STAR_current_trace_STAR_ = _STAR_current_trace_STAR_32791;
|
|
}} else {
|
|
return re_frame.interceptor.execute.call(null,event_v,interceptors);
|
|
}
|
|
}finally {re_frame.events._STAR_handling_STAR_ = _STAR_handling_STAR_32790;
|
|
}}
|
|
} else {
|
|
return null;
|
|
}
|
|
});
|
|
|
|
//# sourceMappingURL=events.js.map?rel=1603199197772
|