mirror of
https://gitverse.ru/kpa39l/telepost.git
synced 2026-09-29 18:05:08 +00:00
Initial commit
This commit is contained in:
+45
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* @typedef {import('./lib/errors.js').ErrnoException} ErrnoException
|
||||
*/
|
||||
|
||||
import {defaultResolve} from './lib/resolve.js'
|
||||
|
||||
export {moduleResolve} from './lib/resolve.js'
|
||||
|
||||
/**
|
||||
* Match `import.meta.resolve` except that `parent` is required (you can pass
|
||||
* `import.meta.url`).
|
||||
*
|
||||
* @param {string} specifier
|
||||
* The module specifier to resolve relative to parent
|
||||
* (`/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`,
|
||||
* etc).
|
||||
* @param {string} parent
|
||||
* The absolute parent module URL to resolve from.
|
||||
* You must pass `import.meta.url` or something else.
|
||||
* @returns {string}
|
||||
* Returns a string to a full `file:`, `data:`, or `node:` URL
|
||||
* to the found thing.
|
||||
*/
|
||||
export function resolve(specifier, parent) {
|
||||
if (!parent) {
|
||||
throw new Error(
|
||||
'Please pass `parent`: `import-meta-resolve` cannot ponyfill that'
|
||||
)
|
||||
}
|
||||
|
||||
try {
|
||||
return defaultResolve(specifier, {parentURL: parent}).url
|
||||
} catch (error) {
|
||||
const exception = /** @type {ErrnoException} */ (error)
|
||||
|
||||
if (
|
||||
exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' &&
|
||||
typeof exception.url === 'string'
|
||||
) {
|
||||
return exception.url
|
||||
}
|
||||
|
||||
throw error
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user