-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathload.ts
More file actions
36 lines (33 loc) · 1.05 KB
/
load.ts
File metadata and controls
36 lines (33 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
* @file Hooks - LoadHook
* @module esm-types/hooks/LoadHook
*/
import type { ResolvedModuleUrl, Source } from '#src/types'
import type LoadHookContext from './load-context'
import type LoadHookResult from './load-result'
/**
* Determines how the given module `url` should be interpreted, retrieved, and
* parsed.
*
* @see {@linkcode LoadHookContext}
* @see {@linkcode LoadHookResult}
* @see {@linkcode ResolvedModuleUrl}
* @see {@linkcode Source}
* @see https://nodejs.org/api/esm.html#loadurl-context-nextload
*
* @template T - Source code type(s)
*
* @async
*
* @param {ResolvedModuleUrl} url - Resolved module URL
* @param {LoadHookContext} context - Hook context
* @param {LoadHook} nextLoad - Subsequent `load` hook in the chain, or default
* Node.js `load` hook after last user-supplied `load` hook
* @return {Promise<LoadHookResult<T>>} Hook result
*/
type LoadHook<T extends Source = Source> = (
url: ResolvedModuleUrl,
context: LoadHookContext,
nextLoad: LoadHook
) => Promise<LoadHookResult<T>>
export type { LoadHook as default }