-( function ( mw, $ ) {
+( function () {
/**
* @class mw.Api
// Pre-populate with fake ajax promises to save http requests for tokens
// we already have on the page via the user.tokens module (T36733).
promises[ defaultOptions.ajax.url ] = {};
+ // eslint-disable-next-line no-restricted-properties
$.each( mw.user.tokens.get(), function ( key, value ) {
// This requires #getToken to use the same key as user.tokens.
// Format: token-type + "Token" (eg. csrfToken, patrolToken, watchToken).
* 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 = [];
};
];
mw.log.deprecate( mw.Api, 'warnings', mw.Api.warnings, null, 'mw.Api.warnings' );
-}( mediaWiki, jQuery ) );
+}() );