Moved web root into root of project; this makes deployment easier.
Also deleted 'docs', which is now redundant.
This commit is contained in:
parent
a5204c66b9
commit
743d8a1740
1592 changed files with 53626 additions and 139250 deletions
369
js/compiled/out/cljs_http/client.cljs
Normal file
369
js/compiled/out/cljs_http/client.cljs
Normal file
|
|
@ -0,0 +1,369 @@
|
|||
(ns cljs-http.client
|
||||
(:refer-clojure :exclude [get])
|
||||
(:require [cljs-http.core :as core]
|
||||
[cljs-http.util :as util]
|
||||
[cljs.core.async :as async :refer [<! chan close! put!]]
|
||||
[cljs.reader :refer [read-string]]
|
||||
[clojure.string :refer [blank? join split]]
|
||||
[goog.Uri :as uri]
|
||||
[no.en.core :refer [url-encode url-decode]])
|
||||
(:require-macros [cljs.core.async.macros :refer [go]]))
|
||||
|
||||
(defn if-pos [v]
|
||||
(if (and v (pos? v)) v))
|
||||
|
||||
(defn- acc-param [o v]
|
||||
(cond
|
||||
(coll? o) (conj o v)
|
||||
(some? o) [o v]
|
||||
:else v))
|
||||
|
||||
(defn parse-query-params
|
||||
"Parse `s` as query params and return a hash map."
|
||||
[s]
|
||||
(if-not (blank? s)
|
||||
(reduce
|
||||
#(let [[k v] (split %2 #"=")]
|
||||
(update %1
|
||||
(keyword (url-decode k))
|
||||
acc-param
|
||||
(url-decode v)))
|
||||
{} (split (str s) #"&"))))
|
||||
|
||||
(defn parse-url
|
||||
"Parse `url` into a hash map."
|
||||
[url]
|
||||
(if-not (blank? url)
|
||||
(let [uri (uri/parse url)
|
||||
query-data (.getQueryData uri)]
|
||||
{:scheme (keyword (.getScheme uri))
|
||||
:server-name (.getDomain uri)
|
||||
:server-port (if-pos (.getPort uri))
|
||||
:uri (.getPath uri)
|
||||
:query-string (if-not (.isEmpty query-data)
|
||||
(str query-data))
|
||||
:query-params (if-not (.isEmpty query-data)
|
||||
(parse-query-params (str query-data)))})))
|
||||
|
||||
(def unexceptional-status?
|
||||
#{200 201 202 203 204 205 206 207 300 301 302 303 307})
|
||||
|
||||
(defn- encode-val [k v]
|
||||
(str (url-encode (name k)) "=" (url-encode (str v))))
|
||||
|
||||
(defn- encode-vals [k vs]
|
||||
(->>
|
||||
vs
|
||||
(map #(encode-val k %))
|
||||
(join "&")))
|
||||
|
||||
(defn- encode-param [[k v]]
|
||||
(if (coll? v)
|
||||
(encode-vals k v)
|
||||
(encode-val k v)))
|
||||
|
||||
(defn generate-query-string [params]
|
||||
(->>
|
||||
params
|
||||
(map encode-param)
|
||||
(join "&")))
|
||||
|
||||
(def regex-char-esc-smap
|
||||
(let [esc-chars "()*&^%$#!+"]
|
||||
(zipmap esc-chars
|
||||
(map #(str "\\" %) esc-chars))))
|
||||
|
||||
(defn escape-special
|
||||
"Escape special characters -- for content-type."
|
||||
[string]
|
||||
(->> string
|
||||
(replace regex-char-esc-smap)
|
||||
(reduce str)))
|
||||
|
||||
(defn decode-body
|
||||
"Decocde the :body of `response` with `decode-fn` if the content type matches."
|
||||
[response decode-fn content-type request-method]
|
||||
(if (and (not= :head request-method)
|
||||
(not= 204 (:status response))
|
||||
(re-find (re-pattern (str "(?i)" (escape-special content-type)))
|
||||
(str (clojure.core/get (:headers response) "content-type" ""))))
|
||||
(update-in response [:body] decode-fn)
|
||||
response))
|
||||
|
||||
(defn wrap-edn-params
|
||||
"Encode :edn-params in the `request` :body and set the appropriate
|
||||
Content Type header."
|
||||
[client]
|
||||
(fn [request]
|
||||
(if-let [params (:edn-params request)]
|
||||
(let [headers (merge {"content-type" "application/edn"} (:headers request))]
|
||||
(-> (dissoc request :edn-params)
|
||||
(assoc :body (pr-str params))
|
||||
(assoc :headers headers)
|
||||
(client)))
|
||||
(client request))))
|
||||
|
||||
(defn wrap-edn-response
|
||||
"Decode application/edn responses."
|
||||
[client]
|
||||
(fn [request]
|
||||
(-> #(decode-body % read-string "application/edn" (:request-method request))
|
||||
(async/map [(client request)]))))
|
||||
|
||||
(defn wrap-default-headers
|
||||
[client & [default-headers]]
|
||||
(fn [request]
|
||||
(if-let [default-headers (or (:default-headers request) default-headers)]
|
||||
(client (assoc request :default-headers default-headers))
|
||||
(client request))))
|
||||
|
||||
(defn wrap-accept
|
||||
[client & [accept]]
|
||||
(fn [request]
|
||||
(if-let [accept (or (:accept request) accept)]
|
||||
(client (assoc-in request [:headers "accept"] accept))
|
||||
(client request))))
|
||||
|
||||
(defn wrap-content-type
|
||||
[client & [content-type]]
|
||||
(fn [request]
|
||||
(if-let [content-type (or (:content-type request) content-type)]
|
||||
(client (assoc-in request [:headers "content-type"] content-type))
|
||||
(client request))))
|
||||
|
||||
(def ^{:private true} default-transit-opts
|
||||
{:encoding :json :encoding-opts {}
|
||||
:decoding :json :decoding-opts {}})
|
||||
|
||||
(defn wrap-transit-params
|
||||
"Encode :transit-params in the `request` :body and set the appropriate
|
||||
Content Type header.
|
||||
|
||||
A :transit-opts map can be optionally provided with the following keys:
|
||||
|
||||
:encoding #{:json, :json-verbose}
|
||||
:decoding #{:json, :json-verbose}
|
||||
:encoding/decoding-opts appropriate map of options to be passed to
|
||||
transit writer/reader, respectively."
|
||||
[client]
|
||||
(fn [request]
|
||||
(if-let [params (:transit-params request)]
|
||||
(let [{:keys [encoding encoding-opts]} (merge default-transit-opts
|
||||
(:transit-opts request))
|
||||
headers (merge {"content-type" "application/transit+json"} (:headers request))]
|
||||
(-> (dissoc request :transit-params)
|
||||
(assoc :body (util/transit-encode params encoding encoding-opts))
|
||||
(assoc :headers headers)
|
||||
(client)))
|
||||
(client request))))
|
||||
|
||||
(defn wrap-transit-response
|
||||
"Decode application/transit+json responses."
|
||||
[client]
|
||||
(fn [request]
|
||||
(let [{:keys [decoding decoding-opts]} (merge default-transit-opts
|
||||
(:transit-opts request))
|
||||
transit-decode #(util/transit-decode % decoding decoding-opts)]
|
||||
|
||||
(-> #(decode-body % transit-decode "application/transit+json" (:request-method request))
|
||||
(async/map [(client request)])))))
|
||||
|
||||
(defn wrap-json-params
|
||||
"Encode :json-params in the `request` :body and set the appropriate
|
||||
Content Type header."
|
||||
[client]
|
||||
(fn [request]
|
||||
(if-let [params (:json-params request)]
|
||||
(let [headers (merge {"content-type" "application/json"} (:headers request))]
|
||||
(-> (dissoc request :json-params)
|
||||
(assoc :body (util/json-encode params))
|
||||
(assoc :headers headers)
|
||||
(client)))
|
||||
(client request))))
|
||||
|
||||
(defn wrap-json-response
|
||||
"Decode application/json responses."
|
||||
[client]
|
||||
(fn [request]
|
||||
(-> #(decode-body % util/json-decode "application/json" (:request-method request))
|
||||
(async/map [(client request)]))))
|
||||
|
||||
(defn wrap-query-params [client]
|
||||
(fn [{:keys [query-params] :as req}]
|
||||
(if query-params
|
||||
(client (-> req (dissoc :query-params)
|
||||
(assoc :query-string
|
||||
(generate-query-string query-params))))
|
||||
(client req))))
|
||||
|
||||
(defn wrap-form-params [client]
|
||||
(fn [{:keys [form-params request-method headers] :as request}]
|
||||
(if (and form-params (#{:post :put :patch :delete} request-method))
|
||||
(let [headers (merge {"content-type" "application/x-www-form-urlencoded"} headers)]
|
||||
(client (-> request
|
||||
(dissoc :form-params)
|
||||
(assoc :body (generate-query-string form-params))
|
||||
(assoc :headers headers))))
|
||||
(client request))))
|
||||
|
||||
(defn generate-form-data [params]
|
||||
(let [form-data (js/FormData.)]
|
||||
(doseq [[k v] params]
|
||||
(if (coll? v)
|
||||
(.append form-data (name k) (first v) (second v))
|
||||
(.append form-data (name k) v)))
|
||||
form-data))
|
||||
|
||||
(defn wrap-multipart-params [client]
|
||||
(fn [{:keys [multipart-params request-method] :as request}]
|
||||
(if (and multipart-params (#{:post :put :patch :delete} request-method))
|
||||
(client (-> request
|
||||
(dissoc :multipart-params)
|
||||
(assoc :body (generate-form-data multipart-params))))
|
||||
(client request))))
|
||||
|
||||
(defn wrap-method [client]
|
||||
(fn [req]
|
||||
(if-let [m (:method req)]
|
||||
(client (-> req (dissoc :method)
|
||||
(assoc :request-method m)))
|
||||
(client req))))
|
||||
|
||||
(defn wrap-server-name [client server-name]
|
||||
#(client (assoc %1 :server-name server-name)))
|
||||
|
||||
(defn wrap-url [client]
|
||||
(fn [{:keys [query-params] :as req}]
|
||||
(if-let [spec (parse-url (:url req))]
|
||||
(client (-> (merge req spec)
|
||||
(dissoc :url)
|
||||
(update-in [:query-params] #(merge %1 query-params))))
|
||||
(client req))))
|
||||
|
||||
(defn wrap-basic-auth
|
||||
"Middleware converting the :basic-auth option or `credentials` into
|
||||
an Authorization header."
|
||||
[client & [credentials]]
|
||||
(fn [req]
|
||||
(let [credentials (or (:basic-auth req) credentials)]
|
||||
(if-not (empty? credentials)
|
||||
(client (-> (dissoc req :basic-auth)
|
||||
(assoc-in [:headers "authorization"] (util/basic-auth credentials))))
|
||||
(client req)))))
|
||||
|
||||
(defn wrap-oauth
|
||||
"Middleware converting the :oauth-token option into an Authorization header."
|
||||
[client]
|
||||
(fn [req]
|
||||
(if-let [oauth-token (:oauth-token req)]
|
||||
(client (-> req (dissoc :oauth-token)
|
||||
(assoc-in [:headers "authorization"]
|
||||
(str "Bearer " oauth-token))))
|
||||
(client req))))
|
||||
|
||||
(defn wrap-channel-from-request-map
|
||||
"Pipe the response-channel into the request-map's
|
||||
custom channel (e.g. to enable transducers)"
|
||||
[client]
|
||||
(fn [request]
|
||||
(if-let [custom-channel (:channel request)]
|
||||
(async/pipe (client request) custom-channel)
|
||||
(client request))))
|
||||
|
||||
(defn wrap-request
|
||||
"Returns a batteries-included HTTP request function coresponding to the given
|
||||
core client. See client/request"
|
||||
[request]
|
||||
(-> request
|
||||
wrap-accept
|
||||
wrap-form-params
|
||||
wrap-multipart-params
|
||||
wrap-edn-params
|
||||
wrap-edn-response
|
||||
wrap-transit-params
|
||||
wrap-transit-response
|
||||
wrap-json-params
|
||||
wrap-json-response
|
||||
wrap-content-type
|
||||
wrap-query-params
|
||||
wrap-basic-auth
|
||||
wrap-oauth
|
||||
wrap-method
|
||||
wrap-url
|
||||
wrap-channel-from-request-map
|
||||
wrap-default-headers))
|
||||
|
||||
(def #^{:doc
|
||||
"Executes the HTTP request corresponding to the given map and returns the
|
||||
response map for corresponding to the resulting HTTP response.
|
||||
|
||||
In addition to the standard Ring request keys, the following keys are also
|
||||
recognized:
|
||||
* :url
|
||||
* :method
|
||||
* :query-params"}
|
||||
request (wrap-request core/request))
|
||||
|
||||
(defn delete
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :delete :url url})))
|
||||
|
||||
(defn get
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :get :url url})))
|
||||
|
||||
(defn head
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :head :url url})))
|
||||
|
||||
(defn jsonp
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :jsonp :url url})))
|
||||
|
||||
(defn move
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :move :url url})))
|
||||
|
||||
(defn options
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :options :url url})))
|
||||
|
||||
(defn patch
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :patch :url url})))
|
||||
|
||||
(defn post
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :post :url url})))
|
||||
|
||||
(defn put
|
||||
"Like #'request, but sets the :method and :url as appropriate."
|
||||
[url & [req]]
|
||||
(request (merge req {:method :put :url url})))
|
||||
|
||||
(comment
|
||||
|
||||
(ns example.core
|
||||
(:require [cljs-http.client :as http]
|
||||
[cljs.core.async :refer [<!]])
|
||||
(:require-macros [cljs.core.async.macros :refer [go]]))
|
||||
|
||||
(go (prn (map :login (:body (<! (get "https://api.github.com/users"))))))
|
||||
|
||||
(go (prn (:status (<! (get "http://api.burningswell.dev/continents")))))
|
||||
|
||||
(go (prn (map :name (:body (<! (get "http://api.burningswell.dev/continents"))))))
|
||||
|
||||
(go (let [response (<! (get "https://api.github.com/users"))]
|
||||
(prn (:status response))
|
||||
(prn (map :login (:body response)))))
|
||||
|
||||
(go (prn (<! (get "http://api.burningswell.dev/continents")))))
|
||||
1
js/compiled/out/cljs_http/client.cljs.cache.json
Normal file
1
js/compiled/out/cljs_http/client.cljs.cache.json
Normal file
File diff suppressed because one or more lines are too long
991
js/compiled/out/cljs_http/client.js
Normal file
991
js/compiled/out/cljs_http/client.js
Normal file
|
|
@ -0,0 +1,991 @@
|
|||
// Compiled by ClojureScript 1.10.520 {}
|
||||
goog.provide('cljs_http.client');
|
||||
goog.require('cljs.core');
|
||||
goog.require('cljs_http.core');
|
||||
goog.require('cljs_http.util');
|
||||
goog.require('cljs.core.async');
|
||||
goog.require('cljs.reader');
|
||||
goog.require('clojure.string');
|
||||
goog.require('goog.Uri');
|
||||
goog.require('no.en.core');
|
||||
cljs_http.client.if_pos = (function cljs_http$client$if_pos(v){
|
||||
if(cljs.core.truth_((function (){var and__4120__auto__ = v;
|
||||
if(cljs.core.truth_(and__4120__auto__)){
|
||||
return (v > (0));
|
||||
} else {
|
||||
return and__4120__auto__;
|
||||
}
|
||||
})())){
|
||||
return v;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
cljs_http.client.acc_param = (function cljs_http$client$acc_param(o,v){
|
||||
if(cljs.core.coll_QMARK_.call(null,o)){
|
||||
return cljs.core.conj.call(null,o,v);
|
||||
} else {
|
||||
if((!((o == null)))){
|
||||
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [o,v], null);
|
||||
} else {
|
||||
return v;
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
/**
|
||||
* Parse `s` as query params and return a hash map.
|
||||
*/
|
||||
cljs_http.client.parse_query_params = (function cljs_http$client$parse_query_params(s){
|
||||
if((!(clojure.string.blank_QMARK_.call(null,s)))){
|
||||
return cljs.core.reduce.call(null,(function (p1__24997_SHARP_,p2__24996_SHARP_){
|
||||
var vec__24998 = clojure.string.split.call(null,p2__24996_SHARP_,/=/);
|
||||
var k = cljs.core.nth.call(null,vec__24998,(0),null);
|
||||
var v = cljs.core.nth.call(null,vec__24998,(1),null);
|
||||
return cljs.core.update.call(null,p1__24997_SHARP_,cljs.core.keyword.call(null,no.en.core.url_decode.call(null,k)),cljs_http.client.acc_param,no.en.core.url_decode.call(null,v));
|
||||
}),cljs.core.PersistentArrayMap.EMPTY,clojure.string.split.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),/&/));
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
/**
|
||||
* Parse `url` into a hash map.
|
||||
*/
|
||||
cljs_http.client.parse_url = (function cljs_http$client$parse_url(url){
|
||||
if((!(clojure.string.blank_QMARK_.call(null,url)))){
|
||||
var uri = goog.Uri.parse(url);
|
||||
var query_data = uri.getQueryData();
|
||||
return new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"scheme","scheme",90199613),cljs.core.keyword.call(null,uri.getScheme()),new cljs.core.Keyword(null,"server-name","server-name",-1012104295),uri.getDomain(),new cljs.core.Keyword(null,"server-port","server-port",663745648),cljs_http.client.if_pos.call(null,uri.getPort()),new cljs.core.Keyword(null,"uri","uri",-774711847),uri.getPath(),new cljs.core.Keyword(null,"query-string","query-string",-1018845061),((cljs.core.not.call(null,query_data.isEmpty()))?cljs.core.str.cljs$core$IFn$_invoke$arity$1(query_data):null),new cljs.core.Keyword(null,"query-params","query-params",900640534),((cljs.core.not.call(null,query_data.isEmpty()))?cljs_http.client.parse_query_params.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(query_data)):null)], null);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
cljs_http.client.unexceptional_status_QMARK_ = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 13, [(205),null,(206),null,(300),null,(204),null,(307),null,(303),null,(301),null,(201),null,(302),null,(202),null,(200),null,(203),null,(207),null], null), null);
|
||||
cljs_http.client.encode_val = (function cljs_http$client$encode_val(k,v){
|
||||
return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(no.en.core.url_encode.call(null,cljs.core.name.call(null,k))),"=",cljs.core.str.cljs$core$IFn$_invoke$arity$1(no.en.core.url_encode.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(v)))].join('');
|
||||
});
|
||||
cljs_http.client.encode_vals = (function cljs_http$client$encode_vals(k,vs){
|
||||
return clojure.string.join.call(null,"&",cljs.core.map.call(null,(function (p1__25001_SHARP_){
|
||||
return cljs_http.client.encode_val.call(null,k,p1__25001_SHARP_);
|
||||
}),vs));
|
||||
});
|
||||
cljs_http.client.encode_param = (function cljs_http$client$encode_param(p__25002){
|
||||
var vec__25003 = p__25002;
|
||||
var k = cljs.core.nth.call(null,vec__25003,(0),null);
|
||||
var v = cljs.core.nth.call(null,vec__25003,(1),null);
|
||||
if(cljs.core.coll_QMARK_.call(null,v)){
|
||||
return cljs_http.client.encode_vals.call(null,k,v);
|
||||
} else {
|
||||
return cljs_http.client.encode_val.call(null,k,v);
|
||||
}
|
||||
});
|
||||
cljs_http.client.generate_query_string = (function cljs_http$client$generate_query_string(params){
|
||||
return clojure.string.join.call(null,"&",cljs.core.map.call(null,cljs_http.client.encode_param,params));
|
||||
});
|
||||
cljs_http.client.regex_char_esc_smap = (function (){var esc_chars = "()*&^%$#!+";
|
||||
return cljs.core.zipmap.call(null,esc_chars,cljs.core.map.call(null,((function (esc_chars){
|
||||
return (function (p1__25006_SHARP_){
|
||||
return ["\\",cljs.core.str.cljs$core$IFn$_invoke$arity$1(p1__25006_SHARP_)].join('');
|
||||
});})(esc_chars))
|
||||
,esc_chars));
|
||||
})();
|
||||
/**
|
||||
* Escape special characters -- for content-type.
|
||||
*/
|
||||
cljs_http.client.escape_special = (function cljs_http$client$escape_special(string){
|
||||
return cljs.core.reduce.call(null,cljs.core.str,cljs.core.replace.call(null,cljs_http.client.regex_char_esc_smap,string));
|
||||
});
|
||||
/**
|
||||
* Decocde the :body of `response` with `decode-fn` if the content type matches.
|
||||
*/
|
||||
cljs_http.client.decode_body = (function cljs_http$client$decode_body(response,decode_fn,content_type,request_method){
|
||||
if(cljs.core.truth_((function (){var and__4120__auto__ = cljs.core.not_EQ_.call(null,new cljs.core.Keyword(null,"head","head",-771383919),request_method);
|
||||
if(and__4120__auto__){
|
||||
var and__4120__auto____$1 = cljs.core.not_EQ_.call(null,(204),new cljs.core.Keyword(null,"status","status",-1997798413).cljs$core$IFn$_invoke$arity$1(response));
|
||||
if(and__4120__auto____$1){
|
||||
return cljs.core.re_find.call(null,cljs.core.re_pattern.call(null,["(?i)",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs_http.client.escape_special.call(null,content_type))].join('')),cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.get.call(null,new cljs.core.Keyword(null,"headers","headers",-835030129).cljs$core$IFn$_invoke$arity$1(response),"content-type","")));
|
||||
} else {
|
||||
return and__4120__auto____$1;
|
||||
}
|
||||
} else {
|
||||
return and__4120__auto__;
|
||||
}
|
||||
})())){
|
||||
return cljs.core.update_in.call(null,response,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"body","body",-2049205669)], null),decode_fn);
|
||||
} else {
|
||||
return response;
|
||||
}
|
||||
});
|
||||
/**
|
||||
* Encode :edn-params in the `request` :body and set the appropriate
|
||||
* Content Type header.
|
||||
*/
|
||||
cljs_http.client.wrap_edn_params = (function cljs_http$client$wrap_edn_params(client){
|
||||
return (function (request){
|
||||
var temp__5718__auto__ = new cljs.core.Keyword(null,"edn-params","edn-params",894273052).cljs$core$IFn$_invoke$arity$1(request);
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var params = temp__5718__auto__;
|
||||
var headers = cljs.core.merge.call(null,new cljs.core.PersistentArrayMap(null, 1, ["content-type","application/edn"], null),new cljs.core.Keyword(null,"headers","headers",-835030129).cljs$core$IFn$_invoke$arity$1(request));
|
||||
return client.call(null,cljs.core.assoc.call(null,cljs.core.assoc.call(null,cljs.core.dissoc.call(null,request,new cljs.core.Keyword(null,"edn-params","edn-params",894273052)),new cljs.core.Keyword(null,"body","body",-2049205669),cljs.core.pr_str.call(null,params)),new cljs.core.Keyword(null,"headers","headers",-835030129),headers));
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Decode application/edn responses.
|
||||
*/
|
||||
cljs_http.client.wrap_edn_response = (function cljs_http$client$wrap_edn_response(client){
|
||||
return (function (request){
|
||||
return cljs.core.async.map.call(null,(function (p1__25007_SHARP_){
|
||||
return cljs_http.client.decode_body.call(null,p1__25007_SHARP_,cljs.reader.read_string,"application/edn",new cljs.core.Keyword(null,"request-method","request-method",1764796830).cljs$core$IFn$_invoke$arity$1(request));
|
||||
}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [client.call(null,request)], null));
|
||||
});
|
||||
});
|
||||
cljs_http.client.wrap_default_headers = (function cljs_http$client$wrap_default_headers(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25014 = arguments.length;
|
||||
var i__4731__auto___25015 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25015 < len__4730__auto___25014)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25015]));
|
||||
|
||||
var G__25016 = (i__4731__auto___25015 + (1));
|
||||
i__4731__auto___25015 = G__25016;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.wrap_default_headers.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_default_headers.cljs$core$IFn$_invoke$arity$variadic = (function (client,p__25010){
|
||||
var vec__25011 = p__25010;
|
||||
var default_headers = cljs.core.nth.call(null,vec__25011,(0),null);
|
||||
return ((function (vec__25011,default_headers){
|
||||
return (function (request){
|
||||
var temp__5718__auto__ = (function (){var or__4131__auto__ = new cljs.core.Keyword(null,"default-headers","default-headers",-43146094).cljs$core$IFn$_invoke$arity$1(request);
|
||||
if(cljs.core.truth_(or__4131__auto__)){
|
||||
return or__4131__auto__;
|
||||
} else {
|
||||
return default_headers;
|
||||
}
|
||||
})();
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var default_headers__$1 = temp__5718__auto__;
|
||||
return client.call(null,cljs.core.assoc.call(null,request,new cljs.core.Keyword(null,"default-headers","default-headers",-43146094),default_headers__$1));
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
;})(vec__25011,default_headers))
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_default_headers.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.wrap_default_headers.cljs$lang$applyTo = (function (seq25008){
|
||||
var G__25009 = cljs.core.first.call(null,seq25008);
|
||||
var seq25008__$1 = cljs.core.next.call(null,seq25008);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25009,seq25008__$1);
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_accept = (function cljs_http$client$wrap_accept(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25023 = arguments.length;
|
||||
var i__4731__auto___25024 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25024 < len__4730__auto___25023)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25024]));
|
||||
|
||||
var G__25025 = (i__4731__auto___25024 + (1));
|
||||
i__4731__auto___25024 = G__25025;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.wrap_accept.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_accept.cljs$core$IFn$_invoke$arity$variadic = (function (client,p__25019){
|
||||
var vec__25020 = p__25019;
|
||||
var accept = cljs.core.nth.call(null,vec__25020,(0),null);
|
||||
return ((function (vec__25020,accept){
|
||||
return (function (request){
|
||||
var temp__5718__auto__ = (function (){var or__4131__auto__ = new cljs.core.Keyword(null,"accept","accept",1874130431).cljs$core$IFn$_invoke$arity$1(request);
|
||||
if(cljs.core.truth_(or__4131__auto__)){
|
||||
return or__4131__auto__;
|
||||
} else {
|
||||
return accept;
|
||||
}
|
||||
})();
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var accept__$1 = temp__5718__auto__;
|
||||
return client.call(null,cljs.core.assoc_in.call(null,request,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"headers","headers",-835030129),"accept"], null),accept__$1));
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
;})(vec__25020,accept))
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_accept.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.wrap_accept.cljs$lang$applyTo = (function (seq25017){
|
||||
var G__25018 = cljs.core.first.call(null,seq25017);
|
||||
var seq25017__$1 = cljs.core.next.call(null,seq25017);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25018,seq25017__$1);
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_content_type = (function cljs_http$client$wrap_content_type(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25032 = arguments.length;
|
||||
var i__4731__auto___25033 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25033 < len__4730__auto___25032)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25033]));
|
||||
|
||||
var G__25034 = (i__4731__auto___25033 + (1));
|
||||
i__4731__auto___25033 = G__25034;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.wrap_content_type.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_content_type.cljs$core$IFn$_invoke$arity$variadic = (function (client,p__25028){
|
||||
var vec__25029 = p__25028;
|
||||
var content_type = cljs.core.nth.call(null,vec__25029,(0),null);
|
||||
return ((function (vec__25029,content_type){
|
||||
return (function (request){
|
||||
var temp__5718__auto__ = (function (){var or__4131__auto__ = new cljs.core.Keyword(null,"content-type","content-type",-508222634).cljs$core$IFn$_invoke$arity$1(request);
|
||||
if(cljs.core.truth_(or__4131__auto__)){
|
||||
return or__4131__auto__;
|
||||
} else {
|
||||
return content_type;
|
||||
}
|
||||
})();
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var content_type__$1 = temp__5718__auto__;
|
||||
return client.call(null,cljs.core.assoc_in.call(null,request,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"headers","headers",-835030129),"content-type"], null),content_type__$1));
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
;})(vec__25029,content_type))
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_content_type.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.wrap_content_type.cljs$lang$applyTo = (function (seq25026){
|
||||
var G__25027 = cljs.core.first.call(null,seq25026);
|
||||
var seq25026__$1 = cljs.core.next.call(null,seq25026);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25027,seq25026__$1);
|
||||
});
|
||||
|
||||
cljs_http.client.default_transit_opts = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"encoding","encoding",1728578272),new cljs.core.Keyword(null,"json","json",1279968570),new cljs.core.Keyword(null,"encoding-opts","encoding-opts",-1805664631),cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"decoding","decoding",-568180903),new cljs.core.Keyword(null,"json","json",1279968570),new cljs.core.Keyword(null,"decoding-opts","decoding-opts",1050289140),cljs.core.PersistentArrayMap.EMPTY], null);
|
||||
/**
|
||||
* Encode :transit-params in the `request` :body and set the appropriate
|
||||
* Content Type header.
|
||||
*
|
||||
* A :transit-opts map can be optionally provided with the following keys:
|
||||
*
|
||||
* :encoding #{:json, :json-verbose}
|
||||
* :decoding #{:json, :json-verbose}
|
||||
* :encoding/decoding-opts appropriate map of options to be passed to
|
||||
* transit writer/reader, respectively.
|
||||
*/
|
||||
cljs_http.client.wrap_transit_params = (function cljs_http$client$wrap_transit_params(client){
|
||||
return (function (request){
|
||||
var temp__5718__auto__ = new cljs.core.Keyword(null,"transit-params","transit-params",357261095).cljs$core$IFn$_invoke$arity$1(request);
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var params = temp__5718__auto__;
|
||||
var map__25035 = cljs.core.merge.call(null,cljs_http.client.default_transit_opts,new cljs.core.Keyword(null,"transit-opts","transit-opts",1104386010).cljs$core$IFn$_invoke$arity$1(request));
|
||||
var map__25035__$1 = (((((!((map__25035 == null))))?(((((map__25035.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25035.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__25035):map__25035);
|
||||
var encoding = cljs.core.get.call(null,map__25035__$1,new cljs.core.Keyword(null,"encoding","encoding",1728578272));
|
||||
var encoding_opts = cljs.core.get.call(null,map__25035__$1,new cljs.core.Keyword(null,"encoding-opts","encoding-opts",-1805664631));
|
||||
var headers = cljs.core.merge.call(null,new cljs.core.PersistentArrayMap(null, 1, ["content-type","application/transit+json"], null),new cljs.core.Keyword(null,"headers","headers",-835030129).cljs$core$IFn$_invoke$arity$1(request));
|
||||
return client.call(null,cljs.core.assoc.call(null,cljs.core.assoc.call(null,cljs.core.dissoc.call(null,request,new cljs.core.Keyword(null,"transit-params","transit-params",357261095)),new cljs.core.Keyword(null,"body","body",-2049205669),cljs_http.util.transit_encode.call(null,params,encoding,encoding_opts)),new cljs.core.Keyword(null,"headers","headers",-835030129),headers));
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Decode application/transit+json responses.
|
||||
*/
|
||||
cljs_http.client.wrap_transit_response = (function cljs_http$client$wrap_transit_response(client){
|
||||
return (function (request){
|
||||
var map__25039 = cljs.core.merge.call(null,cljs_http.client.default_transit_opts,new cljs.core.Keyword(null,"transit-opts","transit-opts",1104386010).cljs$core$IFn$_invoke$arity$1(request));
|
||||
var map__25039__$1 = (((((!((map__25039 == null))))?(((((map__25039.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25039.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__25039):map__25039);
|
||||
var decoding = cljs.core.get.call(null,map__25039__$1,new cljs.core.Keyword(null,"decoding","decoding",-568180903));
|
||||
var decoding_opts = cljs.core.get.call(null,map__25039__$1,new cljs.core.Keyword(null,"decoding-opts","decoding-opts",1050289140));
|
||||
var transit_decode = ((function (map__25039,map__25039__$1,decoding,decoding_opts){
|
||||
return (function (p1__25037_SHARP_){
|
||||
return cljs_http.util.transit_decode.call(null,p1__25037_SHARP_,decoding,decoding_opts);
|
||||
});})(map__25039,map__25039__$1,decoding,decoding_opts))
|
||||
;
|
||||
return cljs.core.async.map.call(null,((function (map__25039,map__25039__$1,decoding,decoding_opts,transit_decode){
|
||||
return (function (p1__25038_SHARP_){
|
||||
return cljs_http.client.decode_body.call(null,p1__25038_SHARP_,transit_decode,"application/transit+json",new cljs.core.Keyword(null,"request-method","request-method",1764796830).cljs$core$IFn$_invoke$arity$1(request));
|
||||
});})(map__25039,map__25039__$1,decoding,decoding_opts,transit_decode))
|
||||
,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [client.call(null,request)], null));
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Encode :json-params in the `request` :body and set the appropriate
|
||||
* Content Type header.
|
||||
*/
|
||||
cljs_http.client.wrap_json_params = (function cljs_http$client$wrap_json_params(client){
|
||||
return (function (request){
|
||||
var temp__5718__auto__ = new cljs.core.Keyword(null,"json-params","json-params",-1112693596).cljs$core$IFn$_invoke$arity$1(request);
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var params = temp__5718__auto__;
|
||||
var headers = cljs.core.merge.call(null,new cljs.core.PersistentArrayMap(null, 1, ["content-type","application/json"], null),new cljs.core.Keyword(null,"headers","headers",-835030129).cljs$core$IFn$_invoke$arity$1(request));
|
||||
return client.call(null,cljs.core.assoc.call(null,cljs.core.assoc.call(null,cljs.core.dissoc.call(null,request,new cljs.core.Keyword(null,"json-params","json-params",-1112693596)),new cljs.core.Keyword(null,"body","body",-2049205669),cljs_http.util.json_encode.call(null,params)),new cljs.core.Keyword(null,"headers","headers",-835030129),headers));
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Decode application/json responses.
|
||||
*/
|
||||
cljs_http.client.wrap_json_response = (function cljs_http$client$wrap_json_response(client){
|
||||
return (function (request){
|
||||
return cljs.core.async.map.call(null,(function (p1__25041_SHARP_){
|
||||
return cljs_http.client.decode_body.call(null,p1__25041_SHARP_,cljs_http.util.json_decode,"application/json",new cljs.core.Keyword(null,"request-method","request-method",1764796830).cljs$core$IFn$_invoke$arity$1(request));
|
||||
}),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [client.call(null,request)], null));
|
||||
});
|
||||
});
|
||||
cljs_http.client.wrap_query_params = (function cljs_http$client$wrap_query_params(client){
|
||||
return (function (p__25042){
|
||||
var map__25043 = p__25042;
|
||||
var map__25043__$1 = (((((!((map__25043 == null))))?(((((map__25043.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25043.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__25043):map__25043);
|
||||
var req = map__25043__$1;
|
||||
var query_params = cljs.core.get.call(null,map__25043__$1,new cljs.core.Keyword(null,"query-params","query-params",900640534));
|
||||
if(cljs.core.truth_(query_params)){
|
||||
return client.call(null,cljs.core.assoc.call(null,cljs.core.dissoc.call(null,req,new cljs.core.Keyword(null,"query-params","query-params",900640534)),new cljs.core.Keyword(null,"query-string","query-string",-1018845061),cljs_http.client.generate_query_string.call(null,query_params)));
|
||||
} else {
|
||||
return client.call(null,req);
|
||||
}
|
||||
});
|
||||
});
|
||||
cljs_http.client.wrap_form_params = (function cljs_http$client$wrap_form_params(client){
|
||||
return (function (p__25045){
|
||||
var map__25046 = p__25045;
|
||||
var map__25046__$1 = (((((!((map__25046 == null))))?(((((map__25046.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25046.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__25046):map__25046);
|
||||
var request = map__25046__$1;
|
||||
var form_params = cljs.core.get.call(null,map__25046__$1,new cljs.core.Keyword(null,"form-params","form-params",1884296467));
|
||||
var request_method = cljs.core.get.call(null,map__25046__$1,new cljs.core.Keyword(null,"request-method","request-method",1764796830));
|
||||
var headers = cljs.core.get.call(null,map__25046__$1,new cljs.core.Keyword(null,"headers","headers",-835030129));
|
||||
if(cljs.core.truth_((function (){var and__4120__auto__ = form_params;
|
||||
if(cljs.core.truth_(and__4120__auto__)){
|
||||
return new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"patch","patch",380775109),null,new cljs.core.Keyword(null,"delete","delete",-1768633620),null,new cljs.core.Keyword(null,"post","post",269697687),null,new cljs.core.Keyword(null,"put","put",1299772570),null], null), null).call(null,request_method);
|
||||
} else {
|
||||
return and__4120__auto__;
|
||||
}
|
||||
})())){
|
||||
var headers__$1 = cljs.core.merge.call(null,new cljs.core.PersistentArrayMap(null, 1, ["content-type","application/x-www-form-urlencoded"], null),headers);
|
||||
return client.call(null,cljs.core.assoc.call(null,cljs.core.assoc.call(null,cljs.core.dissoc.call(null,request,new cljs.core.Keyword(null,"form-params","form-params",1884296467)),new cljs.core.Keyword(null,"body","body",-2049205669),cljs_http.client.generate_query_string.call(null,form_params)),new cljs.core.Keyword(null,"headers","headers",-835030129),headers__$1));
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
});
|
||||
cljs_http.client.generate_form_data = (function cljs_http$client$generate_form_data(params){
|
||||
var form_data = (new FormData());
|
||||
var seq__25048_25064 = cljs.core.seq.call(null,params);
|
||||
var chunk__25049_25065 = null;
|
||||
var count__25050_25066 = (0);
|
||||
var i__25051_25067 = (0);
|
||||
while(true){
|
||||
if((i__25051_25067 < count__25050_25066)){
|
||||
var vec__25058_25068 = cljs.core._nth.call(null,chunk__25049_25065,i__25051_25067);
|
||||
var k_25069 = cljs.core.nth.call(null,vec__25058_25068,(0),null);
|
||||
var v_25070 = cljs.core.nth.call(null,vec__25058_25068,(1),null);
|
||||
if(cljs.core.coll_QMARK_.call(null,v_25070)){
|
||||
form_data.append(cljs.core.name.call(null,k_25069),cljs.core.first.call(null,v_25070),cljs.core.second.call(null,v_25070));
|
||||
} else {
|
||||
form_data.append(cljs.core.name.call(null,k_25069),v_25070);
|
||||
}
|
||||
|
||||
|
||||
var G__25071 = seq__25048_25064;
|
||||
var G__25072 = chunk__25049_25065;
|
||||
var G__25073 = count__25050_25066;
|
||||
var G__25074 = (i__25051_25067 + (1));
|
||||
seq__25048_25064 = G__25071;
|
||||
chunk__25049_25065 = G__25072;
|
||||
count__25050_25066 = G__25073;
|
||||
i__25051_25067 = G__25074;
|
||||
continue;
|
||||
} else {
|
||||
var temp__5720__auto___25075 = cljs.core.seq.call(null,seq__25048_25064);
|
||||
if(temp__5720__auto___25075){
|
||||
var seq__25048_25076__$1 = temp__5720__auto___25075;
|
||||
if(cljs.core.chunked_seq_QMARK_.call(null,seq__25048_25076__$1)){
|
||||
var c__4550__auto___25077 = cljs.core.chunk_first.call(null,seq__25048_25076__$1);
|
||||
var G__25078 = cljs.core.chunk_rest.call(null,seq__25048_25076__$1);
|
||||
var G__25079 = c__4550__auto___25077;
|
||||
var G__25080 = cljs.core.count.call(null,c__4550__auto___25077);
|
||||
var G__25081 = (0);
|
||||
seq__25048_25064 = G__25078;
|
||||
chunk__25049_25065 = G__25079;
|
||||
count__25050_25066 = G__25080;
|
||||
i__25051_25067 = G__25081;
|
||||
continue;
|
||||
} else {
|
||||
var vec__25061_25082 = cljs.core.first.call(null,seq__25048_25076__$1);
|
||||
var k_25083 = cljs.core.nth.call(null,vec__25061_25082,(0),null);
|
||||
var v_25084 = cljs.core.nth.call(null,vec__25061_25082,(1),null);
|
||||
if(cljs.core.coll_QMARK_.call(null,v_25084)){
|
||||
form_data.append(cljs.core.name.call(null,k_25083),cljs.core.first.call(null,v_25084),cljs.core.second.call(null,v_25084));
|
||||
} else {
|
||||
form_data.append(cljs.core.name.call(null,k_25083),v_25084);
|
||||
}
|
||||
|
||||
|
||||
var G__25085 = cljs.core.next.call(null,seq__25048_25076__$1);
|
||||
var G__25086 = null;
|
||||
var G__25087 = (0);
|
||||
var G__25088 = (0);
|
||||
seq__25048_25064 = G__25085;
|
||||
chunk__25049_25065 = G__25086;
|
||||
count__25050_25066 = G__25087;
|
||||
i__25051_25067 = G__25088;
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return form_data;
|
||||
});
|
||||
cljs_http.client.wrap_multipart_params = (function cljs_http$client$wrap_multipart_params(client){
|
||||
return (function (p__25089){
|
||||
var map__25090 = p__25089;
|
||||
var map__25090__$1 = (((((!((map__25090 == null))))?(((((map__25090.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25090.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__25090):map__25090);
|
||||
var request = map__25090__$1;
|
||||
var multipart_params = cljs.core.get.call(null,map__25090__$1,new cljs.core.Keyword(null,"multipart-params","multipart-params",-1033508707));
|
||||
var request_method = cljs.core.get.call(null,map__25090__$1,new cljs.core.Keyword(null,"request-method","request-method",1764796830));
|
||||
if(cljs.core.truth_((function (){var and__4120__auto__ = multipart_params;
|
||||
if(cljs.core.truth_(and__4120__auto__)){
|
||||
return new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"patch","patch",380775109),null,new cljs.core.Keyword(null,"delete","delete",-1768633620),null,new cljs.core.Keyword(null,"post","post",269697687),null,new cljs.core.Keyword(null,"put","put",1299772570),null], null), null).call(null,request_method);
|
||||
} else {
|
||||
return and__4120__auto__;
|
||||
}
|
||||
})())){
|
||||
return client.call(null,cljs.core.assoc.call(null,cljs.core.dissoc.call(null,request,new cljs.core.Keyword(null,"multipart-params","multipart-params",-1033508707)),new cljs.core.Keyword(null,"body","body",-2049205669),cljs_http.client.generate_form_data.call(null,multipart_params)));
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
});
|
||||
cljs_http.client.wrap_method = (function cljs_http$client$wrap_method(client){
|
||||
return (function (req){
|
||||
var temp__5718__auto__ = new cljs.core.Keyword(null,"method","method",55703592).cljs$core$IFn$_invoke$arity$1(req);
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var m = temp__5718__auto__;
|
||||
return client.call(null,cljs.core.assoc.call(null,cljs.core.dissoc.call(null,req,new cljs.core.Keyword(null,"method","method",55703592)),new cljs.core.Keyword(null,"request-method","request-method",1764796830),m));
|
||||
} else {
|
||||
return client.call(null,req);
|
||||
}
|
||||
});
|
||||
});
|
||||
cljs_http.client.wrap_server_name = (function cljs_http$client$wrap_server_name(client,server_name){
|
||||
return (function (p1__25092_SHARP_){
|
||||
return client.call(null,cljs.core.assoc.call(null,p1__25092_SHARP_,new cljs.core.Keyword(null,"server-name","server-name",-1012104295),server_name));
|
||||
});
|
||||
});
|
||||
cljs_http.client.wrap_url = (function cljs_http$client$wrap_url(client){
|
||||
return (function (p__25094){
|
||||
var map__25095 = p__25094;
|
||||
var map__25095__$1 = (((((!((map__25095 == null))))?(((((map__25095.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__25095.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__25095):map__25095);
|
||||
var req = map__25095__$1;
|
||||
var query_params = cljs.core.get.call(null,map__25095__$1,new cljs.core.Keyword(null,"query-params","query-params",900640534));
|
||||
var temp__5718__auto__ = cljs_http.client.parse_url.call(null,new cljs.core.Keyword(null,"url","url",276297046).cljs$core$IFn$_invoke$arity$1(req));
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var spec = temp__5718__auto__;
|
||||
return client.call(null,cljs.core.update_in.call(null,cljs.core.dissoc.call(null,cljs.core.merge.call(null,req,spec),new cljs.core.Keyword(null,"url","url",276297046)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"query-params","query-params",900640534)], null),((function (spec,temp__5718__auto__,map__25095,map__25095__$1,req,query_params){
|
||||
return (function (p1__25093_SHARP_){
|
||||
return cljs.core.merge.call(null,p1__25093_SHARP_,query_params);
|
||||
});})(spec,temp__5718__auto__,map__25095,map__25095__$1,req,query_params))
|
||||
));
|
||||
} else {
|
||||
return client.call(null,req);
|
||||
}
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Middleware converting the :basic-auth option or `credentials` into
|
||||
* an Authorization header.
|
||||
*/
|
||||
cljs_http.client.wrap_basic_auth = (function cljs_http$client$wrap_basic_auth(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25103 = arguments.length;
|
||||
var i__4731__auto___25104 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25104 < len__4730__auto___25103)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25104]));
|
||||
|
||||
var G__25105 = (i__4731__auto___25104 + (1));
|
||||
i__4731__auto___25104 = G__25105;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.wrap_basic_auth.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_basic_auth.cljs$core$IFn$_invoke$arity$variadic = (function (client,p__25099){
|
||||
var vec__25100 = p__25099;
|
||||
var credentials = cljs.core.nth.call(null,vec__25100,(0),null);
|
||||
return ((function (vec__25100,credentials){
|
||||
return (function (req){
|
||||
var credentials__$1 = (function (){var or__4131__auto__ = new cljs.core.Keyword(null,"basic-auth","basic-auth",-673163332).cljs$core$IFn$_invoke$arity$1(req);
|
||||
if(cljs.core.truth_(or__4131__auto__)){
|
||||
return or__4131__auto__;
|
||||
} else {
|
||||
return credentials;
|
||||
}
|
||||
})();
|
||||
if((!(cljs.core.empty_QMARK_.call(null,credentials__$1)))){
|
||||
return client.call(null,cljs.core.assoc_in.call(null,cljs.core.dissoc.call(null,req,new cljs.core.Keyword(null,"basic-auth","basic-auth",-673163332)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"headers","headers",-835030129),"authorization"], null),cljs_http.util.basic_auth.call(null,credentials__$1)));
|
||||
} else {
|
||||
return client.call(null,req);
|
||||
}
|
||||
});
|
||||
;})(vec__25100,credentials))
|
||||
});
|
||||
|
||||
cljs_http.client.wrap_basic_auth.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.wrap_basic_auth.cljs$lang$applyTo = (function (seq25097){
|
||||
var G__25098 = cljs.core.first.call(null,seq25097);
|
||||
var seq25097__$1 = cljs.core.next.call(null,seq25097);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25098,seq25097__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Middleware converting the :oauth-token option into an Authorization header.
|
||||
*/
|
||||
cljs_http.client.wrap_oauth = (function cljs_http$client$wrap_oauth(client){
|
||||
return (function (req){
|
||||
var temp__5718__auto__ = new cljs.core.Keyword(null,"oauth-token","oauth-token",311415191).cljs$core$IFn$_invoke$arity$1(req);
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var oauth_token = temp__5718__auto__;
|
||||
return client.call(null,cljs.core.assoc_in.call(null,cljs.core.dissoc.call(null,req,new cljs.core.Keyword(null,"oauth-token","oauth-token",311415191)),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"headers","headers",-835030129),"authorization"], null),["Bearer ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(oauth_token)].join('')));
|
||||
} else {
|
||||
return client.call(null,req);
|
||||
}
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Pipe the response-channel into the request-map's
|
||||
* custom channel (e.g. to enable transducers)
|
||||
*/
|
||||
cljs_http.client.wrap_channel_from_request_map = (function cljs_http$client$wrap_channel_from_request_map(client){
|
||||
return (function (request){
|
||||
var temp__5718__auto__ = new cljs.core.Keyword(null,"channel","channel",734187692).cljs$core$IFn$_invoke$arity$1(request);
|
||||
if(cljs.core.truth_(temp__5718__auto__)){
|
||||
var custom_channel = temp__5718__auto__;
|
||||
return cljs.core.async.pipe.call(null,client.call(null,request),custom_channel);
|
||||
} else {
|
||||
return client.call(null,request);
|
||||
}
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Returns a batteries-included HTTP request function coresponding to the given
|
||||
* core client. See client/request
|
||||
*/
|
||||
cljs_http.client.wrap_request = (function cljs_http$client$wrap_request(request){
|
||||
return cljs_http.client.wrap_default_headers.call(null,cljs_http.client.wrap_channel_from_request_map.call(null,cljs_http.client.wrap_url.call(null,cljs_http.client.wrap_method.call(null,cljs_http.client.wrap_oauth.call(null,cljs_http.client.wrap_basic_auth.call(null,cljs_http.client.wrap_query_params.call(null,cljs_http.client.wrap_content_type.call(null,cljs_http.client.wrap_json_response.call(null,cljs_http.client.wrap_json_params.call(null,cljs_http.client.wrap_transit_response.call(null,cljs_http.client.wrap_transit_params.call(null,cljs_http.client.wrap_edn_response.call(null,cljs_http.client.wrap_edn_params.call(null,cljs_http.client.wrap_multipart_params.call(null,cljs_http.client.wrap_form_params.call(null,cljs_http.client.wrap_accept.call(null,request)))))))))))))))));
|
||||
});
|
||||
/**
|
||||
* Executes the HTTP request corresponding to the given map and returns the
|
||||
* response map for corresponding to the resulting HTTP response.
|
||||
*
|
||||
* In addition to the standard Ring request keys, the following keys are also
|
||||
* recognized:
|
||||
* * :url
|
||||
* * :method
|
||||
* * :query-params
|
||||
*/
|
||||
cljs_http.client.request = cljs_http.client.wrap_request.call(null,cljs_http.core.request);
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.delete$ = (function cljs_http$client$delete(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25112 = arguments.length;
|
||||
var i__4731__auto___25113 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25113 < len__4730__auto___25112)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25113]));
|
||||
|
||||
var G__25114 = (i__4731__auto___25113 + (1));
|
||||
i__4731__auto___25113 = G__25114;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.delete$.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.delete$.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25108){
|
||||
var vec__25109 = p__25108;
|
||||
var req = cljs.core.nth.call(null,vec__25109,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"delete","delete",-1768633620),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.delete$.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.delete$.cljs$lang$applyTo = (function (seq25106){
|
||||
var G__25107 = cljs.core.first.call(null,seq25106);
|
||||
var seq25106__$1 = cljs.core.next.call(null,seq25106);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25107,seq25106__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.get = (function cljs_http$client$get(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25121 = arguments.length;
|
||||
var i__4731__auto___25122 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25122 < len__4730__auto___25121)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25122]));
|
||||
|
||||
var G__25123 = (i__4731__auto___25122 + (1));
|
||||
i__4731__auto___25122 = G__25123;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.get.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.get.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25117){
|
||||
var vec__25118 = p__25117;
|
||||
var req = cljs.core.nth.call(null,vec__25118,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"get","get",1683182755),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.get.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.get.cljs$lang$applyTo = (function (seq25115){
|
||||
var G__25116 = cljs.core.first.call(null,seq25115);
|
||||
var seq25115__$1 = cljs.core.next.call(null,seq25115);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25116,seq25115__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.head = (function cljs_http$client$head(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25130 = arguments.length;
|
||||
var i__4731__auto___25131 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25131 < len__4730__auto___25130)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25131]));
|
||||
|
||||
var G__25132 = (i__4731__auto___25131 + (1));
|
||||
i__4731__auto___25131 = G__25132;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.head.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.head.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25126){
|
||||
var vec__25127 = p__25126;
|
||||
var req = cljs.core.nth.call(null,vec__25127,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"head","head",-771383919),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.head.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.head.cljs$lang$applyTo = (function (seq25124){
|
||||
var G__25125 = cljs.core.first.call(null,seq25124);
|
||||
var seq25124__$1 = cljs.core.next.call(null,seq25124);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25125,seq25124__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.jsonp = (function cljs_http$client$jsonp(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25139 = arguments.length;
|
||||
var i__4731__auto___25140 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25140 < len__4730__auto___25139)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25140]));
|
||||
|
||||
var G__25141 = (i__4731__auto___25140 + (1));
|
||||
i__4731__auto___25140 = G__25141;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.jsonp.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.jsonp.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25135){
|
||||
var vec__25136 = p__25135;
|
||||
var req = cljs.core.nth.call(null,vec__25136,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"jsonp","jsonp",226119588),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.jsonp.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.jsonp.cljs$lang$applyTo = (function (seq25133){
|
||||
var G__25134 = cljs.core.first.call(null,seq25133);
|
||||
var seq25133__$1 = cljs.core.next.call(null,seq25133);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25134,seq25133__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.move = (function cljs_http$client$move(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25148 = arguments.length;
|
||||
var i__4731__auto___25149 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25149 < len__4730__auto___25148)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25149]));
|
||||
|
||||
var G__25150 = (i__4731__auto___25149 + (1));
|
||||
i__4731__auto___25149 = G__25150;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.move.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.move.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25144){
|
||||
var vec__25145 = p__25144;
|
||||
var req = cljs.core.nth.call(null,vec__25145,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"move","move",-2110884309),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.move.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.move.cljs$lang$applyTo = (function (seq25142){
|
||||
var G__25143 = cljs.core.first.call(null,seq25142);
|
||||
var seq25142__$1 = cljs.core.next.call(null,seq25142);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25143,seq25142__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.options = (function cljs_http$client$options(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25157 = arguments.length;
|
||||
var i__4731__auto___25158 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25158 < len__4730__auto___25157)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25158]));
|
||||
|
||||
var G__25159 = (i__4731__auto___25158 + (1));
|
||||
i__4731__auto___25158 = G__25159;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.options.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.options.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25153){
|
||||
var vec__25154 = p__25153;
|
||||
var req = cljs.core.nth.call(null,vec__25154,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"options","options",99638489),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.options.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.options.cljs$lang$applyTo = (function (seq25151){
|
||||
var G__25152 = cljs.core.first.call(null,seq25151);
|
||||
var seq25151__$1 = cljs.core.next.call(null,seq25151);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25152,seq25151__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.patch = (function cljs_http$client$patch(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25166 = arguments.length;
|
||||
var i__4731__auto___25167 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25167 < len__4730__auto___25166)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25167]));
|
||||
|
||||
var G__25168 = (i__4731__auto___25167 + (1));
|
||||
i__4731__auto___25167 = G__25168;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.patch.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.patch.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25162){
|
||||
var vec__25163 = p__25162;
|
||||
var req = cljs.core.nth.call(null,vec__25163,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"patch","patch",380775109),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.patch.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.patch.cljs$lang$applyTo = (function (seq25160){
|
||||
var G__25161 = cljs.core.first.call(null,seq25160);
|
||||
var seq25160__$1 = cljs.core.next.call(null,seq25160);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25161,seq25160__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.post = (function cljs_http$client$post(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25175 = arguments.length;
|
||||
var i__4731__auto___25176 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25176 < len__4730__auto___25175)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25176]));
|
||||
|
||||
var G__25177 = (i__4731__auto___25176 + (1));
|
||||
i__4731__auto___25176 = G__25177;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.post.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.post.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25171){
|
||||
var vec__25172 = p__25171;
|
||||
var req = cljs.core.nth.call(null,vec__25172,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"post","post",269697687),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.post.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.post.cljs$lang$applyTo = (function (seq25169){
|
||||
var G__25170 = cljs.core.first.call(null,seq25169);
|
||||
var seq25169__$1 = cljs.core.next.call(null,seq25169);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25170,seq25169__$1);
|
||||
});
|
||||
|
||||
/**
|
||||
* Like #'request, but sets the :method and :url as appropriate.
|
||||
*/
|
||||
cljs_http.client.put = (function cljs_http$client$put(var_args){
|
||||
var args__4736__auto__ = [];
|
||||
var len__4730__auto___25184 = arguments.length;
|
||||
var i__4731__auto___25185 = (0);
|
||||
while(true){
|
||||
if((i__4731__auto___25185 < len__4730__auto___25184)){
|
||||
args__4736__auto__.push((arguments[i__4731__auto___25185]));
|
||||
|
||||
var G__25186 = (i__4731__auto___25185 + (1));
|
||||
i__4731__auto___25185 = G__25186;
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
var argseq__4737__auto__ = ((((1) < args__4736__auto__.length))?(new cljs.core.IndexedSeq(args__4736__auto__.slice((1)),(0),null)):null);
|
||||
return cljs_http.client.put.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4737__auto__);
|
||||
});
|
||||
|
||||
cljs_http.client.put.cljs$core$IFn$_invoke$arity$variadic = (function (url,p__25180){
|
||||
var vec__25181 = p__25180;
|
||||
var req = cljs.core.nth.call(null,vec__25181,(0),null);
|
||||
return cljs_http.client.request.call(null,cljs.core.merge.call(null,req,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"method","method",55703592),new cljs.core.Keyword(null,"put","put",1299772570),new cljs.core.Keyword(null,"url","url",276297046),url], null)));
|
||||
});
|
||||
|
||||
cljs_http.client.put.cljs$lang$maxFixedArity = (1);
|
||||
|
||||
/** @this {Function} */
|
||||
cljs_http.client.put.cljs$lang$applyTo = (function (seq25178){
|
||||
var G__25179 = cljs.core.first.call(null,seq25178);
|
||||
var seq25178__$1 = cljs.core.next.call(null,seq25178);
|
||||
var self__4717__auto__ = this;
|
||||
return self__4717__auto__.cljs$core$IFn$_invoke$arity$variadic(G__25179,seq25178__$1);
|
||||
});
|
||||
|
||||
|
||||
//# sourceMappingURL=client.js.map?rel=1582812678861
|
||||
1
js/compiled/out/cljs_http/client.js.map
Normal file
1
js/compiled/out/cljs_http/client.js.map
Normal file
File diff suppressed because one or more lines are too long
150
js/compiled/out/cljs_http/core.cljs
Normal file
150
js/compiled/out/cljs_http/core.cljs
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
(ns cljs-http.core
|
||||
(:import [goog.net EventType ErrorCode XhrIo]
|
||||
[goog.net Jsonp])
|
||||
(:require-macros [cljs.core.async.macros :refer [go]])
|
||||
(:require [cljs-http.util :as util]
|
||||
[cljs.core.async :as async]
|
||||
[clojure.string :as s]))
|
||||
|
||||
(def pending-requests (atom {}))
|
||||
|
||||
(defn abort!
|
||||
"Attempt to close the given channel and abort the pending HTTP request
|
||||
with which it is associated."
|
||||
[channel]
|
||||
(when-let [req (@pending-requests channel)]
|
||||
(swap! pending-requests dissoc channel)
|
||||
(async/close! channel)
|
||||
(if (.hasOwnProperty req "abort")
|
||||
(.abort req)
|
||||
(.cancel (:jsonp req) (:request req)))))
|
||||
|
||||
(defn- aborted? [xhr]
|
||||
(= (.getLastErrorCode xhr) goog.net.ErrorCode.ABORT))
|
||||
|
||||
(defn apply-default-headers!
|
||||
"Takes an XhrIo object and applies the default-headers to it."
|
||||
[xhr headers]
|
||||
(let [formatted-h (zipmap (map util/camelize (keys headers)) (vals headers))]
|
||||
(dorun
|
||||
(map (fn [[k v]]
|
||||
(.set (.-headers xhr) k v))
|
||||
formatted-h))))
|
||||
|
||||
(defn apply-response-type!
|
||||
"Takes an XhrIo object and sets response-type if not nil."
|
||||
[xhr response-type]
|
||||
(.setResponseType xhr
|
||||
(case response-type
|
||||
:array-buffer XhrIo.ResponseType.ARRAY_BUFFER
|
||||
:blob XhrIo.ResponseType.BLOB
|
||||
:document XhrIo.ResponseType.DOCUMENT
|
||||
:text XhrIo.ResponseType.TEXT
|
||||
:default XhrIo.ResponseType.DEFAULT
|
||||
nil XhrIo.ResponseType.DEFAULT)))
|
||||
|
||||
(defn build-xhr
|
||||
"Builds an XhrIo object from the request parameters."
|
||||
[{:keys [with-credentials? default-headers response-type] :as request}]
|
||||
(let [timeout (or (:timeout request) 0)
|
||||
send-credentials (if (nil? with-credentials?)
|
||||
true
|
||||
with-credentials?)]
|
||||
(doto (XhrIo.)
|
||||
(apply-default-headers! default-headers)
|
||||
(apply-response-type! response-type)
|
||||
(.setTimeoutInterval timeout)
|
||||
(.setWithCredentials send-credentials))))
|
||||
|
||||
;; goog.net.ErrorCode constants to CLJS keywords
|
||||
(def error-kw
|
||||
{0 :no-error
|
||||
1 :access-denied
|
||||
2 :file-not-found
|
||||
3 :ff-silent-error
|
||||
4 :custom-error
|
||||
5 :exception
|
||||
6 :http-error
|
||||
7 :abort
|
||||
8 :timeout
|
||||
9 :offline})
|
||||
|
||||
(defn xhr
|
||||
"Execute the HTTP request corresponding to the given Ring request
|
||||
map and return a core.async channel."
|
||||
[{:keys [request-method headers body with-credentials? cancel progress] :as request}]
|
||||
(let [channel (async/chan)
|
||||
request-url (util/build-url request)
|
||||
method (name (or request-method :get))
|
||||
headers (util/build-headers headers)
|
||||
xhr (build-xhr request)]
|
||||
(swap! pending-requests assoc channel xhr)
|
||||
(.listen xhr EventType.COMPLETE
|
||||
(fn [evt]
|
||||
(let [target (.-target evt)
|
||||
response {:status (.getStatus target)
|
||||
:success (.isSuccess target)
|
||||
:body (.getResponse target)
|
||||
:headers (util/parse-headers (.getAllResponseHeaders target))
|
||||
:trace-redirects [request-url (.getLastUri target)]
|
||||
:error-code (error-kw (.getLastErrorCode target))
|
||||
:error-text (.getLastError target)}]
|
||||
(if-not (aborted? xhr)
|
||||
(async/put! channel response))
|
||||
(swap! pending-requests dissoc channel)
|
||||
(if cancel (async/close! cancel))
|
||||
(async/close! channel))))
|
||||
|
||||
(when progress
|
||||
(let [listener (fn [direction evt]
|
||||
(async/put! progress (merge {:direction direction :loaded (.-loaded evt)}
|
||||
(if (.-lengthComputable evt) {:total (.-total evt)}))))]
|
||||
(doto xhr
|
||||
(.setProgressEventsEnabled true)
|
||||
(.listen EventType.UPLOAD_PROGRESS (partial listener :upload))
|
||||
(.listen EventType.DOWNLOAD_PROGRESS (partial listener :download)))))
|
||||
|
||||
(.send xhr request-url method body headers)
|
||||
(if cancel
|
||||
(go
|
||||
(let [v (async/<! cancel)]
|
||||
(if (not (.isComplete xhr))
|
||||
(.abort xhr)))))
|
||||
channel))
|
||||
|
||||
(defn jsonp
|
||||
"Execute the JSONP request corresponding to the given Ring request
|
||||
map and return a core.async channel."
|
||||
[{:keys [timeout callback-name cancel keywordize-keys?]
|
||||
:or {keywordize-keys? true}
|
||||
:as request}]
|
||||
(let [channel (async/chan)
|
||||
jsonp (Jsonp. (util/build-url request) callback-name)]
|
||||
(.setRequestTimeout jsonp timeout)
|
||||
(let [req (.send jsonp nil
|
||||
(fn success-callback [data]
|
||||
(let [response {:status 200
|
||||
:success true
|
||||
:body (js->clj data :keywordize-keys keywordize-keys?)}]
|
||||
(async/put! channel response)
|
||||
(swap! pending-requests dissoc channel)
|
||||
(if cancel (async/close! cancel))
|
||||
(async/close! channel)))
|
||||
(fn error-callback []
|
||||
(swap! pending-requests dissoc channel)
|
||||
(if cancel (async/close! cancel))
|
||||
(async/close! channel)))]
|
||||
(swap! pending-requests assoc channel {:jsonp jsonp :request req})
|
||||
(if cancel
|
||||
(go
|
||||
(let [v (async/<! cancel)]
|
||||
(.cancel jsonp req)))))
|
||||
channel))
|
||||
|
||||
(defn request
|
||||
"Execute the HTTP request corresponding to the given Ring request
|
||||
map and return a core.async channel."
|
||||
[{:keys [request-method] :as request}]
|
||||
(if (= request-method :jsonp)
|
||||
(jsonp request)
|
||||
(xhr request)))
|
||||
1
js/compiled/out/cljs_http/core.cljs.cache.json
Normal file
1
js/compiled/out/cljs_http/core.cljs.cache.json
Normal file
File diff suppressed because one or more lines are too long
480
js/compiled/out/cljs_http/core.js
Normal file
480
js/compiled/out/cljs_http/core.js
Normal file
|
|
@ -0,0 +1,480 @@
|
|||
// Compiled by ClojureScript 1.10.520 {}
|
||||
goog.provide('cljs_http.core');
|
||||
goog.require('cljs.core');
|
||||
goog.require('goog.net.EventType');
|
||||
goog.require('goog.net.ErrorCode');
|
||||
goog.require('goog.net.XhrIo');
|
||||
goog.require('goog.net.Jsonp');
|
||||
goog.require('cljs_http.util');
|
||||
goog.require('cljs.core.async');
|
||||
goog.require('clojure.string');
|
||||
cljs_http.core.pending_requests = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY);
|
||||
/**
|
||||
* Attempt to close the given channel and abort the pending HTTP request
|
||||
* with which it is associated.
|
||||
*/
|
||||
cljs_http.core.abort_BANG_ = (function cljs_http$core$abort_BANG_(channel){
|
||||
var temp__5720__auto__ = cljs.core.deref.call(null,cljs_http.core.pending_requests).call(null,channel);
|
||||
if(cljs.core.truth_(temp__5720__auto__)){
|
||||
var req = temp__5720__auto__;
|
||||
cljs.core.swap_BANG_.call(null,cljs_http.core.pending_requests,cljs.core.dissoc,channel);
|
||||
|
||||
cljs.core.async.close_BANG_.call(null,channel);
|
||||
|
||||
if(cljs.core.truth_(req.hasOwnProperty("abort"))){
|
||||
return req.abort();
|
||||
} else {
|
||||
return new cljs.core.Keyword(null,"jsonp","jsonp",226119588).cljs$core$IFn$_invoke$arity$1(req).cancel(new cljs.core.Keyword(null,"request","request",1772954723).cljs$core$IFn$_invoke$arity$1(req));
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
cljs_http.core.aborted_QMARK_ = (function cljs_http$core$aborted_QMARK_(xhr){
|
||||
return cljs.core._EQ_.call(null,xhr.getLastErrorCode(),goog.net.ErrorCode.ABORT);
|
||||
});
|
||||
/**
|
||||
* Takes an XhrIo object and applies the default-headers to it.
|
||||
*/
|
||||
cljs_http.core.apply_default_headers_BANG_ = (function cljs_http$core$apply_default_headers_BANG_(xhr,headers){
|
||||
var formatted_h = cljs.core.zipmap.call(null,cljs.core.map.call(null,cljs_http.util.camelize,cljs.core.keys.call(null,headers)),cljs.core.vals.call(null,headers));
|
||||
return cljs.core.dorun.call(null,cljs.core.map.call(null,((function (formatted_h){
|
||||
return (function (p__24892){
|
||||
var vec__24893 = p__24892;
|
||||
var k = cljs.core.nth.call(null,vec__24893,(0),null);
|
||||
var v = cljs.core.nth.call(null,vec__24893,(1),null);
|
||||
return xhr.headers.set(k,v);
|
||||
});})(formatted_h))
|
||||
,formatted_h));
|
||||
});
|
||||
/**
|
||||
* Takes an XhrIo object and sets response-type if not nil.
|
||||
*/
|
||||
cljs_http.core.apply_response_type_BANG_ = (function cljs_http$core$apply_response_type_BANG_(xhr,response_type){
|
||||
return xhr.setResponseType((function (){var G__24896 = response_type;
|
||||
if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"array-buffer","array-buffer",519008380),G__24896)){
|
||||
return goog.net.XhrIo.ResponseType.ARRAY_BUFFER;
|
||||
} else {
|
||||
if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"blob","blob",1636965233),G__24896)){
|
||||
return goog.net.XhrIo.ResponseType.BLOB;
|
||||
} else {
|
||||
if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"document","document",-1329188687),G__24896)){
|
||||
return goog.net.XhrIo.ResponseType.DOCUMENT;
|
||||
} else {
|
||||
if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"text","text",-1790561697),G__24896)){
|
||||
return goog.net.XhrIo.ResponseType.TEXT;
|
||||
} else {
|
||||
if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"default","default",-1987822328),G__24896)){
|
||||
return goog.net.XhrIo.ResponseType.DEFAULT;
|
||||
} else {
|
||||
if(cljs.core._EQ_.call(null,null,G__24896)){
|
||||
return goog.net.XhrIo.ResponseType.DEFAULT;
|
||||
} else {
|
||||
throw (new Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__24896)].join('')));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})());
|
||||
});
|
||||
/**
|
||||
* Builds an XhrIo object from the request parameters.
|
||||
*/
|
||||
cljs_http.core.build_xhr = (function cljs_http$core$build_xhr(p__24897){
|
||||
var map__24898 = p__24897;
|
||||
var map__24898__$1 = (((((!((map__24898 == null))))?(((((map__24898.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__24898.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__24898):map__24898);
|
||||
var request = map__24898__$1;
|
||||
var with_credentials_QMARK_ = cljs.core.get.call(null,map__24898__$1,new cljs.core.Keyword(null,"with-credentials?","with-credentials?",-1773202222));
|
||||
var default_headers = cljs.core.get.call(null,map__24898__$1,new cljs.core.Keyword(null,"default-headers","default-headers",-43146094));
|
||||
var response_type = cljs.core.get.call(null,map__24898__$1,new cljs.core.Keyword(null,"response-type","response-type",-1493770458));
|
||||
var timeout = (function (){var or__4131__auto__ = new cljs.core.Keyword(null,"timeout","timeout",-318625318).cljs$core$IFn$_invoke$arity$1(request);
|
||||
if(cljs.core.truth_(or__4131__auto__)){
|
||||
return or__4131__auto__;
|
||||
} else {
|
||||
return (0);
|
||||
}
|
||||
})();
|
||||
var send_credentials = (((with_credentials_QMARK_ == null))?true:with_credentials_QMARK_);
|
||||
var G__24900 = (new goog.net.XhrIo());
|
||||
cljs_http.core.apply_default_headers_BANG_.call(null,G__24900,default_headers);
|
||||
|
||||
cljs_http.core.apply_response_type_BANG_.call(null,G__24900,response_type);
|
||||
|
||||
G__24900.setTimeoutInterval(timeout);
|
||||
|
||||
G__24900.setWithCredentials(send_credentials);
|
||||
|
||||
return G__24900;
|
||||
});
|
||||
cljs_http.core.error_kw = cljs.core.PersistentHashMap.fromArrays([(0),(7),(1),(4),(6),(3),(2),(9),(5),(8)],[new cljs.core.Keyword(null,"no-error","no-error",1984610064),new cljs.core.Keyword(null,"abort","abort",521193198),new cljs.core.Keyword(null,"access-denied","access-denied",959449406),new cljs.core.Keyword(null,"custom-error","custom-error",-1565161123),new cljs.core.Keyword(null,"http-error","http-error",-1040049553),new cljs.core.Keyword(null,"ff-silent-error","ff-silent-error",189390514),new cljs.core.Keyword(null,"file-not-found","file-not-found",-65398940),new cljs.core.Keyword(null,"offline","offline",-107631935),new cljs.core.Keyword(null,"exception","exception",-335277064),new cljs.core.Keyword(null,"timeout","timeout",-318625318)]);
|
||||
/**
|
||||
* Execute the HTTP request corresponding to the given Ring request
|
||||
* map and return a core.async channel.
|
||||
*/
|
||||
cljs_http.core.xhr = (function cljs_http$core$xhr(p__24901){
|
||||
var map__24902 = p__24901;
|
||||
var map__24902__$1 = (((((!((map__24902 == null))))?(((((map__24902.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__24902.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__24902):map__24902);
|
||||
var request = map__24902__$1;
|
||||
var request_method = cljs.core.get.call(null,map__24902__$1,new cljs.core.Keyword(null,"request-method","request-method",1764796830));
|
||||
var headers = cljs.core.get.call(null,map__24902__$1,new cljs.core.Keyword(null,"headers","headers",-835030129));
|
||||
var body = cljs.core.get.call(null,map__24902__$1,new cljs.core.Keyword(null,"body","body",-2049205669));
|
||||
var with_credentials_QMARK_ = cljs.core.get.call(null,map__24902__$1,new cljs.core.Keyword(null,"with-credentials?","with-credentials?",-1773202222));
|
||||
var cancel = cljs.core.get.call(null,map__24902__$1,new cljs.core.Keyword(null,"cancel","cancel",-1964088360));
|
||||
var progress = cljs.core.get.call(null,map__24902__$1,new cljs.core.Keyword(null,"progress","progress",244323547));
|
||||
var channel = cljs.core.async.chan.call(null);
|
||||
var request_url = cljs_http.util.build_url.call(null,request);
|
||||
var method = cljs.core.name.call(null,(function (){var or__4131__auto__ = request_method;
|
||||
if(cljs.core.truth_(or__4131__auto__)){
|
||||
return or__4131__auto__;
|
||||
} else {
|
||||
return new cljs.core.Keyword(null,"get","get",1683182755);
|
||||
}
|
||||
})());
|
||||
var headers__$1 = cljs_http.util.build_headers.call(null,headers);
|
||||
var xhr = cljs_http.core.build_xhr.call(null,request);
|
||||
cljs.core.swap_BANG_.call(null,cljs_http.core.pending_requests,cljs.core.assoc,channel,xhr);
|
||||
|
||||
xhr.listen(goog.net.EventType.COMPLETE,((function (channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress){
|
||||
return (function (evt){
|
||||
var target = evt.target;
|
||||
var response = new cljs.core.PersistentArrayMap(null, 7, [new cljs.core.Keyword(null,"status","status",-1997798413),target.getStatus(),new cljs.core.Keyword(null,"success","success",1890645906),target.isSuccess(),new cljs.core.Keyword(null,"body","body",-2049205669),target.getResponse(),new cljs.core.Keyword(null,"headers","headers",-835030129),cljs_http.util.parse_headers.call(null,target.getAllResponseHeaders()),new cljs.core.Keyword(null,"trace-redirects","trace-redirects",-1149427907),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [request_url,target.getLastUri()], null),new cljs.core.Keyword(null,"error-code","error-code",180497232),cljs_http.core.error_kw.call(null,target.getLastErrorCode()),new cljs.core.Keyword(null,"error-text","error-text",2021893718),target.getLastError()], null);
|
||||
if((!(cljs_http.core.aborted_QMARK_.call(null,xhr)))){
|
||||
cljs.core.async.put_BANG_.call(null,channel,response);
|
||||
} else {
|
||||
}
|
||||
|
||||
cljs.core.swap_BANG_.call(null,cljs_http.core.pending_requests,cljs.core.dissoc,channel);
|
||||
|
||||
if(cljs.core.truth_(cancel)){
|
||||
cljs.core.async.close_BANG_.call(null,cancel);
|
||||
} else {
|
||||
}
|
||||
|
||||
return cljs.core.async.close_BANG_.call(null,channel);
|
||||
});})(channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress))
|
||||
);
|
||||
|
||||
if(cljs.core.truth_(progress)){
|
||||
var listener_24926 = ((function (channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress){
|
||||
return (function (direction,evt){
|
||||
return cljs.core.async.put_BANG_.call(null,progress,cljs.core.merge.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"direction","direction",-633359395),direction,new cljs.core.Keyword(null,"loaded","loaded",-1246482293),evt.loaded], null),(cljs.core.truth_(evt.lengthComputable)?new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"total","total",1916810418),evt.total], null):null)));
|
||||
});})(channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress))
|
||||
;
|
||||
var G__24904_24927 = xhr;
|
||||
G__24904_24927.setProgressEventsEnabled(true);
|
||||
|
||||
G__24904_24927.listen(goog.net.EventType.UPLOAD_PROGRESS,cljs.core.partial.call(null,listener_24926,new cljs.core.Keyword(null,"upload","upload",-255769218)));
|
||||
|
||||
G__24904_24927.listen(goog.net.EventType.DOWNLOAD_PROGRESS,cljs.core.partial.call(null,listener_24926,new cljs.core.Keyword(null,"download","download",-300081668)));
|
||||
|
||||
} else {
|
||||
}
|
||||
|
||||
xhr.send(request_url,method,body,headers__$1);
|
||||
|
||||
if(cljs.core.truth_(cancel)){
|
||||
var c__22951__auto___24928 = cljs.core.async.chan.call(null,(1));
|
||||
cljs.core.async.impl.dispatch.run.call(null,((function (c__22951__auto___24928,channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress){
|
||||
return (function (){
|
||||
var f__22952__auto__ = (function (){var switch__22856__auto__ = ((function (c__22951__auto___24928,channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress){
|
||||
return (function (state_24915){
|
||||
var state_val_24916 = (state_24915[(1)]);
|
||||
if((state_val_24916 === (1))){
|
||||
var state_24915__$1 = state_24915;
|
||||
return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_24915__$1,(2),cancel);
|
||||
} else {
|
||||
if((state_val_24916 === (2))){
|
||||
var inst_24906 = (state_24915[(2)]);
|
||||
var inst_24907 = xhr.isComplete();
|
||||
var inst_24908 = cljs.core.not.call(null,inst_24907);
|
||||
var state_24915__$1 = (function (){var statearr_24917 = state_24915;
|
||||
(statearr_24917[(7)] = inst_24906);
|
||||
|
||||
return statearr_24917;
|
||||
})();
|
||||
if(inst_24908){
|
||||
var statearr_24918_24929 = state_24915__$1;
|
||||
(statearr_24918_24929[(1)] = (3));
|
||||
|
||||
} else {
|
||||
var statearr_24919_24930 = state_24915__$1;
|
||||
(statearr_24919_24930[(1)] = (4));
|
||||
|
||||
}
|
||||
|
||||
return new cljs.core.Keyword(null,"recur","recur",-437573268);
|
||||
} else {
|
||||
if((state_val_24916 === (3))){
|
||||
var inst_24910 = xhr.abort();
|
||||
var state_24915__$1 = state_24915;
|
||||
var statearr_24920_24931 = state_24915__$1;
|
||||
(statearr_24920_24931[(2)] = inst_24910);
|
||||
|
||||
(statearr_24920_24931[(1)] = (5));
|
||||
|
||||
|
||||
return new cljs.core.Keyword(null,"recur","recur",-437573268);
|
||||
} else {
|
||||
if((state_val_24916 === (4))){
|
||||
var state_24915__$1 = state_24915;
|
||||
var statearr_24921_24932 = state_24915__$1;
|
||||
(statearr_24921_24932[(2)] = null);
|
||||
|
||||
(statearr_24921_24932[(1)] = (5));
|
||||
|
||||
|
||||
return new cljs.core.Keyword(null,"recur","recur",-437573268);
|
||||
} else {
|
||||
if((state_val_24916 === (5))){
|
||||
var inst_24913 = (state_24915[(2)]);
|
||||
var state_24915__$1 = state_24915;
|
||||
return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_24915__$1,inst_24913);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});})(c__22951__auto___24928,channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress))
|
||||
;
|
||||
return ((function (switch__22856__auto__,c__22951__auto___24928,channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress){
|
||||
return (function() {
|
||||
var cljs_http$core$xhr_$_state_machine__22857__auto__ = null;
|
||||
var cljs_http$core$xhr_$_state_machine__22857__auto____0 = (function (){
|
||||
var statearr_24922 = [null,null,null,null,null,null,null,null];
|
||||
(statearr_24922[(0)] = cljs_http$core$xhr_$_state_machine__22857__auto__);
|
||||
|
||||
(statearr_24922[(1)] = (1));
|
||||
|
||||
return statearr_24922;
|
||||
});
|
||||
var cljs_http$core$xhr_$_state_machine__22857__auto____1 = (function (state_24915){
|
||||
while(true){
|
||||
var ret_value__22858__auto__ = (function (){try{while(true){
|
||||
var result__22859__auto__ = switch__22856__auto__.call(null,state_24915);
|
||||
if(cljs.core.keyword_identical_QMARK_.call(null,result__22859__auto__,new cljs.core.Keyword(null,"recur","recur",-437573268))){
|
||||
continue;
|
||||
} else {
|
||||
return result__22859__auto__;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}catch (e24923){if((e24923 instanceof Object)){
|
||||
var ex__22860__auto__ = e24923;
|
||||
var statearr_24924_24933 = state_24915;
|
||||
(statearr_24924_24933[(5)] = ex__22860__auto__);
|
||||
|
||||
|
||||
cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_24915);
|
||||
|
||||
return new cljs.core.Keyword(null,"recur","recur",-437573268);
|
||||
} else {
|
||||
throw e24923;
|
||||
|
||||
}
|
||||
}})();
|
||||
if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__22858__auto__,new cljs.core.Keyword(null,"recur","recur",-437573268))){
|
||||
var G__24934 = state_24915;
|
||||
state_24915 = G__24934;
|
||||
continue;
|
||||
} else {
|
||||
return ret_value__22858__auto__;
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
cljs_http$core$xhr_$_state_machine__22857__auto__ = function(state_24915){
|
||||
switch(arguments.length){
|
||||
case 0:
|
||||
return cljs_http$core$xhr_$_state_machine__22857__auto____0.call(this);
|
||||
case 1:
|
||||
return cljs_http$core$xhr_$_state_machine__22857__auto____1.call(this,state_24915);
|
||||
}
|
||||
throw(new Error('Invalid arity: ' + arguments.length));
|
||||
};
|
||||
cljs_http$core$xhr_$_state_machine__22857__auto__.cljs$core$IFn$_invoke$arity$0 = cljs_http$core$xhr_$_state_machine__22857__auto____0;
|
||||
cljs_http$core$xhr_$_state_machine__22857__auto__.cljs$core$IFn$_invoke$arity$1 = cljs_http$core$xhr_$_state_machine__22857__auto____1;
|
||||
return cljs_http$core$xhr_$_state_machine__22857__auto__;
|
||||
})()
|
||||
;})(switch__22856__auto__,c__22951__auto___24928,channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress))
|
||||
})();
|
||||
var state__22953__auto__ = (function (){var statearr_24925 = f__22952__auto__.call(null);
|
||||
(statearr_24925[(6)] = c__22951__auto___24928);
|
||||
|
||||
return statearr_24925;
|
||||
})();
|
||||
return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__22953__auto__);
|
||||
});})(c__22951__auto___24928,channel,request_url,method,headers__$1,xhr,map__24902,map__24902__$1,request,request_method,headers,body,with_credentials_QMARK_,cancel,progress))
|
||||
);
|
||||
|
||||
} else {
|
||||
}
|
||||
|
||||
return channel;
|
||||
});
|
||||
/**
|
||||
* Execute the JSONP request corresponding to the given Ring request
|
||||
* map and return a core.async channel.
|
||||
*/
|
||||
cljs_http.core.jsonp = (function cljs_http$core$jsonp(p__24935){
|
||||
var map__24936 = p__24935;
|
||||
var map__24936__$1 = (((((!((map__24936 == null))))?(((((map__24936.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__24936.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__24936):map__24936);
|
||||
var request = map__24936__$1;
|
||||
var timeout = cljs.core.get.call(null,map__24936__$1,new cljs.core.Keyword(null,"timeout","timeout",-318625318));
|
||||
var callback_name = cljs.core.get.call(null,map__24936__$1,new cljs.core.Keyword(null,"callback-name","callback-name",336964714));
|
||||
var cancel = cljs.core.get.call(null,map__24936__$1,new cljs.core.Keyword(null,"cancel","cancel",-1964088360));
|
||||
var keywordize_keys_QMARK_ = cljs.core.get.call(null,map__24936__$1,new cljs.core.Keyword(null,"keywordize-keys?","keywordize-keys?",-254545987),true);
|
||||
var channel = cljs.core.async.chan.call(null);
|
||||
var jsonp = (new goog.net.Jsonp(cljs_http.util.build_url.call(null,request),callback_name));
|
||||
jsonp.setRequestTimeout(timeout);
|
||||
|
||||
var req_24949 = jsonp.send(null,((function (channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_){
|
||||
return (function cljs_http$core$jsonp_$_success_callback(data){
|
||||
var response = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"status","status",-1997798413),(200),new cljs.core.Keyword(null,"success","success",1890645906),true,new cljs.core.Keyword(null,"body","body",-2049205669),cljs.core.js__GT_clj.call(null,data,new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",1310784252),keywordize_keys_QMARK_)], null);
|
||||
cljs.core.async.put_BANG_.call(null,channel,response);
|
||||
|
||||
cljs.core.swap_BANG_.call(null,cljs_http.core.pending_requests,cljs.core.dissoc,channel);
|
||||
|
||||
if(cljs.core.truth_(cancel)){
|
||||
cljs.core.async.close_BANG_.call(null,cancel);
|
||||
} else {
|
||||
}
|
||||
|
||||
return cljs.core.async.close_BANG_.call(null,channel);
|
||||
});})(channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_))
|
||||
,((function (channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_){
|
||||
return (function cljs_http$core$jsonp_$_error_callback(){
|
||||
cljs.core.swap_BANG_.call(null,cljs_http.core.pending_requests,cljs.core.dissoc,channel);
|
||||
|
||||
if(cljs.core.truth_(cancel)){
|
||||
cljs.core.async.close_BANG_.call(null,cancel);
|
||||
} else {
|
||||
}
|
||||
|
||||
return cljs.core.async.close_BANG_.call(null,channel);
|
||||
});})(channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_))
|
||||
);
|
||||
cljs.core.swap_BANG_.call(null,cljs_http.core.pending_requests,cljs.core.assoc,channel,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"jsonp","jsonp",226119588),jsonp,new cljs.core.Keyword(null,"request","request",1772954723),req_24949], null));
|
||||
|
||||
if(cljs.core.truth_(cancel)){
|
||||
var c__22951__auto___24950 = cljs.core.async.chan.call(null,(1));
|
||||
cljs.core.async.impl.dispatch.run.call(null,((function (c__22951__auto___24950,req_24949,channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_){
|
||||
return (function (){
|
||||
var f__22952__auto__ = (function (){var switch__22856__auto__ = ((function (c__22951__auto___24950,req_24949,channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_){
|
||||
return (function (state_24942){
|
||||
var state_val_24943 = (state_24942[(1)]);
|
||||
if((state_val_24943 === (1))){
|
||||
var state_24942__$1 = state_24942;
|
||||
return cljs.core.async.impl.ioc_helpers.take_BANG_.call(null,state_24942__$1,(2),cancel);
|
||||
} else {
|
||||
if((state_val_24943 === (2))){
|
||||
var inst_24939 = (state_24942[(2)]);
|
||||
var inst_24940 = jsonp.cancel(req_24949);
|
||||
var state_24942__$1 = (function (){var statearr_24944 = state_24942;
|
||||
(statearr_24944[(7)] = inst_24939);
|
||||
|
||||
return statearr_24944;
|
||||
})();
|
||||
return cljs.core.async.impl.ioc_helpers.return_chan.call(null,state_24942__$1,inst_24940);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
});})(c__22951__auto___24950,req_24949,channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_))
|
||||
;
|
||||
return ((function (switch__22856__auto__,c__22951__auto___24950,req_24949,channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_){
|
||||
return (function() {
|
||||
var cljs_http$core$jsonp_$_state_machine__22857__auto__ = null;
|
||||
var cljs_http$core$jsonp_$_state_machine__22857__auto____0 = (function (){
|
||||
var statearr_24945 = [null,null,null,null,null,null,null,null];
|
||||
(statearr_24945[(0)] = cljs_http$core$jsonp_$_state_machine__22857__auto__);
|
||||
|
||||
(statearr_24945[(1)] = (1));
|
||||
|
||||
return statearr_24945;
|
||||
});
|
||||
var cljs_http$core$jsonp_$_state_machine__22857__auto____1 = (function (state_24942){
|
||||
while(true){
|
||||
var ret_value__22858__auto__ = (function (){try{while(true){
|
||||
var result__22859__auto__ = switch__22856__auto__.call(null,state_24942);
|
||||
if(cljs.core.keyword_identical_QMARK_.call(null,result__22859__auto__,new cljs.core.Keyword(null,"recur","recur",-437573268))){
|
||||
continue;
|
||||
} else {
|
||||
return result__22859__auto__;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}catch (e24946){if((e24946 instanceof Object)){
|
||||
var ex__22860__auto__ = e24946;
|
||||
var statearr_24947_24951 = state_24942;
|
||||
(statearr_24947_24951[(5)] = ex__22860__auto__);
|
||||
|
||||
|
||||
cljs.core.async.impl.ioc_helpers.process_exception.call(null,state_24942);
|
||||
|
||||
return new cljs.core.Keyword(null,"recur","recur",-437573268);
|
||||
} else {
|
||||
throw e24946;
|
||||
|
||||
}
|
||||
}})();
|
||||
if(cljs.core.keyword_identical_QMARK_.call(null,ret_value__22858__auto__,new cljs.core.Keyword(null,"recur","recur",-437573268))){
|
||||
var G__24952 = state_24942;
|
||||
state_24942 = G__24952;
|
||||
continue;
|
||||
} else {
|
||||
return ret_value__22858__auto__;
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
cljs_http$core$jsonp_$_state_machine__22857__auto__ = function(state_24942){
|
||||
switch(arguments.length){
|
||||
case 0:
|
||||
return cljs_http$core$jsonp_$_state_machine__22857__auto____0.call(this);
|
||||
case 1:
|
||||
return cljs_http$core$jsonp_$_state_machine__22857__auto____1.call(this,state_24942);
|
||||
}
|
||||
throw(new Error('Invalid arity: ' + arguments.length));
|
||||
};
|
||||
cljs_http$core$jsonp_$_state_machine__22857__auto__.cljs$core$IFn$_invoke$arity$0 = cljs_http$core$jsonp_$_state_machine__22857__auto____0;
|
||||
cljs_http$core$jsonp_$_state_machine__22857__auto__.cljs$core$IFn$_invoke$arity$1 = cljs_http$core$jsonp_$_state_machine__22857__auto____1;
|
||||
return cljs_http$core$jsonp_$_state_machine__22857__auto__;
|
||||
})()
|
||||
;})(switch__22856__auto__,c__22951__auto___24950,req_24949,channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_))
|
||||
})();
|
||||
var state__22953__auto__ = (function (){var statearr_24948 = f__22952__auto__.call(null);
|
||||
(statearr_24948[(6)] = c__22951__auto___24950);
|
||||
|
||||
return statearr_24948;
|
||||
})();
|
||||
return cljs.core.async.impl.ioc_helpers.run_state_machine_wrapped.call(null,state__22953__auto__);
|
||||
});})(c__22951__auto___24950,req_24949,channel,jsonp,map__24936,map__24936__$1,request,timeout,callback_name,cancel,keywordize_keys_QMARK_))
|
||||
);
|
||||
|
||||
} else {
|
||||
}
|
||||
|
||||
return channel;
|
||||
});
|
||||
/**
|
||||
* Execute the HTTP request corresponding to the given Ring request
|
||||
* map and return a core.async channel.
|
||||
*/
|
||||
cljs_http.core.request = (function cljs_http$core$request(p__24953){
|
||||
var map__24954 = p__24953;
|
||||
var map__24954__$1 = (((((!((map__24954 == null))))?(((((map__24954.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__24954.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__24954):map__24954);
|
||||
var request = map__24954__$1;
|
||||
var request_method = cljs.core.get.call(null,map__24954__$1,new cljs.core.Keyword(null,"request-method","request-method",1764796830));
|
||||
if(cljs.core._EQ_.call(null,request_method,new cljs.core.Keyword(null,"jsonp","jsonp",226119588))){
|
||||
return cljs_http.core.jsonp.call(null,request);
|
||||
} else {
|
||||
return cljs_http.core.xhr.call(null,request);
|
||||
}
|
||||
});
|
||||
|
||||
//# sourceMappingURL=core.js.map?rel=1582812678726
|
||||
1
js/compiled/out/cljs_http/core.js.map
Normal file
1
js/compiled/out/cljs_http/core.js.map
Normal file
File diff suppressed because one or more lines are too long
77
js/compiled/out/cljs_http/util.cljs
Normal file
77
js/compiled/out/cljs_http/util.cljs
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
(ns cljs-http.util
|
||||
(:refer-clojure :exclude [uri?])
|
||||
(:import goog.Uri)
|
||||
(:require [clojure.string :refer [blank? capitalize join split lower-case]]
|
||||
[cognitect.transit :as t]
|
||||
[goog.userAgent :as agent]
|
||||
[no.en.core :refer [base64-encode]]))
|
||||
|
||||
(defn basic-auth
|
||||
"Returns the value of the HTTP basic authentication header for
|
||||
`credentials`."
|
||||
[credentials]
|
||||
(if credentials
|
||||
(let [[username password]
|
||||
(if (map? credentials)
|
||||
(map credentials [:username :password])
|
||||
credentials)]
|
||||
(str "Basic " (base64-encode (str username ":" password))))))
|
||||
|
||||
(defn build-url
|
||||
"Build the url from the request map."
|
||||
[{:keys [scheme server-name server-port uri query-string]}]
|
||||
(str (doto (Uri.)
|
||||
(.setScheme (name (or scheme :http)))
|
||||
(.setDomain server-name)
|
||||
(.setPort server-port)
|
||||
(.setPath uri)
|
||||
(.setQuery query-string true))))
|
||||
|
||||
(defn camelize
|
||||
"Returns dash separated string `s` in camel case."
|
||||
[s]
|
||||
(->> (split (str s) #"-")
|
||||
(map capitalize)
|
||||
(join "-")))
|
||||
|
||||
(defn build-headers
|
||||
"Build the headers from the map."
|
||||
[m] (clj->js (zipmap (map camelize (keys m)) (vals m))))
|
||||
|
||||
(defn user-agent
|
||||
"Returns the user agent."
|
||||
[] (agent/getUserAgentString))
|
||||
|
||||
(defn android?
|
||||
"Returns true if the user agent is an Android client."
|
||||
[] (re-matches #"(?i).*android.*" (user-agent)))
|
||||
|
||||
(defn transit-decode
|
||||
"Transit decode an object from `s`."
|
||||
[s type opts]
|
||||
(let [rdr (t/reader type opts)]
|
||||
(t/read rdr s)))
|
||||
|
||||
(defn transit-encode
|
||||
"Transit encode `x` into a String."
|
||||
[x type opts]
|
||||
(let [wrtr (t/writer type opts)]
|
||||
(t/write wrtr x)))
|
||||
|
||||
(defn json-decode
|
||||
"JSON decode an object from `s`."
|
||||
[s]
|
||||
(let [v (if-not (clojure.string/blank? s) (js/JSON.parse s))]
|
||||
(when (some? v)
|
||||
(js->clj v :keywordize-keys true))))
|
||||
|
||||
(defn json-encode
|
||||
"JSON encode `x` into a String."
|
||||
[x] (js/JSON.stringify (clj->js x)))
|
||||
|
||||
(defn parse-headers [headers]
|
||||
(reduce
|
||||
#(let [[k v] (split %2 #":\s+")]
|
||||
(if (or (blank? k) (blank? v))
|
||||
%1 (assoc %1 (lower-case k) v)))
|
||||
{} (split (or headers "") #"(\n)|(\r)|(\r\n)|(\n\r)")))
|
||||
1
js/compiled/out/cljs_http/util.cljs.cache.json
Normal file
1
js/compiled/out/cljs_http/util.cljs.cache.json
Normal file
File diff suppressed because one or more lines are too long
128
js/compiled/out/cljs_http/util.js
Normal file
128
js/compiled/out/cljs_http/util.js
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
// Compiled by ClojureScript 1.10.520 {}
|
||||
goog.provide('cljs_http.util');
|
||||
goog.require('cljs.core');
|
||||
goog.require('goog.Uri');
|
||||
goog.require('clojure.string');
|
||||
goog.require('cognitect.transit');
|
||||
goog.require('goog.userAgent');
|
||||
goog.require('no.en.core');
|
||||
/**
|
||||
* Returns the value of the HTTP basic authentication header for
|
||||
* `credentials`.
|
||||
*/
|
||||
cljs_http.util.basic_auth = (function cljs_http$util$basic_auth(credentials){
|
||||
if(cljs.core.truth_(credentials)){
|
||||
var vec__21601 = ((cljs.core.map_QMARK_.call(null,credentials))?cljs.core.map.call(null,credentials,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"username","username",1605666410),new cljs.core.Keyword(null,"password","password",417022471)], null)):credentials);
|
||||
var username = cljs.core.nth.call(null,vec__21601,(0),null);
|
||||
var password = cljs.core.nth.call(null,vec__21601,(1),null);
|
||||
return ["Basic ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(no.en.core.base64_encode.call(null,[cljs.core.str.cljs$core$IFn$_invoke$arity$1(username),":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(password)].join('')))].join('');
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
/**
|
||||
* Build the url from the request map.
|
||||
*/
|
||||
cljs_http.util.build_url = (function cljs_http$util$build_url(p__21604){
|
||||
var map__21605 = p__21604;
|
||||
var map__21605__$1 = (((((!((map__21605 == null))))?(((((map__21605.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__21605.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__21605):map__21605);
|
||||
var scheme = cljs.core.get.call(null,map__21605__$1,new cljs.core.Keyword(null,"scheme","scheme",90199613));
|
||||
var server_name = cljs.core.get.call(null,map__21605__$1,new cljs.core.Keyword(null,"server-name","server-name",-1012104295));
|
||||
var server_port = cljs.core.get.call(null,map__21605__$1,new cljs.core.Keyword(null,"server-port","server-port",663745648));
|
||||
var uri = cljs.core.get.call(null,map__21605__$1,new cljs.core.Keyword(null,"uri","uri",-774711847));
|
||||
var query_string = cljs.core.get.call(null,map__21605__$1,new cljs.core.Keyword(null,"query-string","query-string",-1018845061));
|
||||
return cljs.core.str.cljs$core$IFn$_invoke$arity$1((function (){var G__21608 = (new goog.Uri());
|
||||
G__21608.setScheme(cljs.core.name.call(null,(function (){var or__4131__auto__ = scheme;
|
||||
if(cljs.core.truth_(or__4131__auto__)){
|
||||
return or__4131__auto__;
|
||||
} else {
|
||||
return new cljs.core.Keyword(null,"http","http",382524695);
|
||||
}
|
||||
})()));
|
||||
|
||||
G__21608.setDomain(server_name);
|
||||
|
||||
G__21608.setPort(server_port);
|
||||
|
||||
G__21608.setPath(uri);
|
||||
|
||||
G__21608.setQuery(query_string,true);
|
||||
|
||||
return G__21608;
|
||||
})());
|
||||
});
|
||||
/**
|
||||
* Returns dash separated string `s` in camel case.
|
||||
*/
|
||||
cljs_http.util.camelize = (function cljs_http$util$camelize(s){
|
||||
return clojure.string.join.call(null,"-",cljs.core.map.call(null,clojure.string.capitalize,clojure.string.split.call(null,cljs.core.str.cljs$core$IFn$_invoke$arity$1(s),/-/)));
|
||||
});
|
||||
/**
|
||||
* Build the headers from the map.
|
||||
*/
|
||||
cljs_http.util.build_headers = (function cljs_http$util$build_headers(m){
|
||||
return cljs.core.clj__GT_js.call(null,cljs.core.zipmap.call(null,cljs.core.map.call(null,cljs_http.util.camelize,cljs.core.keys.call(null,m)),cljs.core.vals.call(null,m)));
|
||||
});
|
||||
/**
|
||||
* Returns the user agent.
|
||||
*/
|
||||
cljs_http.util.user_agent = (function cljs_http$util$user_agent(){
|
||||
return goog.userAgent.getUserAgentString();
|
||||
});
|
||||
/**
|
||||
* Returns true if the user agent is an Android client.
|
||||
*/
|
||||
cljs_http.util.android_QMARK_ = (function cljs_http$util$android_QMARK_(){
|
||||
return cljs.core.re_matches.call(null,/.*android.*/i,cljs_http.util.user_agent.call(null));
|
||||
});
|
||||
/**
|
||||
* Transit decode an object from `s`.
|
||||
*/
|
||||
cljs_http.util.transit_decode = (function cljs_http$util$transit_decode(s,type,opts){
|
||||
var rdr = cognitect.transit.reader.call(null,type,opts);
|
||||
return cognitect.transit.read.call(null,rdr,s);
|
||||
});
|
||||
/**
|
||||
* Transit encode `x` into a String.
|
||||
*/
|
||||
cljs_http.util.transit_encode = (function cljs_http$util$transit_encode(x,type,opts){
|
||||
var wrtr = cognitect.transit.writer.call(null,type,opts);
|
||||
return cognitect.transit.write.call(null,wrtr,x);
|
||||
});
|
||||
/**
|
||||
* JSON decode an object from `s`.
|
||||
*/
|
||||
cljs_http.util.json_decode = (function cljs_http$util$json_decode(s){
|
||||
var v = (((!(clojure.string.blank_QMARK_.call(null,s))))?JSON.parse(s):null);
|
||||
if((!((v == null)))){
|
||||
return cljs.core.js__GT_clj.call(null,v,new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",1310784252),true);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
/**
|
||||
* JSON encode `x` into a String.
|
||||
*/
|
||||
cljs_http.util.json_encode = (function cljs_http$util$json_encode(x){
|
||||
return JSON.stringify(cljs.core.clj__GT_js.call(null,x));
|
||||
});
|
||||
cljs_http.util.parse_headers = (function cljs_http$util$parse_headers(headers){
|
||||
return cljs.core.reduce.call(null,(function (p1__21610_SHARP_,p2__21609_SHARP_){
|
||||
var vec__21611 = clojure.string.split.call(null,p2__21609_SHARP_,/:\s+/);
|
||||
var k = cljs.core.nth.call(null,vec__21611,(0),null);
|
||||
var v = cljs.core.nth.call(null,vec__21611,(1),null);
|
||||
if(((clojure.string.blank_QMARK_.call(null,k)) || (clojure.string.blank_QMARK_.call(null,v)))){
|
||||
return p1__21610_SHARP_;
|
||||
} else {
|
||||
return cljs.core.assoc.call(null,p1__21610_SHARP_,clojure.string.lower_case.call(null,k),v);
|
||||
}
|
||||
}),cljs.core.PersistentArrayMap.EMPTY,clojure.string.split.call(null,(function (){var or__4131__auto__ = headers;
|
||||
if(cljs.core.truth_(or__4131__auto__)){
|
||||
return or__4131__auto__;
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
})(),/(\n)|(\r)|(\r\n)|(\n\r)/));
|
||||
});
|
||||
|
||||
//# sourceMappingURL=util.js.map?rel=1582812677821
|
||||
1
js/compiled/out/cljs_http/util.js.map
Normal file
1
js/compiled/out/cljs_http/util.js.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"file":"\/home\/simon\/workspace\/geocsv-lite\/js\/compiled\/out\/cljs_http\/util.js","sources":["util.cljs?rel=1582812677822"],"lineCount":128,"mappings":";AAAA;;;;;;;AAQA;;;;4BAAA,5BAAMA,gEAGHC;AAHH,AAIE,oBAAIA;AACF,IAAAC,aACM,EAAI,AAACI,+BAAKL,cACR,oCAAA,mFAAA,6DAAA,pLAACM,wBAAIN,iOACLA;eAHR,AAAAE,wBAAAD,WAAA,IAAA,lDAAOE;eAAP,AAAAD,wBAAAD,WAAA,IAAA,lDAAgBG;AAAhB,AAIE,QAAA,qDAAc,AAACG,mCAAc,uDAAA,VAAKJ,0DAAaC;;AALnD;;;AAOF;;;2BAAA,mCAAAI,9DAAMM;AAAN,AAAA,IAAAL,aAAAD;IAAAC,iBAAA,EAAA,EAAA,GAAA,CAAAA,cAAA,SAAA,EAAA,EAAA,CAAA,AAAAA,iDAAA,WAAA,CAAAC,gCAAA,AAAAD,+BAAA,KAAA,OAAA,QAAA,AAAAE,0BAAAC,mBAAAH,YAAAA;aAAA,AAAAI,wBAAAJ,eAAA,hDAEWM;kBAFX,AAAAF,wBAAAJ,eAAA,rDAEkBO;kBAFlB,AAAAH,wBAAAJ,eAAA,rDAE8BQ;UAF9B,AAAAJ,wBAAAJ,eAAA,7CAE0CS;mBAF1C,AAAAL,wBAAAJ,eAAA,tDAE8CU;AAF9C,AAGE,mDAAK,iBAAAC,WAAM,KAAAC;AAAN,AAAA,AAAAD,mBACc,AAACE,yBAAK,iBAAAC,mBAAIR;AAAJ,AAAA,oBAAAQ;AAAAA;;AAAA;;;;AADpB,AAAAH,mBAEcJ;;AAFd,AAAAI,iBAGYH;;AAHZ,AAAAG,iBAIYF;;AAJZ,AAAAE,+BAAA,bAKaD;;AALbC;;;AAOP;;;0BAAA,1BAAMI,4DAEHC;AAFH,2FAGO,8EAAA,9EAACC,+BAAM,4CAAKD,7HACZ,AAACnB,wBAAIqB,jEACL,qCAAA,9BAACC;;AAER;;;+BAAA,\/BAAMC,sEAEHC;AAFH,AAEM,OAACC,+BAAQ,AAACC,2BAAO,AAAC1B,wBAAIkB,wBAAS,AAACS,yBAAKH,IAAI,AAACI,yBAAKJ;;AAErD;;;4BAAA,5BAAMK;AAAN,AAEK,OAACC;;AAEN;;;gCAAA,hCAAMC;AAAN,AAEK,sCAAA,\/BAACC,8CAA8B,AAACH;;AAErC;;;gCAAA,hCAAMI,wEAEHd,EAAEe,KAAKC;AAFV,AAGE,IAAMC,MAAI,AAACC,mCAASH,KAAKC;AAAzB,AACE,OAACG,iCAAOF,IAAIjB;;AAEhB;;;gCAAA,hCAAMoB,wEAEHC,EAAEN,KAAKC;AAFV,AAGE,IAAMM,OAAK,AAACC,mCAASR,KAAKC;AAA1B,AACE,OAACQ,kCAAQF,KAAKD;;AAElB;;;6BAAA,7BAAMI,kEAEHzB;AAFH,AAGE,IAAM0B,IAAE,EAAA,6DAAA,1DAAQ,AAACC,sCAAsB3B,MAAG,AAAC4B,WAAc5B;AAAzD,AACE,GAAM,GAAA,MAAA,LAAO0B;AAAb,AACE,wCAAA,2EAAA,5GAACG,+BAAQH;;AADX;;;AAGJ;;;6BAAA,7BAAMI,kEAEHT;AAFH,AAEM,OAACU,eAAkB,AAACzB,+BAAQe;;AAElC,+BAAA,\/BAAMW,sEAAeC;AAArB,AACE,kCAAA,WAAAC,iBAAAC,vDAACC;AAAD,AACE,IAAAC,aAAY,+BAAAF,iBAAA,hDAAClC;QAAb,AAAAxB,wBAAA4D,WAAA,IAAA,3CAAOC;QAAP,AAAA7D,wBAAA4D,WAAA,IAAA,3CAASX;AAAT,AACE,GAAI,EAAI,AAACC,sCAAOW,QAAG,AAACX,sCAAOD;AAA3BQ;;AACK,iCAAAA,1BAACK,2CAAS,AAACC,oCAAWF,GAAGZ;;GAHlC,mCAII,AAACzB,+BAAM,iBAAAH,mBAAImC;AAAJ,AAAA,oBAAAnC;AAAAA;;AAAA;;KAAP","names":["cljs-http.util\/basic-auth","credentials","vec__21601","cljs.core\/nth","username","password","cljs.core\/map?","cljs.core\/map","no.en.core\/base64-encode","p__21604","map__21605","cljs.core\/PROTOCOL_SENTINEL","cljs.core\/apply","cljs.core\/hash-map","cljs.core\/get","cljs-http.util\/build-url","scheme","server-name","server-port","uri","query-string","G__21608","goog\/Uri","cljs.core\/name","or__4131__auto__","cljs-http.util\/camelize","s","clojure.string\/split","clojure.string\/capitalize","clojure.string\/join","cljs-http.util\/build-headers","m","cljs.core\/clj->js","cljs.core\/zipmap","cljs.core\/keys","cljs.core\/vals","cljs-http.util\/user-agent","goog.userAgent\/getUserAgentString","cljs-http.util\/android?","cljs.core\/re-matches","cljs-http.util\/transit-decode","type","opts","rdr","cognitect.transit\/reader","cognitect.transit\/read","cljs-http.util\/transit-encode","x","wrtr","cognitect.transit\/writer","cognitect.transit\/write","cljs-http.util\/json-decode","v","clojure.string\/blank?","js\/JSON.parse","cljs.core\/js->clj","cljs-http.util\/json-encode","js\/JSON.stringify","cljs-http.util\/parse-headers","headers","p1__21610#","p2__21609#","cljs.core\/reduce","vec__21611","k","cljs.core\/assoc","clojure.string\/lower-case"]}
|
||||
Loading…
Add table
Add a link
Reference in a new issue