UNPKG

toloframework

Version:

Javascript/HTML/CSS compiler for Firefox OS or nodewebkit apps using modules in the nodejs style.

49 lines (43 loc) 1.57 kB
/********************************************************************** require( 'require' ) ----------------------------------------------------------------------- @example var Path = require("node://path"); // Only in NodeJS/NW.js environment. var Button = require("tfw.button"); **********************************************************************/ window.require = function() { var modules = {}; var definitions = {}; var nodejs_require = typeof window.require === 'function' ? window.require : null; var f = function(id, body) { if( id.substr( 0, 7 ) == 'node://' ) { // Calling for a NodeJS module. if( !nodejs_require ) { throw Error( "[require] NodeJS is not available to load module `" + id + "`!" ); } return nodejs_require( id.substr( 7 ) ); } if( typeof body === 'function' ) { definitions[id] = body; return; } var mod; body = definitions[id]; if (typeof body === 'undefined') { var err = new Error("Required module is missing: " + id); console.error(err.stack); throw err; } mod = modules[id]; if (typeof mod === 'undefined') { mod = {exports: {}}; var exports = mod.exports; body(f, mod, exports); modules[id] = mod.exports; mod = mod.exports; //console.log("Module initialized: " + id); } return mod; }; return f; }();