public JsValue Load(string moduleName, Module parent = null) { IModule mod; if (string.IsNullOrEmpty(moduleName)) { throw new System.ArgumentException("moduleName is required.", nameof(moduleName)); } if (ModuleCache.ContainsKey(moduleName)) { mod = ModuleCache[moduleName]; parent.Children.Add(mod); return(mod.Exports); } var requestedModule = new ModuleRequestedEventArgs(moduleName); ModuleRequested?.Invoke(this, requestedModule); if (requestedModule.Exports != null && requestedModule.Exports != JsValue.Undefined) { ModuleCache.Add(moduleName, (mod = new InternalModule(moduleName, requestedModule.Exports))); return(mod.Exports); } return(new Module(this, moduleName, parent).Exports); }
protected ModuleLoadingEngine RegisterInternalModule(InternalModule mod) { ModuleCache.Add(mod.Id, mod); return(this); }