robturtle
12/4/2016 - 3:20 AM

require-circulated-dependencies created by robturtle - https://repl.it/EfZt/3

require-circulated-dependencies created by robturtle - https://repl.it/EfZt/3

fileContents = {
  a: 'exports.a = { depends: require("b"), value: 1 };',
  b: 'exports.b = { depends: require("c"), value: 2 };',
  c: 'exports.c = { depends: require("a"), value: 3 };'
};
// simulate reading files
function readFile(fname) { return fileContents[fname]; }

function require(lib) {
  if (require.caches === undefined) require.caches = {};
  if (require.caches[lib] === undefined) {
    let importer = new Function('exports', readFile(lib));
    importer(require.caches[lib] = {});
  }
  return require.caches[lib];
}

let libA = require('a');
console.log(libA);
console.log(libA.a.depends);
console.log(libA.a.depends.b.depends);
console.log(libA.a.depends.b.depends.c.depends);