unjq-ajax
Version:
AJAX library abstracted from jQuery offers the same APIs.
1 lines • 16.9 kB
JavaScript
;function checkType(a){return null==a?a+"":"object"===("undefined"==typeof a?"undefined":_typeof(a))||"function"==typeof a?class2type[toString.call(a)]||"object":"undefined"==typeof a?"undefined":_typeof(a)}function globalEval(a){if("string"==typeof a){var b=void 0,c=eval;a=a.trim(),a&&(1===a.indexOf("use strict")&&inBrowserEnv?(b=document.createElement("script"),b.text=a,document.head.appendChild(b).parentNode.removeChild(b)):c(a))}}function isFunction(a){return"function"===checkType(a)}function isWindow(a){return null!=a&&a===a.window}function isPlainObject(a){return"object"!==checkType(a)||a.nodeType||isWindow(a)?!1:!a.constructor||hasOwn.call(a.constructor.prototype,"isPrototypeOf")}function extend(){var a=void 0,b=void 0,c=void 0,d=void 0,e=void 0,f=void 0,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"===("undefined"==typeof g?"undefined":_typeof(g))||isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&isPlainObject(c)?c:{},g[b]=extend(j,f,d)):void 0!==d&&(g[b]=d));return g}function throwError(a){throw new Error(a)}function inArray(a,b,c){return null==b?-1:indexOf.call(b,a,c)}function createOptions(a){var b=optionsCache[a]={};return(a.match(rnotwhite)||[]).forEach(function(a){b[a]=!0}),b}function Callbacks(a){a="string"==typeof a?optionsCache[a]||createOptions(a):extend({},a);var b=void 0,c=void 0,d=void 0,e=void 0,f=void 0,g=void 0,h=[],i=!a.once&&[],j=function l(j){for(b=a.memory&&j,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(j[0],j[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&l(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){var c=function(b){var c=checkType(b);"function"===c?a.unique&&k.has(b)||h.push(b):b&&b.length&&"string"!==c&&g(b)};if(Array.isArray(b))b.forEach(c);else for(var d in b)c(b[d])}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&arguments.forEach(function(a){for(var b=void 0;(b=inArray(a,h,b))>-1;)h.splice(b,1),d&&(f>=b&&f--,g>=b&&g--)}),this},has:function(a){return a?inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k}function Deferred(a){var b=[["resolve","done",Callbacks("once memory"),"resolved"],["reject","fail",Callbacks("once memory"),"rejected"],["notify","progress",Callbacks("memory")]],c="pending",d={},e={state:function(){return c},always:function(){return d.done(arguments).fail(arguments),this},then:function(){var a=arguments;return Deferred(function(c){b.forEach(function(b,f){var g=isFunction(a[f])&&a[f];d[b[1]](function(){var a=g&&g.apply(this,arguments);a&&isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[b[0]+"With"](this===e?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?extend(a,e):e}};return e.pipe=e.then,b.forEach(function(a,f){var g=a[2],h=a[3];e[a[1]]=g.add,h&&g.add(function(){c=h},b[1^f][2].disable,b[2][2].lock),d[a[0]]=function(){return d[a[0]+"With"](this===d?e:this,arguments),this},d[a[0]+"With"]=g.fireWith}),e.promise(d),a&&a.call(d,d),d}function addToPrefiltersOrTransports(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d=void 0,e=0,f=b.toLowerCase().match(rnotwhite)||[];if(isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function inspectPrefiltersOrTransports(a,b,c,d){var e={},f=a===transports,g=function h(g){var i=void 0;return e[g]=!0,(a[g]||[]).every(function(a){var g=a(b,c,d);return"string"!=typeof g||f||e[g]?f?!(i=g):!0:(b.dataTypes.unshift(g),h(g),!1)}),i};return g(b.dataTypes[0])||!e["*"]&&g("*")}function ajaxExtend(a,b){var c=void 0,d=void 0,e=UnJQ.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&extend(!0,a,d),a}function ajaxHandleResponses(a,b,c){for(var d=void 0,e=void 0,f=void 0,g=a.contents,h=a.dataTypes;"*"===h[0];)h.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(var i in g)if(g[i]&&g[i].test(d)){h.unshift(i);break}if(h[0]in c)e=h[0];else{for(var i in c){if(!h[0]||a.converters[i+" "+h[0]]){e=i;break}f||(f=i)}e=e||f}return e?(e!==h[0]&&h.unshift(e),c[e]):void 0}function ajaxConvert(a,b,c,d){var e=void 0,f=void 0,g=void 0,h=void 0,i=void 0,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function buildParams(a,b,c,d){var e=void 0;if(Array.isArray(b))b.forEach(function(b,e){c||rbracket.test(a)?d(a,b):buildParams(a+"["+("object"===("undefined"==typeof b?"undefined":_typeof(b))?e:"")+"]",b,c,d)});else if(c||"object"!==("undefined"==typeof b?"undefined":_typeof(b)))d(a,b);else for(e in b)buildParams(a+"["+e+"]",b[e],c,d)}function param(a,b){var c=void 0,d=[],e=function(a,b){b=isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=UnJQ.ajaxSettings&&UnJQ.ajaxSettings.traditional),Array.isArray(a))a.forEach(function(a){e(a.name,a.value)});else for(c in a)buildParams(c,a[c],b,e);return d.join("&").replace(r20,"+")}function serialize(a){return param(serializeArray(a))}function serializeArray(a){if(!a)return[];for(var b=a.elements||[],c=[],d=0;d<b.length;d++){var e=b[d],f=e.type;if(e.name&&!e.disabled&&rsubmittable.test(e.nodeName)&&!rsubmitterTypes.test(f)&&(e.checked||!rcheckableType.test(f))){var g=e.value;g="string"==typeof g?g.replace(rreturn,""):null==g?"":g;var h=void 0;null!=g&&(h=Array.isArray(g)?g.map(function(a){return{name:elem.name,value:a.replace(rCRLF,"\r\n")}}):{name:e.name,value:g.replace(rCRLF,"\r\n")},c.push(h))}}return c}function upload(a,b,c,d,e){isFunction(c)?(e=d,d=c,c=void 0):"string"==typeof c?(e=c,d=void 0,c=void 0):"string"==typeof d&&(e=d,d=void 0),a=Array.isArray(a)?a:[a];var f=new FormData;if(isPlainObject(c))for(var g in c)f.append(g,c[g]);else Array.isArray(c)&&c.forEach(function(a){a&&a.name&&a.value&&f.append(a.name,a.value)});return a.forEach(function(a){var b=a.name;if(b&&"files"in a){a.files.length>1&&(b+="[]");for(var c=0;c<a.files.length;c++)f.append(b,a.files[c])}}),UnJQ.ajax({url:b,type:"POST",data:f,cache:!1,dataType:e,processData:!1,contentType:!1,success:d})}Object.defineProperty(exports,"__esModule",{value:!0});var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol?"symbol":typeof a};exports.isFunction=isFunction,exports.isWindow=isWindow,exports.isPlainObject=isPlainObject,exports.extend=extend,exports.param=param,exports.serialize=serialize,exports.serializeArray=serializeArray,exports.upload=upload;var inBrowserEnv="undefined"!=typeof window,arr=[],slice=arr.slice,concat=arr.concat,push=arr.push,indexOf=arr.indexOf,class2type={},toString=class2type.toString,hasOwn=class2type.hasOwnProperty,support={},document=inBrowserEnv&&window.document,version="1.0.0";"Boolean Number String Function Array Date RegExp Object Error".split(" ").forEach(function(a){class2type["[object "+a+"]"]=a.toLowerCase()});var rnotwhite=/\S+/g,optionsCache={},rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rurl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,prefilters={},transports={},allTypes="*/".concat("*"),ajaxLocation=inBrowserEnv?window.location.href:"",ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[],nonce=Date.now(),rquery=/\?/,UnJQ={expando:"UnJQ-AJAX"+(version+Math.random()).replace(/\D/g,""),active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:"GET",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":function(a){return JSON.parse(a+"")},"text xml":function(a){var b=void 0,c=void 0;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return b&&!b.getElementsByTagName("parsererror").length||throwError("Invalid XML: "+a),b}},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?ajaxExtend(ajaxExtend(a,this.ajaxSettings),b):ajaxExtend(this.ajaxSettings,a)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(a,b){function c(a,b,c,h){var j=void 0,l=void 0,s=void 0,t=void 0,v=void 0,x=b;2!==u&&(u=2,i&&clearTimeout(i),e=void 0,g=h||"",w.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(t=ajaxHandleResponses(m,w,c)),t=ajaxConvert(m,t,w,j),j?(m.ifModified&&(v=w.getResponseHeader("Last-Modified"),v&&(d.lastModified[f]=v),v=w.getResponseHeader("etag"),v&&(d.etag[f]=v)),204===a||"HEAD"===m.type?x="nocontent":304===a?x="notmodified":(x=t.state,l=t.data,s=t.error,j=!s)):(s=x,!a&&x||(x="error",0>a&&(a=0))),w.status=a,w.statusText=(b||x)+"",j?p.resolveWith(n,[l,x,w]):p.rejectWith(n,[w,x,s]),w.statusCode(r),r=void 0,k&&o.trigger(j?"ajaxSuccess":"ajaxError",[w,m,j?l:s]),q.fireWith(n,[w,x]),k&&(o.trigger("ajaxComplete",[w,m]),--d.active||d.event.trigger("ajaxStop")))}"object"===("undefined"==typeof a?"undefined":_typeof(a))&&(b=a,a=void 0);var d=this;b=b||{};var e=void 0,f=void 0,g=void 0,h=void 0,i=void 0,j=void 0,k=void 0,l=void 0,m=d.ajaxSetup({},b),n=m.context||m,o={},p=Deferred(),q=Callbacks("once memory"),r=m.statusCode||{},s={},t={},u=0,v="canceled",w={readyState:0,getResponseHeader:function(a){var b=void 0;if(2===u){if(!h)for(h={};b=rheaders.exec(g);)h[b[1].toLowerCase()]=b[2];b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===u?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return u||(a=t[c]=t[c]||a,s[a]=b),this},overrideMimeType:function(a){return u||(m.mimeType=a),this},statusCode:function(a){var b=void 0;if(a)if(2>u)for(b in a)r[b]=[r[b],a[b]];else w.always(a[w.status]);return this},abort:function(a){var b=a||v;return e&&e.abort(b),c(0,b),this}};if(p.promise(w).complete=q.add,w.success=w.done,w.error=w.fail,m.url=((a||m.url||ajaxLocation)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//"),m.type=b.method||b.type||m.method||m.type,m.dataTypes=(m.dataType||"*").trim().toLowerCase().match(rnotwhite)||[""],null==m.crossDomain&&(j=rurl.exec(m.url.toLowerCase()),m.crossDomain=!(!j||j[1]===ajaxLocParts[1]&&j[2]===ajaxLocParts[2]&&(j[3]||("http:"===j[1]?"80":"443"))===(ajaxLocParts[3]||("http:"===ajaxLocParts[1]?"80":"443")))),m.data&&m.processData&&"string"!=typeof m.data&&(m.data=param(m.data,m.traditional)),inspectPrefiltersOrTransports(prefilters,m,b,w),2===u)return w;k=d.event&&m.global,k&&0===d.active++&&d.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!rnoContent.test(m.type),f=m.url,m.hasContent||(m.data&&(f=m.url+=(rquery.test(f)?"&":"?")+m.data,delete m.data),m.cache===!1&&(m.url=rts.test(f)?f.replace(rts,"$1_="+nonce++):f+(rquery.test(f)?"&":"?")+"_="+nonce++)),m.ifModified&&(d.lastModified[f]&&w.setRequestHeader("If-Modified-Since",d.lastModified[f]),d.etag[f]&&w.setRequestHeader("If-None-Match",d.etag[f])),(m.data&&m.hasContent&&m.contentType!==!1||b.contentType)&&w.setRequestHeader("Content-Type",m.contentType),w.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+allTypes+"; q=0.01":""):m.accepts["*"]);for(l in m.headers)w.setRequestHeader(l,m.headers[l]);if(m.beforeSend&&(m.beforeSend.call(n,w,m)===!1||2===u))return w.abort();v="abort";for(l in{success:1,error:1,complete:1})w[l](m[l]);if(e=inspectPrefiltersOrTransports(transports,m,b,w)){w.readyState=1,k&&o.trigger("ajaxSend",[w,m]),m.async&&m.timeout>0&&(i=setTimeout(function(){w.abort("timeout")},m.timeout));try{u=1,e.send(s,c)}catch(x){if(!(2>u))throw x;c(-1,x)}}else c(-1,"No Transport");return w},getJSON:function(a,b,c){return this.get(a,b,c,"json")},getScript:function(a,b){return this.get(a,void 0,b,"script")}};["get","post"].forEach(function(a,b){UnJQ[a]=function(b,c,d,e){return isFunction(c)&&(e=e||d,d=c,c=void 0),UnJQ.ajax({url:b,type:a,dataType:e,data:c,success:d})}});var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rreturn=/\r/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i,rcheckableType=/^(?:checkbox|radio)$/i;UnJQ.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var xhrId=0,xhrCallbacks={},xhrSuccessStatus={0:200,1223:204},xhrSupported=UnJQ.ajaxSettings.xhr();inBrowserEnv&&window.attachEvent&&window.attachEvent("onunload",function(){for(var a in xhrCallbacks)xhrCallbacks[a]()}),support.cors=!!xhrSupported&&"withCredentials"in xhrSupported,support.ajax=xhrSupported=!!xhrSupported,UnJQ.ajaxTransport(function(a){var b=void 0;return support.cors||xhrSupported&&!a.crossDomain?{send:function(c,d){var e=void 0,f=a.xhr(),g=++xhrId;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete xhrCallbacks[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(xhrSuccessStatus[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=xhrCallbacks[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),UnJQ.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return globalEval(a),a}}}),UnJQ.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),UnJQ.ajaxTransport("script",function(a){if(a.crossDomain){var b=function(){var b=void 0,c=void 0;return{v:{send:function(c,d){b=document.createElement("script"),b.setAttribute("async","async"),b.setAttribute("charset",a.scriptCharset);var e=function(a){b.remove(),e=null,a&&d("error"===a.type?404:200,a.type)};b.setAttribute("src",a.url),b.addEventListener?(b.addEventListener("load",e),b.addEventListener("error",e)):(b.attachEvent("onload",function(){e.call(b)}),b.attachEvent("error",function(){e.call(b)})),document.head.appendChild(b)},abort:function(){c&&c()}}}}();if("object"===("undefined"==typeof b?"undefined":_typeof(b)))return b.v}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;UnJQ.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=oldCallbacks.pop()||UnJQ.expando+"_"+nonce++;return this[a]=!0,a}}),UnJQ.ajaxPrefilter("json jsonp",function(a,b,c){var d=void 0,e=void 0,f=void 0,g=a.jsonp!==!1&&(rjsonp.test(a.url)?"url":"string"==typeof a.data&&!(a.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(a.data)&&"data");return g||"jsonp"===a.dataTypes[0]?(d=a.jsonpCallback=isFunction(a.jsonpCallback)?a.jsonpCallback():a.jsonpCallback,g?a[g]=a[g].replace(rjsonp,"$1"+d):a.jsonp!==!1&&(a.url+=(rquery.test(a.url)?"&":"?")+a.jsonp+"="+d),a.converters["script json"]=function(){return f||throwError(d+" was not called"),f[0]},a.dataTypes[0]="json",e=window[d],window[d]=function(){f=arguments},c.always(function(){window[d]=e,a[d]&&(a.jsonpCallback=b.jsonpCallback,oldCallbacks.push(d)),f&&isFunction(e)&&e(f[0]),f=e=void 0}),"script"):void 0}),exports["default"]=UnJQ;