<div dir="ltr"><div>I don't think so, because:</div><div><ul><li>Using promises to import module is not always desirable</li><li>This mechanism doesn't impact ability to statically analyze modules if <span style="font-family:monospace,monospace">ifs</span> are excluded - it can only increase resolution time. <br></li></ul><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 1, 2019 at 1:56 PM Herby Vojčík <<a href="mailto:herby@mailbox.sk">herby@mailbox.sk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 1. 3. 2019 12:04, Michał Wadas wrote:<br>
> Syntax:<br>
> <br>
> try import fs from 'fs'<br>
>     else import fs from 'fs-polyfill'<br>
>     else import fs from 'another-fs-polyfill'<br>
>     else do nothing; // Not sure about syntax<br>
> <br>
> <br>
> try import {watchDirectory} from 'fs'<br>
>     else import {watchDirectory} from 'fs-polyfill'<br>
>     else if(process.os === 'ExoticSystem') import {watchDirectory} from <br>
> 'another-fs-polyfill'<br>
>     else throw Error('Your OS doesn\'t support watching directories');<br>
<br>
I am not an expert, but afaict ES module system was created to be <br>
statically analysable and this bring uncertainity.<br>
<br>
For that probably dynamic import() is there; and your usage should await <br>
for a promise that tries to load one then the other etc.<br>
<br>
Herby<br>
<br>
> Usages:<br>
> <br>
>   * Optional dependencies<br>
>   * Polyfills<br>
> <br>
> Problems:<br>
> <br>
>   * This can prevent loading modules before execution if presence of<br>
>     modules can't be proved statically<br>
>   * else-if requires execution before loading module - can be dropped<br>
> <br>
> <br>
> I don't have enough time and knowledge about modules to write actual <br>
> proposal.<br>
</blockquote></div>