jsenv module resolution
import resolution and remapping.
Introduction
This module exports a resolvePath
you can use to resolve an import.
It is used by jsenv to find every import statement files.
Installation
npm install @jsenv/module-resolution
resolvePath
takes { specifier, importer, importMap, defaultExtension } and returns a resolved path.
basic example
import { resolvePath } from "@jsenv/module-resolution"
const resolvePath = resolveImport({
importer: "http://domain.com/folder/file.js",
specifier: "../index.js",
})
console.log(resolvePath)
The code above logs http://domain.com/index.js
.
remapping example
import { resolvePath } from "@jsenv/module-resolution"
const resolvedPath = resolvePath({
importer: "http://domain.com/folder/file.js",
specifier: "../index.js",
importMap: {
imports: {
"/index.js": "/foo.js",
},
},
})
console.log(resolvedPath)
code above logs http://domain.com/foo.js
.
scoped remapping example
import { resolvedPath } from "@jsenv/module-resolution"
const resolvedPath = resolvePath({
importer: "http://domain.com/folder/file.js",
specifier: "../index.js",
importMap: {
imports: {
"/index.js": "/foo.js",
},
scopes: {
"/folder/": {
"/index.js": "/bar.js",
},
},
},
})
console.log(remappedImport)
code above logs http://domain.com/bar.js
.