Status: DEV
Within any runtime context, given an internal or external Module URI, find the path to the Module Source and Containing Package.
const resolve = require("sm.resolve").for(module);
var info = resolve($PackageUri, $ModuleUri);
console.log(info);
NOTE: The resolve
method is synchronous as it should be abstracted/optimized away before the code hits the runtime by pre-loading any referenced dependencies. For resolving optional dependencies use resolve.async()
.
resolve.async($PackageUri, $ModuleUri).then(function info() {
console.log(info);
});
-
resolve
- () - triggered before a resolve occurs. Can return info and bypass resolve. -
resolved
- triggered after a resolve occured.
Given:
/package.json
/some/module.js
/some/package.json
/some/other/module.js
And running /some/module.js
from CWD: /:
require("sm.resolve")(module)("", other/module.js");
Will yield:
{
"origin": "/",
"from": "some/module.js",
"find": {
"package": "",
"module": "other/module.js"
},
"found": {
"package": "some",
"module": "other/module.js"
}
}
-
Overrides are mappings that swap out Source-Space implementations in the Runtime-Space
-
Relative uris reference Inside Source-Space modules.
-
Aliased uris reference Mapped External Source-Space modules.
-
Global uris reference Common Source-Space modules.
-
Fallback uris reference Virtual Source-Space modules.