UNPKG

1.61 kBJavaScriptView Raw
1/**********************************************************************
2 require( 'require' )
3 -----------------------------------------------------------------------
4 @example
5
6 var Path = require("node://path"); // Only in NodeJS/NW.js environment.
7 var Button = require("tfw.button");
8
9 **********************************************************************/
10
11var require = function() {
12 var modules = {};
13 var definitions = {};
14 var nodejs_require = typeof window.require === 'function' ? window.require : null;
15
16 var f = function(id, body) {
17 if( id.substr( 0, 7 ) == 'node://' ) {
18 // Calling for a NodeJS module.
19 if( !nodejs_require ) {
20 throw Error( "[require] NodeJS is not available to load module `" + id + "`!" );
21 }
22 return nodejs_require( id.subtr( 7 ) );
23 }
24
25 if( typeof body === 'function' ) {
26 definitions[id] = body;
27 return;
28 }
29 var mod;
30 body = definitions[id];
31 if (typeof body === 'undefined') {
32 var err = new Error("Required module is missing: " + id);
33 console.error(err.stack);
34 throw err;
35 }
36 mod = modules[id];
37 if (typeof mod === 'undefined') {
38 mod = {exports: {}};
39 var exports = mod.exports;
40 body(exports, mod);
41 modules[id] = mod.exports;
42 mod = mod.exports;
43 //console.log("Module initialized: " + id);
44 }
45 return mod;
46 };
47 return f;
48}();