From fc21cbc4009a7f00d650c0d4e01f5993c0bebe3a Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Mon, 9 Jul 2018 21:14:28 -0700 Subject: [PATCH] mediawiki.api: Simplify mw.Api constructor * Use a different variable for the argument and the created 'defaults' object for this instance. * Don't modify the given object (it could previously modify the 'ajax.url' property). * Make the 'useUS' logic more explicit and merge it with the 'ajax.url' handling, that it previously reacted to. Change-Id: Ib1f50876359152935b8cb9b021ea0a95915808e2 --- resources/src/mediawiki.api/index.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/resources/src/mediawiki.api/index.js b/resources/src/mediawiki.api/index.js index 0038ed8ecf..51f359c54a 100644 --- a/resources/src/mediawiki.api/index.js +++ b/resources/src/mediawiki.api/index.js @@ -91,19 +91,21 @@ * each individual request by passing them to #get or #post (or directly #ajax) later on. */ mw.Api = function ( options ) { - options = options || {}; + var defaults = $.extend( {}, options ), + setsUrl = options && options.ajax && options.ajax.url !== undefined; + + defaults.parameters = $.extend( {}, defaultOptions.parameters, defaults.parameters ); + defaults.ajax = $.extend( {}, defaultOptions.ajax, defaults.ajax ); // Force a string if we got a mw.Uri object - if ( options.ajax && options.ajax.url !== undefined ) { - options.ajax.url = String( options.ajax.url ); + if ( setsUrl ) { + defaults.ajax.url = String( defaults.ajax.url ); + } + if ( defaults.useUS === undefined ) { + defaults.useUS = !setsUrl; } - options = $.extend( { useUS: !options.ajax || !options.ajax.url }, options ); - - options.parameters = $.extend( {}, defaultOptions.parameters, options.parameters ); - options.ajax = $.extend( {}, defaultOptions.ajax, options.ajax ); - - this.defaults = options; + this.defaults = defaults; this.requests = []; }; -- 2.20.1