User:Tokenzero/infoboxJournal.js

/**

* infoboxJournal.js

* One-click adds or normalizes existing infobox-journal templates.

*/

//

(async function($) {

'use strict';

// Only enable in Main and Draft namespaces, and on User:*sandbox* pages.

if (!['', 'Draft', 'User'].includes(mw.config.get('wgCanonicalNamespace')))

return;

if (mw.config.get('wgCanonicalNamespace') === 'User' &&

!mw.config.get('wgTitle').includes('andbox'))

return;

/**

* Get full URL to script/stylesheet/etc. (to raw file).

*

* @param {string} pageName

* @param {object} [params]

* @returns {string}

*/

function getRawUrl(pageName, params) {

params = params || {};

params.action = 'raw';

params.ctype = params.ctype || pageName.includes('.css') ? 'text/css' : 'text/javascript';

return mw.util.getUrl(pageName, params);

}

/**

* Asynchronously load a javascript ES6 module from pageName.

* The script is loaded as a new