JSFiddle - React, Tailwind, and code Playground
by Felipe Alfaro
JavaScript
console.clear();
var $a = (function(doc) {
var modules = {};
function $a() {
}
$a.addModule = addModuleFn;
function addModuleFn(moduleName, moduleRequirements, moduleFn) {
modules[moduleName] = new AlphaModule(moduleName, moduleRequirements, moduleFn);
}
function AlphaModule(moduleName, moduleRequirements, moduleFn) {
var module = this;
module.name = moduleName;
module.requirements = moduleRequirements;
moduleRequirements.forEach(function (requirement) {
Object.assign(module, modules[requirement]);
});
moduleFn.call(this);
}
return $a;
})(document);
$a.addModule('core', [], function () {
var myMessage = 'Hello baby!';
this.show = function () {
alert(myMessage);
};
this.info = {data: 1};
});
$a.addModule('myModule', ['core'], function () {
console.log(this.info);
this.info.data = 23456;
console.log('myModule', this.info);
});
$a.addModule('myModules', ['core'], function () {
console.log('myModules', this.info);
});
console.dir($a);