From 80c429e49b895a2c002d48c65c37c99f4e6fd3be Mon Sep 17 00:00:00 2001 From: impinball Date: Fri, 30 Dec 2016 02:05:51 -0500 Subject: [PATCH 1/2] Make source maps binary, fix misnamed HTML file --- .gitattributes | 1 + tets.html => test.html | 0 2 files changed, 1 insertion(+) rename tets.html => test.html (100%) diff --git a/.gitattributes b/.gitattributes index edce79b7..085d56e5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ * text eol=crlf *.min.js binary +*.map binary diff --git a/tets.html b/test.html similarity index 100% rename from tets.html rename to test.html From f670acb1320dd4783922df9b3013c50ffa6e618b Mon Sep 17 00:00:00 2001 From: impinball Date: Fri, 30 Dec 2016 02:07:31 -0500 Subject: [PATCH 2/2] Fix added `header` request parameter, document it, regen bundles --- docs/mithril.request.md | 186 ++++++++++++++++++++++------------------ mithril.js | 30 ++++--- mithril.min.js | 2 +- mithril.min.js.map | 2 +- test/mithril.request.js | 32 ++++++- 5 files changed, 153 insertions(+), 99 deletions(-) diff --git a/docs/mithril.request.md b/docs/mithril.request.md index b6d071c7..65ba3a52 100644 --- a/docs/mithril.request.md +++ b/docs/mithril.request.md @@ -14,6 +14,7 @@ - [Using variable data formats](#using-variable-data-formats) - [Extracting Metadata from the Response](#extracting-metadata-from-the-response) - [Custom request rejections](#custom-request-rejections) +- [Setting headers](#setting-headers) - [Configuring the underlying XMLHttpRequest](#configuring-the-underlying-xmlhttprequest) - [Aborting a request](#aborting-a-request) - [Using JSON-P](#using-json-p) @@ -132,7 +133,7 @@ In the example below, we bind an error getter-setter to our previous controller //controller var controller = function() { this.error = m.prop("") - + this.users = User.listEven().then(function(users) { if (users.length == 0) m.route("/add"); }, this.error) @@ -145,7 +146,7 @@ If the controller doesn't already have a success callback to run after a request //controller var controller = function() { this.error = m.prop("") - + this.users = User.listEven().then(null, this.error) } ``` @@ -337,15 +338,34 @@ You can read more about the [promise exception monitor here](mithril.deferred.md --- +### Setting headers + +The `headers` option can be used to add or modify existing headers. The example The example below shows how to configure a `POST` request where the server expects requests to have a `Content-Type: application/json` header. + +```javascript +m.request({ + method: "POST", + url: "/foo", + headers: {"Content-Type": "application/json"} +}); +``` + +--- + ### Configuring the underlying XMLHttpRequest -The `config` option can be used to arbitrarily configure the native XMLHttpRequest instance and to access properties that would not be accessible otherwise. - -The example below shows how to configure a request where the server expects requests to have a `Content-Type: application/json` header +The `config` option can be used to arbitrarily configure the native XMLHttpRequest instance and to access properties that would not be accessible otherwise. For example, this is how to listen for progress notifications. ```javascript var xhrConfig = function(xhr) { - xhr.setRequestHeader("Content-Type", "application/json"); + xhr.onprogress = function(ev) { + ev = ev || event; + if (ev.lengthComputable) { + console.log(ev.loaded + " bytes sent out of " + ev.total + " total.") + } else { + console.log(ev.loaded + " bytes sent.") + } + } } m.request({method: "POST", url: "/foo", config: xhrConfig}); @@ -456,35 +476,35 @@ where: - **XHROptions options** A map of options for the XMLHttpRequest - + - **String method** - + The HTTP method. Must be either `"GET"`, `"POST"`, `"PUT"`, `"DELETE"`, `"HEAD"` or `"OPTIONS"` - + - **String url** - + The URL to request. If the URL is not in the same domain as the application, the target server must be configured to accept cross-domain requests from the application's domain, i.e. its responses must include the header `Access-Control-Allow-Origin: *`. - + - **String user** (optional) - + A user for HTTP authentication. Defaults to `undefined` - + - **String password** (optional) - + A password for HTTP authentication. Defaults to `undefined` - + - **Object data** (optional) - + Data to be sent. It's automatically placed in the appropriate section of the request with the appropriate serialization based on `method` - + - **Boolean background** (optional) - + Determines whether the `m.request` can affect template rendering. Defaults to false. - + If this option is set to true, then the request does NOT call [`m.startComputation` / `m.endComputation`](mithril.computation.md) internally, and therefore the completion of the request does not trigger an update of the view, even if data has been changed. This option is useful for running operations in the background (i.e. without user intervention). - + In order to force a redraw after a background request, use [`m.redraw`](mithril.redraw.md), or `m.startComputation` / `m.endComputation`. - + ```javascript var demo = {} @@ -503,9 +523,9 @@ where: ]) } ``` - + It's strongly recommended that you set an `initialValue` option in ALL requests if you set the `background` option to true. - + When calling multiple background AJAX requests, it's recommended that you use [`m.sync`](mithril.sync.md) to batch redraw once at the end of all requests, as opposed to repeatedly redrawing after every request: ```javascript @@ -514,15 +534,15 @@ where: demo.controller = function() { var users = m.request({method: "GET", url: "/api/users", background: true, initialValue: []}) var projects = m.request({method: "GET", url: "/api/projects", background: true, initialValue: []}) - + m.sync([users, projects]).then(m.redraw) - + return {users: users, projects: projects} } ``` - + Make sure to add null checks if your request value can be null - + ```javascript var demo = {} @@ -539,105 +559,109 @@ where: ]) } ``` - + - **any initialValue** (optional) - + The value that populates the returned getter-setter before the request completes. This is useful when using the `background` option, in order to avoid the need for null checks in views that may be attempting to access the returned getter-setter before the asynchronous request resolves. - + It is strongly recommended that you always set this option to avoid future surprises. - + - **any unwrapSuccess(any data, XMLHttpRequest xhr)** (optional) A preprocessor function to unwrap the data from a success response in case the response contains metadata wrapping the data. - + The default value (if this parameter is falsy) is the identity function `function(value) {return value}` - + For example, if the response is `{data: [{name: "John"}, {name: "Mary"}]}` and the unwrap function is `function(response) {return response.data}`, then the response will be considered to be `[{name: "John"}, {name: "Mary"}]` when processing the `type` parameter - + - **Object | Array data** - + The data to unwrap - + - **returns Object | Array unwrappedData** - + The unwrapped data - **any unwrapError(any data, XMLHttpRequest xhr)** (optional) A preprocessor function to unwrap the data from an error response in case the response contains metadata wrapping the data. - + The default value (if this parameter is falsy) is the identity function `function(value) {return value}` - + - **Object | Array data** - + The data to unwrap - + - **returns Object | Array unwrappedData** - + The unwrapped data - + - **String serialize(any dataToSerialize)** (optional) Method to use to serialize the request data - + The default value (if this parameter is falsy) is `JSON.stringify` - + - **any dataToSerialize** - + Data to be serialized - + - **returns String serializedData** - + - **any deserialize(String dataToDeserialize)** (optional) Method to use to deserialize the response data - + The default value (if this parameter is falsy) is `JSON.parse` - + - **String dataToDeserialize** - + Data to be deserialized - + - **returns any deserializedData** - + - **any extract(XMLHttpRequest xhr, XHROptions options)** (optional) - + Method to use to extract the data from the raw XMLHttpRequest. This is useful when the relevant data is either in a response header or the status field. If this parameter is falsy, the default value is a function that returns `xhr.responseText`. - + - **void type(Object data)** (optional) The response object (or the child items if this object is an Array) will be passed as a parameter to the class constructor defined by `type` - + If this parameter is falsy, the deserialized data will not be wrapped. - + For example, if `type` is the following class: - + ```javascript var User = function(data) { this.name = m.prop(data.name); } ``` - + And the data is `[{name: "John"}, {name: "Mary"}]`, then the response will contain an array of two User instances. - + + - **Object headers** (optional) + + Additional headers to set on the request, if any. Each header is specified as a key-value pair. + - **XMLHttpRequest? config(XMLHttpRequest xhr, XHROptions options)** (optional) - - An initialization function that runs after `open` and before `send`. Useful for adding request headers and when using XHR2 features, such as the XMLHttpRequest's `upload` property. - + + An initialization function that runs after `open` and before `send`. Useful for using XHR2 features, such as the XMLHttpRequest's `upload` property or `progress` event. + - **XMLHttpRequest xhr** - + The XMLHttpRequest instance. - + - **XHROptions options** - + The `options` parameter that was passed into `m.request` call - + - **returns XMLHttpRequest? xhr** - + You may return an XHR-like object (e.g. a XDomainRequest instance) to override the provided XHR instance altogether. - + - **returns Promise promise** returns a promise that can bind callbacks which get called on completion of the AJAX request. @@ -647,29 +671,27 @@ where: - **JSONPOptions options** A map of options for JSONP requests - + - **String dataType** - + Must be the string "jsonp" - + - **String url** - + The URL to request. If the URL is not in the same domain as the application, the target server must be configured to accept cross-domain requests from the application's domain, i.e. its responses must include the header `Access-Control-Allow-Origin: *`. - **String callbackKey** - + The name of the querystring key that defines the name of the callback function to be called by the response. Defaults to "callback" - + This option is useful for web services that use uncommon conventions for defining jsonp callbacks (e.g. foo.com/?jsonpCallback=doSomething) - + - **String callbackName** - + The name of callback function to be called by the response. Defaults to a unique auto-generated name - + This option is useful for web services serving static files and to prevent cache busting. - + - **Object data** (optional) - + Data to be sent. It's automatically placed in the appropriate section of the request with the appropriate serialization based on `method` - - diff --git a/mithril.js b/mithril.js index 579e5222..2a7891af 100644 --- a/mithril.js +++ b/mithril.js @@ -7,11 +7,11 @@ /* Set dependencies when no window for isomorphic compatibility */ if(typeof window === "undefined") { m.deps({ - document: typeof document !== "undefined"? document: {}, - location: typeof location !== "undefined"? location: {}, + document: typeof document !== "undefined" ? document : {}, + location: typeof location !== "undefined" ? location : {}, clearTimeout: clearTimeout, setTimeout: setTimeout - }); + }) } if (typeof module === "object" && module != null && module.exports) { module.exports = m @@ -524,7 +524,8 @@ parentTag ) { var nodes = cached.nodes - if (!editable || editable !== $document.activeElement || data !== cached) { + if (!editable || editable !== $document.activeElement || + data !== cached) { if (data.$trusted) { clear(nodes, cached) nodes = injectHTML(parentElement, index, data) @@ -1095,10 +1096,8 @@ // #1252 likewise when `contenteditable` is set on an element. try { if ( - tag !== "input" && !node.isContentEditable - /* eslint-disable eqeqeq */ - || node[attrName] != dataAttr - /* eslint-enable eqeqeq */ + tag !== "input" && !node.isContentEditable || + node[attrName] != dataAttr // eslint-disable-line eqeqeq ) { node[attrName] = dataAttr } @@ -1436,6 +1435,8 @@ return parameterize(component, args) } + var currentRoute, previousRoute + function checkPrevented(component, root, index, isPrevented) { if (!isPrevented) { m.redraw.strategy("all") @@ -1468,6 +1469,7 @@ if (component == null) { removeRootElement(root, index) } + if (previousRoute) { currentRoute = previousRoute } @@ -1604,7 +1606,7 @@ var modes = {pathname: "", hash: "#", search: "?"} var redirect = noop var isDefaultRoute = false - var routeParams, currentRoute, previousRoute + var routeParams m.route = function (root, arg1, arg2, vdom) { // eslint-disable-line // m.route() @@ -2166,11 +2168,6 @@ xhr.setRequestHeader("Accept", "application/json, text/*") } - if (isFunction(options.config)) { - var maybeXhr = options.config(xhr, options) - if (maybeXhr != null) xhr = maybeXhr - } - if (isObject(options.headers)) { for (var header in options.headers) { if (hasOwn.call(options.headers, header)) { @@ -2179,6 +2176,11 @@ } } + if (isFunction(options.config)) { + var maybeXhr = options.config(xhr, options) + if (maybeXhr != null) xhr = maybeXhr + } + var data = options.method === "GET" || !options.data ? "" : options.data if (data && !isString(data) && data.constructor !== global.FormData) { diff --git a/mithril.min.js b/mithril.min.js index dacfc924..8e6dcaf4 100644 --- a/mithril.min.js +++ b/mithril.min.js @@ -4,5 +4,5 @@ http://mithril.js.org (c) 2014-2016 Leo Horie License: MIT */ -!function(a,b){"use strict";var c=b(a);"undefined"==typeof window&&c.deps({document:"undefined"!=typeof document?document:{},location:"undefined"!=typeof location?location:{},clearTimeout:clearTimeout,setTimeout:setTimeout}),"object"==typeof module&&null!=module&&module.exports?module.exports=c:"function"==typeof define&&define.amd?define(function(){return c}):a.m=c}("undefined"!=typeof window?window:this,function a(b,c){"use strict";function d(a){return"function"==typeof a}function e(a){return"[object Object]"===Da.call(a)}function f(a){return"[object String]"===Da.call(a)}function g(){}function h(a){ya=a.document,za=a.location,Ba=a.cancelAnimationFrame||a.clearTimeout,Aa=a.requestAnimationFrame||a.setTimeout}function i(a,b){for(var c,d=[],e=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g;c=e.exec(b);)if(""===c[1]&&c[2])a.tag=c[2];else if("#"===c[1])a.attrs.id=c[2];else if("."===c[1])d.push(c[2]);else if("["===c[3].charAt(0)){var f=c[6];f&&(f=f.replace(/\\(["'])/g,"$1")),"class"===c[4]?d.push(f):a.attrs[c[4]]=f||!0}return d}function j(a,b){var c=b?a.slice(1):a;return 1===c.length&&Ea(c[0])?c[0]:c}function k(a,b,c){var d="class"in b?"class":"className";for(var e in b)Ca.call(b,e)&&(e===d&&null!=b[e]&&""!==b[e]?(c.push(b[e]),a[e]=""):a[e]=b[e]);c.length&&(a[d]=c.join(" "))}function l(a,b){for(var c=[],g=1,h=arguments.length;g1||g[0].nodeValue.trim&&!g[0].nodeValue.trim())&&(X(b.nodes,b),g=[ya.createTextNode(a)]),p(c,g[0],e,a))),b=new a.constructor(a),b.nodes=g,b.$trusted=a.$trusted,b}function E(a,b,c,d,e,f,g){return a.nodes.length?a.valueOf()!==b.valueOf()||e?D(b,a,d,f,c,g):(a.nodes.intact=!0,a):C(b,d,c)}function F(a){return a.$trusted?a.nodes.length:Ea(a)?a.length:1}function G(a,b,d,e,f,g,h,i,j){a=q(a);var k=[],l=b.length===a.length,m=0,o={},p=!1;n(b,function(a,c){p=!0,o[b[c].attrs.key]={action:Ga,index:c}}),v(a),p&&(b=t(a,b,o,d));for(var r=0,s=0,w=a.length;s0?R(b,a.tag,c,c,a.children,d.children,!0,0,a.attrs.contenteditable?b:e,f,g):a.children}function L(a,b,c,d,e,f,g){var h={tag:a.tag,attrs:b,children:c,nodes:[d]};return z(h,f,g),h.children&&!h.children.nodes&&(h.children.nodes=[]),h}function M(a,b,c,e){var f;return f="diff"===l.redraw.strategy()&&a?a.indexOf(b):-1,f>-1?c[f]:d(e)?new e:{}}function N(a,b,c,d){null!=d.onunload&&La.map(function(a){return a.handler}).indexOf(d.onunload)<0&&La.push({controller:d,handler:d.onunload}),a.push(c),b.push(d)}function O(a,b,c,d,e,f){var g=M(c.views,b,d,a.controller),h=a&&a.attrs&&a.attrs.key;return a=0===Ja||Ma||d&&d.indexOf(g)>-1?a.view(g):{tag:"placeholder"},"retain"===a.subtree?a:(a.attrs=a.attrs||{},a.attrs.key=h,N(f,e,b,g),a)}function P(a,b,c,d){for(var e=b&&b.controllers;null!=a.view;)a=O(a,a.view.$original||a.view,b,e,d,c);return a}function Q(a,b,c,d,e,g,h,i){var j=[],k=[];if(a=P(a,b,j,k),"retain"===a.subtree)return b;if(!a.tag&&k.length)throw new Error("Component template must return a virtual element, not an array, string, etc.");a.attrs=a.attrs||{},b.attrs=b.attrs||{};var l=Object.keys(a.attrs),m=l.length>("key"in a.attrs?1:0);if(x(a,b,l),f(a.tag)){var n=0===b.nodes.length;h=y(a,h);var o;if(n){o=I(a,h);var p=J(a,o,h,m);r(d,o,e);var q=K(a,o,b,c,h,i);b=L(a,p,q,o,h,j,k)}else o=B(b,a,c,m,h,j,i,k);return"select"===a.tag&&"value"in a.attrs&&W(o,a.tag,{value:a.attrs.value},{},h),n||g!==!0||null==o||r(d,o,e),A(i,a,o,n,b),b}}function R(a,b,c,f,g,h,i,j,k,l,m){return g=o(g),"retain"===g.subtree?h:(h=H(g,h,j,f,c),Ea(g)?G(g,h,a,j,b,i,k,l,m):null!=g&&e(g)?Q(g,h,k,a,j,i,l,m):d(g)?h:E(h,g,j,a,i,k,b))}function S(a,b){return a.action-b.action||a.index-b.index}function T(a,b,c){c===b&&(a.style="",c={});for(var d in b)Ca.call(b,d)&&(null!=c&&c[d]===b[d]||(a.style[d]=b[d]));for(d in c)Ca.call(c,d)&&(Ca.call(b,d)||(a.style[d]=""))}function U(a,b,c,f,g,h){if("config"===b||"key"===b)return!0;if(d(c)&&"on"===b.slice(0,2))a[b]=ba(c,a);else if("style"===b&&null!=c&&e(c))T(a,c,f);else if(null!=h)"href"===b?a.setAttributeNS("http://www.w3.org/1999/xlink","href",c):a.setAttribute("className"===b?"class":b,c);else if(b in a&&!Na[b])try{("input"!==g&&!a.isContentEditable||a[b]!=c)&&(a[b]=c)}catch(d){a.setAttribute(b,c)}else try{a.setAttribute(b,c)}catch(a){}}function V(a,b,c,d,e,f,g){if(b in e&&d===c&&"object"!=typeof c&&ya.activeElement!==a)"value"===b&&"input"===f&&a.value!=c&&(a.value=c);else{e[b]=c;try{return U(a,b,c,d,f,g)}catch(a){if(a.message.indexOf("Invalid argument")<0)throw a}}}function W(a,b,c,d,e){for(var f in c)!Ca.call(c,f)||!V(a,f,c[f],d[f],d,b,e);return d}function X(a,b){for(var c=a.length-1;c>-1;c--)if(a[c]&&a[c].parentNode){try{a[c].parentNode.removeChild(a[c])}catch(a){}b=[].concat(b),b[c]&&Y(b[c])}a.length&&(a.length=0)}function Y(a){a.configContext&&d(a.configContext.onunload)&&(a.configContext.onunload(),a.configContext.onunload=null),a.controllers&&m(a.controllers,function(a){d(a.onunload)&&a.onunload({preventDefault:g})}),a.children&&(Ea(a.children)?m(a.children,Y):a.children.tag&&Y(a.children))}function Z(a,b){try{a.appendChild(ya.createRange().createContextualFragment(b))}catch(c){a.insertAdjacentHTML("beforeend",b),$(a)}}function $(a){if("SCRIPT"===a.tagName)a.parentNode.replaceChild(_(a),a);else{var b=a.childNodes;if(b&&b.length)for(var c=0;c0?"&":"?")+(a.callbackKey?a.callbackKey:"callback")+"="+d+"&"+na(a.data||{}),ya.body.appendChild(e)}function ua(a){var c=new b.XMLHttpRequest;if(c.open(a.method,a.url,!0,a.user,a.password),c.onreadystatechange=function(){4===c.readyState&&(c.status>=200&&c.status<300?a.onload({type:"load",target:c}):a.onerror({type:"error",target:c}))},a.serialize===JSON.stringify&&a.data&&"GET"!==a.method&&c.setRequestHeader("Content-Type","application/json; charset=utf-8"),a.deserialize===JSON.parse&&c.setRequestHeader("Accept","application/json, text/*"),d(a.config)){var e=a.config(c,a);null!=e&&(c=e)}var g="GET"!==a.method&&a.data?a.data:"";if(g&&!f(g)&&g.constructor!==b.FormData)throw new Error("Request data should be either be a string or FormData. Check the `serialize` option in `m.request`");return c.send(g),c}function va(a){return a.dataType&&"jsonp"===a.dataType.toLowerCase()?ta(a):ua(a)}function wa(a,b,c){if("GET"===a.method&&"jsonp"!==a.dataType){var d=a.url.indexOf("?")<0?"?":"&",e=na(b);a.url+=e?d+e:""}else a.data=c(b)}function xa(a,b){return b&&(a=a.replace(/:[a-z]\w+/gi,function(a){var c=a.slice(1),d=b[c]||a;return delete b[c],d})),a}l.version=function(){return"v0.2.5"};var ya,za,Aa,Ba,Ca={}.hasOwnProperty,Da={}.toString,Ea=Array.isArray||function(a){return"[object Array]"===Da.call(a)},Fa={AREA:1,BASE:1,BR:1,COL:1,COMMAND:1,EMBED:1,HR:1,IMG:1,INPUT:1,KEYGEN:1,LINK:1,META:1,PARAM:1,SOURCE:1,TRACK:1,WBR:1};l.deps=function(a){return h(b=a||window),b},l.deps.factory=l.factory=a,l.deps(b);var Ga=1,Ha=2,Ia=3,Ja=0;l.startComputation=function(){Ja++},l.endComputation=function(){Ja>1?Ja--:(Ja=0,l.redraw())};var Ka,La=[],Ma=!1,Na={list:1,style:1,form:1,type:1,width:1,height:1},Oa={appendChild:function(a){Ka===c&&(Ka=ya.createElement("html")),ya.documentElement&&ya.documentElement!==a?ya.replaceChild(a,ya.documentElement):ya.appendChild(a),this.childNodes=ya.childNodes},insertBefore:function(a){this.appendChild(a)},childNodes:[]},Pa=[],Qa={};l.render=function(a,b,d){if(!a)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var e,f=[],g=ca(a),h=a===ya;e=h||a===ya.documentElement?Oa:a,h&&"html"!==b.tag&&(b={tag:"html",attrs:{},children:b}),Qa[g]===c&&X(e.childNodes),d===!0&&pa(a),Qa[g]=R(e,null,c,c,b,Qa[g],!1,0,null,c,f),m(f,function(a){a()})},l.trust=function(a){return a=new String(a),a.$trusted=!0,a},l.prop=function(a){return(null!=a&&(e(a)||d(a))||"undefined"!=typeof Promise&&a instanceof Promise)&&d(a.then)?qa(a):da(a)};var Ra,Sa=[],Ta=[],Ua=[],Va=null,Wa=0,Xa=null,Ya=null,Za=16;l.component=function(a){for(var b=new Array(arguments.length-1),c=1;cZa)&&(Va>0&&Ba(Va),Va=Aa(ha,Za)):(ha(),Va=Aa(function(){Va=null},Za))}finally{$a=Ma=!1}}},l.redraw.strategy=l.prop(),l.withAttr=function(a,b,c){return function(d){d=d||window.event;var e=d.currentTarget||this,f=c||this,g=a in e?e[a]:e.getAttribute(a);b.call(f,g)}};var _a,ab,bb,cb={pathname:"",hash:"#",search:"?"},db=g,eb=!1;l.route=function(a,c,d,e){if(0===arguments.length)return ab;if(3===arguments.length&&f(c)){db=function(b){var e=ab=ja(b);if(!ka(a,d,e)){if(eb)throw new Error("Ensure the default route matches one of the routes defined in m.route");eb=!0,l.route(c,!0),eb=!1}};var g="hash"===l.route.mode?"onhashchange":"onpopstate";return b[g]=function(){var a=za[l.route.mode];"pathname"===l.route.mode&&(a+=za.search),ab!==ja(a)&&db(a)},Xa=ma,void b[g]()}if(a.addEventListener||a.attachEvent){var h="pathname"!==l.route.mode?za.pathname:"";return a.href=h+cb[l.route.mode]+e.attrs.href,void(a.addEventListener?(a.removeEventListener("click",la),a.addEventListener("click",la)):(a.detachEvent("onclick",la),a.attachEvent("onclick",la)))}if(f(a)){bb=ab,ab=a;var i,j=c||{},k=ab.indexOf("?");i=k>-1?oa(ab.slice(k+1)):{};for(var m in j)Ca.call(j,m)&&(i[m]=j[m]);var n,o=na(i);n=k>-1?ab.slice(0,k):ab,o&&(ab=n+(n.indexOf("?")===-1?"?":"&")+o);var p=(3===arguments.length?d:c)===!0||bb===ab;if(b.history.pushState){var q=p?"replaceState":"pushState";Xa=ma,Ya=function(){try{b.history[q](null,ya.title,cb[l.route.mode]+ab)}catch(a){za[l.route.mode]=ab}},db(cb[l.route.mode]+ab)}else za[l.route.mode]=ab,db(cb[l.route.mode]+ab);bb=null}},l.route.param=function(a){if(!_a)throw new Error("You must call m.route(element, defaultRoute, routes) before calling m.route.param()");return a?_a[a]:_a},l.route.mode="search",l.route.buildQueryString=na,l.route.parseQueryString=oa,l.deferred=function(){var a=new ra;return a.promise=qa(a.promise),a};var fb=1,gb=2,hb=3,ib=4;return l.deferred.onerror=function(a){if("[object Error]"===Da.call(a)&&!/ Error/.test(a.constructor.toString()))throw Ja=0,a},l.sync=function(a){function b(a,b){return function(g){return e[a]=g,b||(f="reject"),0===--d&&(c.promise(e),c[f](e)),g}}var c=l.deferred(),d=a.length,e=[],f="resolve";return a.length>0?m(a,function(a,c){a.then(b(c,!0),b(c,!1))}):c.resolve([]),c.promise},l.request=function(a){a.background!==!0&&l.startComputation();var b,c,d,e=new ra,f=a.dataType&&"jsonp"===a.dataType.toLowerCase();return f?(b=a.serialize=c=a.deserialize=sa,d=function(a){return a.responseText}):(b=a.serialize=a.serialize||JSON.stringify,c=a.deserialize=a.deserialize||JSON.parse,d=a.extract||function(a){return a.responseText.length||c!==JSON.parse?a.responseText:null}),a.method=(a.method||"GET").toUpperCase(),a.url=xa(a.url,a.data),wa(a,a.data,b),a.onload=a.onerror=function(b){try{b=b||event;var f=c(d(b.target,a));"load"===b.type?(a.unwrapSuccess&&(f=a.unwrapSuccess(f,b.target)),Ea(f)&&a.type?m(f,function(b,c){f[c]=new a.type(b)}):a.type&&(f=new a.type(f)),e.resolve(f)):(a.unwrapError&&(f=a.unwrapError(f,b.target)),e.reject(f))}catch(a){e.reject(a),l.deferred.onerror(a)}finally{a.background!==!0&&l.endComputation()}},va(a),e.promise=qa(e.promise,a.initialValue),e.promise},l}); +!function(a,b){"use strict";var c=b(a);"undefined"==typeof window&&c.deps({document:"undefined"!=typeof document?document:{},location:"undefined"!=typeof location?location:{},clearTimeout:clearTimeout,setTimeout:setTimeout}),"object"==typeof module&&null!=module&&module.exports?module.exports=c:"function"==typeof define&&define.amd?define(function(){return c}):a.m=c}("undefined"!=typeof window?window:this,function a(b,c){"use strict";function d(a){return"function"==typeof a}function e(a){return"[object Object]"===Da.call(a)}function f(a){return"[object String]"===Da.call(a)}function g(){}function h(a){ya=a.document,za=a.location,Ba=a.cancelAnimationFrame||a.clearTimeout,Aa=a.requestAnimationFrame||a.setTimeout}function i(a,b){for(var c,d=[],e=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g;c=e.exec(b);)if(""===c[1]&&c[2])a.tag=c[2];else if("#"===c[1])a.attrs.id=c[2];else if("."===c[1])d.push(c[2]);else if("["===c[3].charAt(0)){var f=c[6];f&&(f=f.replace(/\\(["'])/g,"$1")),"class"===c[4]?d.push(f):a.attrs[c[4]]=f||!0}return d}function j(a,b){var c=b?a.slice(1):a;return 1===c.length&&Ea(c[0])?c[0]:c}function k(a,b,c){var d="class"in b?"class":"className";for(var e in b)Ca.call(b,e)&&(e===d&&null!=b[e]&&""!==b[e]?(c.push(b[e]),a[e]=""):a[e]=b[e]);c.length&&(a[d]=c.join(" "))}function l(a,b){for(var c=[],g=1,h=arguments.length;g1||g[0].nodeValue.trim&&!g[0].nodeValue.trim())&&(X(b.nodes,b),g=[ya.createTextNode(a)]),p(c,g[0],e,a))),b=new a.constructor(a),b.nodes=g,b.$trusted=a.$trusted,b}function E(a,b,c,d,e,f,g){return a.nodes.length?a.valueOf()!==b.valueOf()||e?D(b,a,d,f,c,g):(a.nodes.intact=!0,a):C(b,d,c)}function F(a){return a.$trusted?a.nodes.length:Ea(a)?a.length:1}function G(a,b,d,e,f,g,h,i,j){a=q(a);var k=[],l=b.length===a.length,m=0,o={},p=!1;n(b,function(a,c){p=!0,o[b[c].attrs.key]={action:Ga,index:c}}),v(a),p&&(b=t(a,b,o,d));for(var r=0,s=0,w=a.length;s0?R(b,a.tag,c,c,a.children,d.children,!0,0,a.attrs.contenteditable?b:e,f,g):a.children}function L(a,b,c,d,e,f,g){var h={tag:a.tag,attrs:b,children:c,nodes:[d]};return z(h,f,g),h.children&&!h.children.nodes&&(h.children.nodes=[]),h}function M(a,b,c,e){var f;return f="diff"===l.redraw.strategy()&&a?a.indexOf(b):-1,f>-1?c[f]:d(e)?new e:{}}function N(a,b,c,d){null!=d.onunload&&La.map(function(a){return a.handler}).indexOf(d.onunload)<0&&La.push({controller:d,handler:d.onunload}),a.push(c),b.push(d)}function O(a,b,c,d,e,f){var g=M(c.views,b,d,a.controller),h=a&&a.attrs&&a.attrs.key;return a=0===Ja||Ma||d&&d.indexOf(g)>-1?a.view(g):{tag:"placeholder"},"retain"===a.subtree?a:(a.attrs=a.attrs||{},a.attrs.key=h,N(f,e,b,g),a)}function P(a,b,c,d){for(var e=b&&b.controllers;null!=a.view;)a=O(a,a.view.$original||a.view,b,e,d,c);return a}function Q(a,b,c,d,e,g,h,i){var j=[],k=[];if(a=P(a,b,j,k),"retain"===a.subtree)return b;if(!a.tag&&k.length)throw new Error("Component template must return a virtual element, not an array, string, etc.");a.attrs=a.attrs||{},b.attrs=b.attrs||{};var l=Object.keys(a.attrs),m=l.length>("key"in a.attrs?1:0);if(x(a,b,l),f(a.tag)){var n=0===b.nodes.length;h=y(a,h);var o;if(n){o=I(a,h);var p=J(a,o,h,m);r(d,o,e);var q=K(a,o,b,c,h,i);b=L(a,p,q,o,h,j,k)}else o=B(b,a,c,m,h,j,i,k);return"select"===a.tag&&"value"in a.attrs&&W(o,a.tag,{value:a.attrs.value},{},h),n||g!==!0||null==o||r(d,o,e),A(i,a,o,n,b),b}}function R(a,b,c,f,g,h,i,j,k,l,m){return g=o(g),"retain"===g.subtree?h:(h=H(g,h,j,f,c),Ea(g)?G(g,h,a,j,b,i,k,l,m):null!=g&&e(g)?Q(g,h,k,a,j,i,l,m):d(g)?h:E(h,g,j,a,i,k,b))}function S(a,b){return a.action-b.action||a.index-b.index}function T(a,b,c){c===b&&(a.style="",c={});for(var d in b)Ca.call(b,d)&&(null!=c&&c[d]===b[d]||(a.style[d]=b[d]));for(d in c)Ca.call(c,d)&&(Ca.call(b,d)||(a.style[d]=""))}function U(a,b,c,f,g,h){if("config"===b||"key"===b)return!0;if(d(c)&&"on"===b.slice(0,2))a[b]=ba(c,a);else if("style"===b&&null!=c&&e(c))T(a,c,f);else if(null!=h)"href"===b?a.setAttributeNS("http://www.w3.org/1999/xlink","href",c):a.setAttribute("className"===b?"class":b,c);else if(b in a&&!Na[b])try{("input"!==g&&!a.isContentEditable||a[b]!=c)&&(a[b]=c)}catch(d){a.setAttribute(b,c)}else try{a.setAttribute(b,c)}catch(a){}}function V(a,b,c,d,e,f,g){if(b in e&&d===c&&"object"!=typeof c&&ya.activeElement!==a)"value"===b&&"input"===f&&a.value!=c&&(a.value=c);else{e[b]=c;try{return U(a,b,c,d,f,g)}catch(a){if(a.message.indexOf("Invalid argument")<0)throw a}}}function W(a,b,c,d,e){for(var f in c)!Ca.call(c,f)||!V(a,f,c[f],d[f],d,b,e);return d}function X(a,b){for(var c=a.length-1;c>-1;c--)if(a[c]&&a[c].parentNode){try{a[c].parentNode.removeChild(a[c])}catch(a){}b=[].concat(b),b[c]&&Y(b[c])}a.length&&(a.length=0)}function Y(a){a.configContext&&d(a.configContext.onunload)&&(a.configContext.onunload(),a.configContext.onunload=null),a.controllers&&m(a.controllers,function(a){d(a.onunload)&&a.onunload({preventDefault:g})}),a.children&&(Ea(a.children)?m(a.children,Y):a.children.tag&&Y(a.children))}function Z(a,b){try{a.appendChild(ya.createRange().createContextualFragment(b))}catch(c){a.insertAdjacentHTML("beforeend",b),$(a)}}function $(a){if("SCRIPT"===a.tagName)a.parentNode.replaceChild(_(a),a);else{var b=a.childNodes;if(b&&b.length)for(var c=0;c0?"&":"?")+(a.callbackKey?a.callbackKey:"callback")+"="+d+"&"+na(a.data||{}),ya.body.appendChild(e)}function ua(a){var c=new b.XMLHttpRequest;if(c.open(a.method,a.url,!0,a.user,a.password),c.onreadystatechange=function(){4===c.readyState&&(c.status>=200&&c.status<300?a.onload({type:"load",target:c}):a.onerror({type:"error",target:c}))},a.serialize===JSON.stringify&&a.data&&"GET"!==a.method&&c.setRequestHeader("Content-Type","application/json; charset=utf-8"),a.deserialize===JSON.parse&&c.setRequestHeader("Accept","application/json, text/*"),e(a.headers))for(var g in a.headers)Ca.call(a.headers,g)&&c.setRequestHeader(g,a.headers[g]);if(d(a.config)){var h=a.config(c,a);null!=h&&(c=h)}var i="GET"!==a.method&&a.data?a.data:"";if(i&&!f(i)&&i.constructor!==b.FormData)throw new Error("Request data should be either be a string or FormData. Check the `serialize` option in `m.request`");return c.send(i),c}function va(a){return a.dataType&&"jsonp"===a.dataType.toLowerCase()?ta(a):ua(a)}function wa(a,b,c){if("GET"===a.method&&"jsonp"!==a.dataType){var d=a.url.indexOf("?")<0?"?":"&",e=na(b);a.url+=e?d+e:""}else a.data=c(b)}function xa(a,b){return b&&(a=a.replace(/:[a-z]\w+/gi,function(a){var c=a.slice(1),d=b[c]||a;return delete b[c],d})),a}l.version=function(){return"v0.2.5"};var ya,za,Aa,Ba,Ca={}.hasOwnProperty,Da={}.toString,Ea=Array.isArray||function(a){return"[object Array]"===Da.call(a)},Fa={AREA:1,BASE:1,BR:1,COL:1,COMMAND:1,EMBED:1,HR:1,IMG:1,INPUT:1,KEYGEN:1,LINK:1,META:1,PARAM:1,SOURCE:1,TRACK:1,WBR:1};l.deps=function(a){return h(b=a||window),b},l.deps.factory=l.factory=a,l.deps(b);var Ga=1,Ha=2,Ia=3,Ja=0;l.startComputation=function(){Ja++},l.endComputation=function(){Ja>1?Ja--:(Ja=0,l.redraw())};var Ka,La=[],Ma=!1,Na={list:1,style:1,form:1,type:1,width:1,height:1},Oa={appendChild:function(a){Ka===c&&(Ka=ya.createElement("html")),ya.documentElement&&ya.documentElement!==a?ya.replaceChild(a,ya.documentElement):ya.appendChild(a),this.childNodes=ya.childNodes},insertBefore:function(a){this.appendChild(a)},childNodes:[]},Pa=[],Qa={};l.render=function(a,b,d){if(!a)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var e,f=[],g=ca(a),h=a===ya;e=h||a===ya.documentElement?Oa:a,h&&"html"!==b.tag&&(b={tag:"html",attrs:{},children:b}),Qa[g]===c&&X(e.childNodes),d===!0&&pa(a),Qa[g]=R(e,null,c,c,b,Qa[g],!1,0,null,c,f),m(f,function(a){a()})},l.trust=function(a){return a=new String(a),a.$trusted=!0,a},l.prop=function(a){return(null!=a&&(e(a)||d(a))||"undefined"!=typeof Promise&&a instanceof Promise)&&d(a.then)?qa(a):da(a)};var Ra,Sa=[],Ta=[],Ua=[],Va=null,Wa=0,Xa=null,Ya=null,Za=16;l.component=function(a){for(var b=new Array(arguments.length-1),c=1;cZa)&&(Va>0&&Ba(Va),Va=Aa(ha,Za)):(ha(),Va=Aa(function(){Va=null},Za))}finally{ab=Ma=!1}}},l.redraw.strategy=l.prop(),l.withAttr=function(a,b,c){return function(d){d=d||window.event;var e=d.currentTarget||this,f=c||this,g=a in e?e[a]:e.getAttribute(a);b.call(f,g)}};var bb,cb={pathname:"",hash:"#",search:"?"},db=g,eb=!1;l.route=function(a,c,d,e){if(0===arguments.length)return $a;if(3===arguments.length&&f(c)){db=function(b){var e=$a=ja(b);if(!ka(a,d,e)){if(eb)throw new Error("Ensure the default route matches one of the routes defined in m.route");eb=!0,l.route(c,!0),eb=!1}};var g="hash"===l.route.mode?"onhashchange":"onpopstate";return b[g]=function(){var a=za[l.route.mode];"pathname"===l.route.mode&&(a+=za.search),$a!==ja(a)&&db(a)},Xa=ma,void b[g]()}if(a.addEventListener||a.attachEvent){var h="pathname"!==l.route.mode?za.pathname:"";return a.href=h+cb[l.route.mode]+e.attrs.href,void(a.addEventListener?(a.removeEventListener("click",la),a.addEventListener("click",la)):(a.detachEvent("onclick",la),a.attachEvent("onclick",la)))}if(f(a)){_a=$a,$a=a;var i,j=c||{},k=$a.indexOf("?");i=k>-1?oa($a.slice(k+1)):{};for(var m in j)Ca.call(j,m)&&(i[m]=j[m]);var n,o=na(i);n=k>-1?$a.slice(0,k):$a,o&&($a=n+(n.indexOf("?")===-1?"?":"&")+o);var p=(3===arguments.length?d:c)===!0||_a===$a;if(b.history.pushState){var q=p?"replaceState":"pushState";Xa=ma,Ya=function(){try{b.history[q](null,ya.title,cb[l.route.mode]+$a)}catch(a){za[l.route.mode]=$a}},db(cb[l.route.mode]+$a)}else za[l.route.mode]=$a,db(cb[l.route.mode]+$a);_a=null}},l.route.param=function(a){if(!bb)throw new Error("You must call m.route(element, defaultRoute, routes) before calling m.route.param()");return a?bb[a]:bb},l.route.mode="search",l.route.buildQueryString=na,l.route.parseQueryString=oa,l.deferred=function(){var a=new ra;return a.promise=qa(a.promise),a};var fb=1,gb=2,hb=3,ib=4;return l.deferred.onerror=function(a){if("[object Error]"===Da.call(a)&&!/ Error/.test(a.constructor.toString()))throw Ja=0,a},l.sync=function(a){function b(a,b){return function(g){return e[a]=g,b||(f="reject"),0===--d&&(c.promise(e),c[f](e)),g}}var c=l.deferred(),d=a.length,e=[],f="resolve";return a.length>0?m(a,function(a,c){a.then(b(c,!0),b(c,!1))}):c.resolve([]),c.promise},l.request=function(a){a.background!==!0&&l.startComputation();var b,c,d,e=new ra,f=a.dataType&&"jsonp"===a.dataType.toLowerCase();return f?(b=a.serialize=c=a.deserialize=sa,d=function(a){return a.responseText}):(b=a.serialize=a.serialize||JSON.stringify,c=a.deserialize=a.deserialize||JSON.parse,d=a.extract||function(a){return a.responseText.length||c!==JSON.parse?a.responseText:null}),a.method=(a.method||"GET").toUpperCase(),a.url=xa(a.url,a.data),wa(a,a.data,b),a.onload=a.onerror=function(b){try{b=b||event;var f=c(d(b.target,a));"load"===b.type?(a.unwrapSuccess&&(f=a.unwrapSuccess(f,b.target)),Ea(f)&&a.type?m(f,function(b,c){f[c]=new a.type(b)}):a.type&&(f=new a.type(f)),e.resolve(f)):(a.unwrapError&&(f=a.unwrapError(f,b.target)),e.reject(f))}catch(a){e.reject(a),l.deferred.onerror(a)}finally{a.background!==!0&&l.endComputation()}},va(a),e.promise=qa(e.promise,a.initialValue),e.promise},l}); //# sourceMappingURL=mithril.min.js.map \ No newline at end of file diff --git a/mithril.min.js.map b/mithril.min.js.map index 6e530dda..0f5886e3 100644 --- a/mithril.min.js.map +++ b/mithril.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["mithril.js"],"names":["global","factory","m","window","deps","document","location","clearTimeout","setTimeout","module","exports","define","amd","this","undefined","isFunction","object","isObject","type","call","isString","noop","initialize","mock","$document","$location","$cancelAnimationFrame","cancelAnimationFrame","$requestAnimationFrame","requestAnimationFrame","parseTagAttrs","cell","tag","match","classes","parser","exec","attrs","id","push","charAt","attrValue","replace","getVirtualChildren","args","hasAttrs","children","slice","length","isArray","assignAttrs","target","classAttr","attrName","hasOwn","join","pairs","i","arguments","view","parameterize","Error","forEach","list","f","forKeys","key","dataToString","data","toString","e","injectTextNode","parentElement","first","index","insertNode","nodeValue","flatten","concat","apply","node","insertBefore","childNodes","handleKeysDiffer","existing","cached","action","MOVE","from","element","nodes","createElement","INSERTION","actions","prop","changes","sort","sortChanges","newCached","Array","change","DELETION","clear","splice","dummy","changeElement","maybeChanged","diffKeys","keysDiffer","cachedCell","diffArray","_","parentNode","indexOf","buildArrayKeys","guid","isDifferentEnough","dataAttrKeys","Object","keys","redraw","strategy","configContext","retain","maybeRecreateObject","onunload","controllers","controller","preventDefault","getObjectNamespace","namespace","xmlns","unloadCachedControllers","views","$old","pendingRequests","scheduleConfigsToBeCalled","configs","isNew","config","context","buildUpdatedNode","editable","hasKeys","setAttributes","build","contenteditable","intact","handleNonexistentNodes","$trusted","injectHTML","createTextNode","nodeName","voidElements","constructor","reattachNodes","parentTag","activeElement","value","innerHTML","nodeType","trim","handleTextNode","shouldReattach","valueOf","getSubArrayCount","item","buildArray","subArrayCount","shouldMaintainIdentities","cacheCount","len","makeCache","parentIndex","parentCache","offset","end","constructNode","is","createElementNS","constructAttrs","constructChildren","reconstructCached","getController","cachedControllers","controllerIndex","updateLists","unloaders","map","u","handler","checkView","forcing","subtree","markViews","$original","buildObject","a","b","copyStyleAttrs","dataAttr","cachedAttr","style","rule","setSingleAttr","autoredraw","setAttributeNS","setAttribute","shouldUseSetAttribute","isContentEditable","trySetAttr","cachedAttrs","message","dataAttrs","removeChild","unload","appendTextFragment","appendChild","createRange","createContextualFragment","insertAdjacentHTML","replaceScriptNodes","tagName","replaceChild","buildExecutableNode","scriptEl","attributes","name","text","nextSibling","isElement","placeholder","callback","event","startComputation","endFirstComputation","getCellCacheKey","nodeCache","gettersetter","store","toJSON","component","ctrl","currentArgs","prototype","output","checkPrevented","root","isPrevented","roots","currentComponent","topComponent","components","removeRootElement","previousRoute","currentRoute","reset","computePreRedrawHook","render","computePostRedrawHook","lastRedrawId","lastRedrawCallTime","Date","endComputation","normalizeRoute","route","modes","mode","routeByValue","router","path","routeParams","queryStart","parseQueryString","substr","mount","matcher","RegExp","test","values","decodeURIComponent","routeUnobtrusive","ctrlKey","metaKey","shiftKey","which","returnValue","currentTarget","srcElement","search","setScroll","hash","scrollTo","buildQueryString","prefix","duplicates","str","encodeURIComponent","split","params","string","pair","cacheKey","cellCache","propify","promise","initialValue","then","resolve","reject","bind","Deferred","onSuccess","onFailure","finish","state","REJECTED","next","deferred","RESOLVED","promiseValue","thennable","success","failure","notThennable","count","onerror","fire","REJECTING","RESOLVING","self","TypeError","identity","handleJsonp","options","callbackKey","callbackName","getTime","Math","round","random","script","resp","onload","responseText","status","JSON","stringify","error","src","url","body","createXhr","xhr","XMLHttpRequest","open","method","user","password","onreadystatechange","readyState","serialize","setRequestHeader","deserialize","parse","maybeXhr","FormData","send","ajax","dataType","toLowerCase","bindData","querystring","parameterizeUrl","token","version","hasOwnProperty","AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","META","PARAM","SOURCE","TRACK","WBR","html","form","width","height","documentNode","documentElement","forceRecreation","isDocumentRoot","trust","String","Promise","FRAME_BUDGET","unloader","redrawing","force","withAttr","withAttrCallback","callbackThis","_this","getAttribute","pathname","redirect","isDefaultRoute","arg1","arg2","vdom","source","listener","addEventListener","attachEvent","base","href","removeEventListener","detachEvent","queryIndex","currentPath","replaceHistory","history","pushState","title","err","param","sync","synchronizer","pos","resolved","results","outstanding","arg","request","background","extract","isJSONP","jsonp","toUpperCase","ev","response","unwrapSuccess","res","unwrapError"],"mappings":"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","file":"mithril.min.js"} \ No newline at end of file +{"version":3,"sources":["mithril.js"],"names":["global","factory","m","window","deps","document","location","clearTimeout","setTimeout","module","exports","define","amd","this","undefined","isFunction","object","isObject","type","call","isString","noop","initialize","mock","$document","$location","$cancelAnimationFrame","cancelAnimationFrame","$requestAnimationFrame","requestAnimationFrame","parseTagAttrs","cell","tag","match","classes","parser","exec","attrs","id","push","charAt","attrValue","replace","getVirtualChildren","args","hasAttrs","children","slice","length","isArray","assignAttrs","target","classAttr","attrName","hasOwn","join","pairs","i","arguments","view","parameterize","Error","forEach","list","f","forKeys","key","dataToString","data","toString","e","injectTextNode","parentElement","first","index","insertNode","nodeValue","flatten","concat","apply","node","insertBefore","childNodes","handleKeysDiffer","existing","cached","action","MOVE","from","element","nodes","createElement","INSERTION","actions","prop","changes","sort","sortChanges","newCached","Array","change","DELETION","clear","splice","dummy","changeElement","maybeChanged","diffKeys","keysDiffer","cachedCell","diffArray","_","parentNode","indexOf","buildArrayKeys","guid","isDifferentEnough","dataAttrKeys","Object","keys","redraw","strategy","configContext","retain","maybeRecreateObject","onunload","controllers","controller","preventDefault","getObjectNamespace","namespace","xmlns","unloadCachedControllers","views","$old","pendingRequests","scheduleConfigsToBeCalled","configs","isNew","config","context","buildUpdatedNode","editable","hasKeys","setAttributes","build","contenteditable","intact","handleNonexistentNodes","$trusted","injectHTML","createTextNode","nodeName","voidElements","constructor","reattachNodes","parentTag","activeElement","value","innerHTML","nodeType","trim","handleTextNode","shouldReattach","valueOf","getSubArrayCount","item","buildArray","subArrayCount","shouldMaintainIdentities","cacheCount","len","makeCache","parentIndex","parentCache","offset","end","constructNode","is","createElementNS","constructAttrs","constructChildren","reconstructCached","getController","cachedControllers","controllerIndex","updateLists","unloaders","map","u","handler","checkView","forcing","subtree","markViews","$original","buildObject","a","b","copyStyleAttrs","dataAttr","cachedAttr","style","rule","setSingleAttr","autoredraw","setAttributeNS","setAttribute","shouldUseSetAttribute","isContentEditable","trySetAttr","cachedAttrs","message","dataAttrs","removeChild","unload","appendTextFragment","appendChild","createRange","createContextualFragment","insertAdjacentHTML","replaceScriptNodes","tagName","replaceChild","buildExecutableNode","scriptEl","attributes","name","text","nextSibling","isElement","placeholder","callback","event","startComputation","endFirstComputation","getCellCacheKey","nodeCache","gettersetter","store","toJSON","component","ctrl","currentArgs","prototype","output","checkPrevented","root","isPrevented","roots","currentComponent","topComponent","components","removeRootElement","previousRoute","currentRoute","reset","computePreRedrawHook","render","computePostRedrawHook","lastRedrawId","lastRedrawCallTime","Date","endComputation","normalizeRoute","route","modes","mode","routeByValue","router","path","routeParams","queryStart","parseQueryString","substr","mount","matcher","RegExp","test","values","decodeURIComponent","routeUnobtrusive","ctrlKey","metaKey","shiftKey","which","returnValue","currentTarget","srcElement","search","setScroll","hash","scrollTo","buildQueryString","prefix","duplicates","str","encodeURIComponent","split","params","string","pair","cacheKey","cellCache","propify","promise","initialValue","then","resolve","reject","bind","Deferred","onSuccess","onFailure","finish","state","REJECTED","next","deferred","RESOLVED","promiseValue","thennable","success","failure","notThennable","count","onerror","fire","REJECTING","RESOLVING","self","TypeError","identity","handleJsonp","options","callbackKey","callbackName","getTime","Math","round","random","script","resp","onload","responseText","status","JSON","stringify","error","src","url","body","createXhr","xhr","XMLHttpRequest","open","method","user","password","onreadystatechange","readyState","serialize","setRequestHeader","deserialize","parse","headers","header","maybeXhr","FormData","send","ajax","dataType","toLowerCase","bindData","querystring","parameterizeUrl","token","version","hasOwnProperty","AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","META","PARAM","SOURCE","TRACK","WBR","html","form","width","height","documentNode","documentElement","forceRecreation","isDocumentRoot","trust","String","Promise","FRAME_BUDGET","unloader","redrawing","force","withAttr","withAttrCallback","callbackThis","_this","getAttribute","pathname","redirect","isDefaultRoute","arg1","arg2","vdom","source","listener","addEventListener","attachEvent","base","href","removeEventListener","detachEvent","queryIndex","currentPath","replaceHistory","history","pushState","title","err","param","sync","synchronizer","pos","resolved","results","outstanding","arg","request","background","extract","isJSONP","jsonp","toUpperCase","ev","response","unwrapSuccess","res","unwrapError"],"mappings":"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","file":"mithril.min.js"} \ No newline at end of file diff --git a/test/mithril.request.js b/test/mithril.request.js index 8ccac1ea..8b0e775a 100644 --- a/test/mithril.request.js +++ b/test/mithril.request.js @@ -146,7 +146,6 @@ describe("m.request()", function () { expect(xhr.$headers).to.not.have.property("Content-Type") }) - it("sets xhr request headers as per the headers config", function () { var error = m.prop() @@ -171,6 +170,37 @@ describe("m.request()", function () { "CustomValue") }) + it("overwrites existing headers", function () { + var error = m.prop() + + m.request({ + method: "POST", + url: "test", + // Trigger the Content-Type addition + data: {foo: "bar"}, + headers: { + "Authorization" : "Bearer 12345abcd12345", + "CustomHeader" : "CustomValue", + "Content-Type" : "CustomType" + } + }).then(null, error) + + var xhr = mock.XMLHttpRequest.$instances.pop() + xhr.onreadystatechange() + + expect(xhr.$headers).to.have.property( + "Authorization", + "Bearer 12345abcd12345") + + expect(xhr.$headers).to.have.property( + "CustomHeader", + "CustomValue") + + expect(xhr.$headers).to.have.property( + "Content-Type", + "CustomType") + }) + it("correctly sets initial value", function () { var prop = m.request({