summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/node/02_require.js5
-rw-r--r--ext/node/lib.rs2
-rw-r--r--ext/node/module_es_shim.js17
-rw-r--r--ext/node/resolution.rs10
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();