<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">inline (but again, we should move this conversation to the loader repo where you will get more people looking at your questions)...<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 24, 2016, at 7:57 PM, John Lenz <<a href="mailto:concavelenz@gmail.com" class="">concavelenz@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><br class="">var exports = System.loader.registery.get('path/file.js');</div></div></blockquote><div><br class=""></div><div>No, the registry contains Module Status Objects.</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote">On Wed, Feb 24, 2016 at 3:53 PM, Caridy Patiño <span dir="ltr" class=""><<a href="mailto:caridy@gmail.com" target="_blank" class="">caridy@gmail.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class="">There is no such thing as a `key` in 262 (module spec). The `key` is a concept defined by the loader, and there it is not opaque.</div></blockquote><div class=""><br class=""></div><div class="">I don't see where the value of the key/meaning of the key is defined.  Can you be more specific as to what it is required to be?</div></div></div></div></div></blockquote><div><br class=""></div><div>The registry is essentially a Map of Module Status Objects. Users will have control over the keys associated to a Module Status Object via the "resolve" hook.</div><div><br class=""></div><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class="">As for retrieving the module exports, you have to go thru the APIs that will guarantee that those exports are ready to be consumed, and those are the `import` statements, the `import()` calls, and `Reflect.Module.evaluate()`, you have no other way to access those exports in a way that is reliable. </div></div></blockquote><div class=""><br class=""></div><div class=""><div class="">"import", "import()" and "evaluate" all force a load and a wait.  Forcing a load is distinctly not what is desired here.  I understand that a load could be "under way" but if one wanted to wait they would simply call "import()".</div></div></div></div></div></blockquote><div><br class=""></div><div>No, if you go thru the loader, it will be asynchronous to guarantee that the module and its dependencies are ready and evaluated.</div><div><br class=""></div><blockquote type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class="">I need to know if a module is loaded and ready, if it is I want the module exports immediately.</div></div></div></div></blockquote><div><br class=""></div><div>No, the closest you can get to that is by doing this:</div><div><br class=""></div><div>```</div><div>let moduleStatusObj = System.loader.registry.get(key);</div><div>if (moduleStatusObj.module !== undefined) {</div><div>   // you’re lucky! you have access to the exotic namespace object of the module</div><div>} </div>```</div><div><br class=""></div><div>In user-land, when you have access to an exotic namespace object, its module is guarantee to be instantiated, but there is not guarantee to be evaluated, or its circular dependencies evaluated, which you will have to force by calling `Reflect.Module.evaluate()`, which returns a promise that resolves once the module graph is ready to roll.</div><div><br class=""></div><div>On the other side of the coin, what if the entry is not in the registry? Are you planning to fork the logic in your code to go and attempt to load it?</div><div><br class=""></div><div>/caridy</div><br class=""></div></body></html>