UNPKG

lmd

Version:

LMD: Lazy Module Declaration

35 lines (28 loc) 844 B
var definitions = []; function init(root) { for (var i = 0, c = definitions.length, definition; i < c; i++) { definition = definitions[i]; $(root || document).find(definition.selector).each(function () { var $el = $(this); if ($el.data('instance')) { return; } $el.data('instance', new definition.Constructor($el)); }); } } function define(selector, Constructor) { definitions.push({ selector: selector, Constructor: Constructor }); } function defineAll() { var modules = require.match(/^components\/([^\/]+)$/); for (var moduleName in modules) { define(moduleName.replace('components/', '.'), modules[moduleName]); } } exports.init = init; exports.define = define; exports.defineAll = defineAll;