- From: Bradley Meck <notifications@github.com>
- Date: Mon, 19 Feb 2018 18:00:20 +0000 (UTC)
- To: w3c/FileAPI <FileAPI@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Monday, 19 February 2018 18:00:43 UTC
@guest271314
> Not following
> > 2 modules with the same source text it would collide.
`data:` does not make new records whenever you import them, so you get into a strange situation where things get shared across potentially unrelated graphs:
```html
<script type="module">
import data from "data:application/javascript,export%20default%20{};";
// prints 1
setTimeout(() => console.log(data.x), 1000);
</script>
<script type="module">
import data from "data:application/javascript,export%20default%20{};";
data.x = 1;
</script>
```
So you have to use some different scheme for generic transforms that might generate the same source text.
----
Your code does exhibit the use case to some degree, but doesn't have the ability to intercept specifiers and referrers like https://github.com/bmeck/esm-http-server/blob/public/instrument.js is doing. Also, transformation of the `moduleBody` is unnecessary when you can redirect to a newly generated URL like `blob:` allows to the transformed `moduleBody`.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/FileAPI/issues/97#issuecomment-366766121
Received on Monday, 19 February 2018 18:00:43 UTC