diff --git a/lib/modular.js b/lib/modular.js index 24b7864..b5298bb 100644 --- a/lib/modular.js +++ b/lib/modular.js @@ -179,21 +179,22 @@ function Modular (options) { } function loadModule (mod) { - if (mod.module === undefined) { + if (mod.instance === undefined) { mod.module = require(mod.fullPath); - } - if (mod.module instanceof Function) { - let instanceModule = mod.module(get.bind(undefined,mod)); - return instanceModule ? instanceModule : mod.module; - } - else if (mod.module.onLoad instanceof Function){ - let instanceModule = mod.module.onLoad(get.bind(undefined, mod)); - return instanceModule ? instanceModule : mod.module; - } - else { - return mod.module; + if (mod.module instanceof Function) { + mod.instance = mod.module(get.bind(undefined,mod)); + } + else if (mod.module.onLoad instanceof Function){ + mod.module.onLoad(get.bind(undefined, mod)); + mod.instance = mod.module; + } + else { + mod.instance = mod.module; + } } + + return mod.instance; } @@ -269,6 +270,7 @@ function Modular (options) { } opts.module = undefined; + opts.instance = undefined; //Clear the cache of the module if exists if (require.cache[opts.fullPath]) {