diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/node/02_require.js | 5 | ||||
-rw-r--r-- | ext/node/lib.rs | 2 | ||||
-rw-r--r-- | ext/node/module_es_shim.js | 17 | ||||
-rw-r--r-- | ext/node/resolution.rs | 10 |
4 files changed, 28 insertions, 6 deletions
diff --git a/ext/node/02_require.js b/ext/node/02_require.js index d71ea611a..f2b42da53 100644 --- a/ext/node/02_require.js +++ b/ext/node/02_require.js @@ -40,6 +40,9 @@ const cjsParseCache = new SafeWeakMap(); function pathDirname(filepath) { + if (filepath == null || filepath === "") { + throw new Error("Empty filepath."); + } return ops.op_require_path_dirname(filepath); } @@ -470,6 +473,7 @@ if (isMain) { node.globalThis.process.mainModule = module; + mainModule = module; module.id = "."; } @@ -884,6 +888,7 @@ cjsParseCache, readPackageScope, bindExport, + moduleExports: m, }, }; })(globalThis); diff --git a/ext/node/lib.rs b/ext/node/lib.rs index 6be376e6d..f72f72cc9 100644 --- a/ext/node/lib.rs +++ b/ext/node/lib.rs @@ -40,6 +40,8 @@ mod errors; mod package_json; mod resolution; +pub const MODULE_ES_SHIM: &str = include_str!("./module_es_shim.js"); + struct Unstable(pub bool); pub fn init( diff --git a/ext/node/module_es_shim.js b/ext/node/module_es_shim.js new file mode 100644 index 000000000..ab128e7a9 --- /dev/null +++ b/ext/node/module_es_shim.js @@ -0,0 +1,17 @@ +const m = Deno[Deno.internal].require.moduleExports; +export const _cache = m._cache; +export const _extensions = m._extensions; +export const _findPath = m._findPath; +export const _initPaths = m._initPaths; +export const _load = m._load; +export const _nodeModulePaths = m._nodeModulePaths; +export const _pathCache = m._pathCache; +export const _preloadModules = m._preloadModules; +export const _resolveFilename = m._resolveFilename; +export const _resolveLookupPaths = m._resolveLookupPaths; +export const builtinModules = m.builtinModules; +export const createRequire = m.createRequire; +export const globalPaths = m.globalPaths; +export const Module = m.Module; +export const wrap = m.wrap; +export default m; diff --git a/ext/node/resolution.rs b/ext/node/resolution.rs index 9d71fba49..b839d4144 100644 --- a/ext/node/resolution.rs +++ b/ext/node/resolution.rs @@ -587,12 +587,10 @@ pub fn package_resolve( } } - let package_dir_path = npm_resolver - .resolve_package_folder_from_package( - &package_name, - &referrer.to_file_path().unwrap(), - ) - .unwrap(); + let package_dir_path = npm_resolver.resolve_package_folder_from_package( + &package_name, + &referrer.to_file_path().unwrap(), + )?; let package_json_path = package_dir_path.join("package.json"); let package_json_url = ModuleSpecifier::from_file_path(&package_json_path).unwrap(); |