This repository was archived by the owner on Sep 2, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 44
Terminology: Loader Phases #205
Comments
Custom MIME types could be supported by a async function detectTypescriptFetch(parent, url) {
const resource = await parent(url);
if (resource.contentType === null && /\.ts$/.test(url)) { // "unknown contentType"
resource.contentType = 'typescript';
}
return resource;
} |
On that example, I would also consider:
Did you think of ways to deal with those? |
@SMotaal That's an orthogonal concern. The above was meant to illustrate handling a content type that isn't covered by a built-in mime DB. Handling query or fragments is fairly simple and doesn't change anything fundamentally. No extension will always require an additional out-of-band signal. :) |
#208 relates if we have a "ModuleSourceText" interface that can be used to end the fetching portion (ie resolve blesses it, fetch allows it) |
Replaced by #232 |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
I'm not sure if this is a better fit for terminology or for a more implementation-focussed discussion. But I would suggest a separation of concerns when talking about module loading. The outcome would hopefully be a clear description of what happens when and what phases are responsible for which concerns.
One possible variant of this can be found here: https://github.com/jkrems/loader#module-loading
For ease of discussion, inlining the content below:
Module Loading
Module loading is split into three phases:
Module Resolution (
resolve
)Given a
specifier: string
andreferrerURL: string
,provide a
url: string
or a set of potentialurls: string[]
of a resource:Resource Fetching (
fetch
)Given a resource
url: string
,fetch the resource content and associated meta data.
Module Init (
init
)Given a
resource: Resource
and atarget: Module
module handle,initialize the
target
.Most implementations will check the
resource.contentType
to select the appropriate behavior.
The text was updated successfully, but these errors were encountered: