Mini-Require
A shim for RequireJS which we (unfortunately) have to use for our legacy crap
by Patrick Hund
JavaScript
(function ($) {
var registry = {
jquery: $
};
window.define = function (name, dependencyNames, factory) {
var module;
//Allow for anonymous functions
if (typeof name !== "string") {
//Adjust args appropriately
factory = dependencyNames;
dependencyNames = name;
name = null;
}
// allow define(function()..)
if ($.isFunction(dependencyNames)) {
factory = dependencyNames;
dependencyNames = [];
}
module = factory.apply(null, getDependencies(dependencyNames));
if (name !== null) {
registry[name] = module;
}
};
window.require = function(dependencyNames, callback) {
callback.apply(null, getDependencies(dependencyNames));
};
function getDependencies(dependencyNames) {
var dependencies = [];
$.each(dependencyNames, function () {
dependencies.push(registry[this]);
});
if (dependencies.length === 0) {
dependencies.push($);
}
return dependencies;
}
}(jQuery));
define("Cookie", ["jquery"], function ($) {
function Cookie() {};
Cookie.prototype.hello = function () {
alert("Cooookies!");
};
return Cookie;
});
define("libs/bower-libs/mde-parking/js/Parking", [
"jquery",
"Cookie"
], function ($, Cookie) {
console.log(typeof Cookie);
function Parking() {
this.cookie = new Cookie();
};
Parking.prototype.hi = function () {
this.cookie.hello();
}
return Parking;
});
require([
"jquery",
"libs/bower-libs/mde-parking/js/Parking"
], function ($, Parking) {
var parking = new Parking();
parking.hi();
});