/*********************************************
IIFE - Immediately Invoked Function Expression
*********************************************/
(function () {
// code
})();
/*********************
double-load protection
**********************/
if (window.Module.Loaded) {
return;
}
window.Module.Loaded = true;
/*************
Configurations
**************/
var config = $.extend(
{
// default configs
},
UserConfig
);
/*************************************************************
Alternative importArticle (works independently of the platform)
**************************************************************/
function importArticle(page) {
const isScript = page.split(".").pop() === "js";
return $.ajax({
url: mw.config.get("wgLoadScript"),
data: {
mode: "articles",
only: isScript ? "scripts" : "styles",
articles: "u:dev:MediaWiki:" + page,
},
}).then(function (content) {
$("head").append($(isScript ? "<script>" : "<style>").html(content));
});
}
// Usage
importArticle("i18n.js").then(function () {
// window.dev.i18n is accessible
});
// Multiple imports
var i18n = importArticle("I18n-js/code.js");
var colors = importArticle("Colors/code.js");
var customCSS = importArticle("MyScript.css");
$.when(i18n, colors, customCSS).then(function () {
// window.dev.i18n is accessible
// window.dev.colors is accessible
});