<div dir="ltr"><br>var exports = System.loader.registery.get('path/file.js');<div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 24, 2016 at 3:53 PM, Caridy Patiño <span dir="ltr"><<a href="mailto:caridy@gmail.com" target="_blank">caridy@gmail.com</a>></span> wrote:<br><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">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><br></div><div>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><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"><span class=""><div><br></div><div><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>For my purpose the I would be interested in resolving the "name" so the module exports can be retrieved.</div></div></div></div></blockquote><br></div></span><div>Can you explain more? Resolving from where?</div></div></blockquote><div><br></div><div>A script or a module.  If this isn't helpful, I'm unclear on what the possible values for "where" are.</div><div> </div><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"><div> The context matters for the resolution process, e.g.: the referral can define how to resolve a module identifier.</div></div></blockquote><div><br></div><div>The context is user code, where the available "name" of a module would be identical to what would be used in an import declaration.</div><div> </div><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"><div> 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><br></div><div><div>"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><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"><div>Via the registry, you can attempt to inspect every module status in the registry, trying to access the namespace exotic object via ModuleStatus.prototype.module getter, but there is no guarantee that you get it, it depends on the current stage of the module in the pipeline.</div></div></blockquote><div><br></div><div>I having a hard time here to trying to understand what I can say differently to explain what I desire:  I need to know if a module is loaded and ready, if it is I want the module exports immediately.   </div><div><br></div><div><br></div><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"><span class=""><font color="#888888"><div><br></div><div>/caridy</div></font></span><div><div class="h5"><div><br><div><blockquote type="cite"><div>On Feb 24, 2016, at 6:40 PM, John Lenz <<a href="mailto:concavelenz@gmail.com" target="_blank">concavelenz@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 24, 2016 at 3:28 PM, Bradley Meck <span dir="ltr"><<a href="mailto:bradley.meck@gmail.com" target="_blank">bradley.meck@gmail.com</a>></span> wrote:<br><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 dir="ltr">In Node we can get the import path synchronously just from the parsed module, as proposed API in <a href="https://github.com/bmeck/node-eps/blob/es6-module/002-es6-modules.md" target="_blank">https://github.com/bmeck/node-eps/blob/es6-module/002-es6-modules.md</a> suggests. Can you clarify what you mean with<span><div><br></div><div>> <span style="font-size:12.8px">The "key" appears to only be resolvable asynchronously</span></div><div><span style="font-size:12.8px"><br></span></div></span><div><span style="font-size:12.8px">Which key? the path resolved from the source text?</span></div></div></blockquote><div><br></div><div>From the spec the "key" appears to be opaque.  For my purpose the I would be interested in resolving the "name" so the module exports can be retrieved.<br><br><br></div><div> </div><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 class="gmail_extra"><br><div class="gmail_quote"><div><div>On Wed, Feb 24, 2016 at 5:08 PM, Caridy Patiño <span dir="ltr"><<a href="mailto:caridy@gmail.com" target="_blank">caridy@gmail.com</a>></span> wrote:<br></div></div><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><div>I’m not sure what are you trying to do, but from within the module itself, you will have access to some metadata about the module, we have been chatting about `import()` and `import.<key>` as the imperative forms to import relative modules, accessing module’s metadata, and potentially a reference to the loader instance bound to the module (thru module status), but all that in up in the air.<br>
<br>
>From outside, things are more complicated, you have access to the registry of every loader instance, you can walk each registry, and do what you please, but there is no guarantee that the module status that you’re looking for is accessible (they can be removed from the registry and still function).<br>
<br>
You should probably post this question on whatwg/loader repo.<br>
<br>
/caridy<br>
<div><div><br>
> On Feb 24, 2016, at 5:58 PM, John Lenz <<a href="mailto:concavelenz@gmail.com" target="_blank">concavelenz@gmail.com</a>> wrote:<br>
><br>
> Background:<br>
><br>
> I'm trying to plan a migration to ES6 modules.  For interop with the existing systems in the short-medium term, I would like to be able to retrieve a loaded modules exports synchronously (basically a "get or fail").<br>
><br>
> It looks like retrieving the exports synchronously is possible using the Registry object, however the registry requires that you have an appropriate "key".  The "key" appears to only be resolvable asynchronously which means the whole operation must async.<br>
><br>
> Am I missing something?<br>
<br>
</div></div></div></div>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div><br></div>
</blockquote></div><br></div></div>
</div></blockquote></div><br></div></div></div></div></blockquote></div><br></div></div>