summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGabor Javorszky <g.javorszky@f5.com>2023-12-07 15:07:24 +0000
committerDan Callahan <dan.callahan@gmail.com>2024-02-20 12:35:07 +0000
commitd24ae5a9a4b1140695e027087e72dcfdeb484ec0 (patch)
tree390d886dd48506983d5cb3f0da4ace28b511ddad
parent53648ed56488c73aaed94c3258fc4136bc4cba6d (diff)
downloadunit-d24ae5a9a4b1140695e027087e72dcfdeb484ec0.tar.gz
unit-d24ae5a9a4b1140695e027087e72dcfdeb484ec0.tar.bz2
Add additional replace rules for node:* modules
In that particular issue the compiled nuxt files end up importing the http module as node:http rather than http only. This bypasses unit's custom loader implementation which only check for the http or unit-http modules, and their websocket counterparts. This changeset adds replace sources for both the node:http and node:websocket import signatures. Closes: https://github.com/nginx/unit/issues/1013 Reviewed-by: Andrew Clayton <a.clayton@nginx.com>
-rw-r--r--src/nodejs/unit-http/loader.js2
-rw-r--r--src/nodejs/unit-http/loader.mjs2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/nodejs/unit-http/loader.js b/src/nodejs/unit-http/loader.js
index e5aa3558..849df3d1 100644
--- a/src/nodejs/unit-http/loader.js
+++ b/src/nodejs/unit-http/loader.js
@@ -11,10 +11,12 @@ if (module.parent && module.parent.id === "internal/preload") {
Module.prototype.require = function (id) {
switch(id) {
case "http":
+ case "node:http":
case "unit-http":
return http
case "websocket":
+ case "node:websocket":
case "unit-http/websocket":
return websocket
}
diff --git a/src/nodejs/unit-http/loader.mjs b/src/nodejs/unit-http/loader.mjs
index 83985b0f..01fa2920 100644
--- a/src/nodejs/unit-http/loader.mjs
+++ b/src/nodejs/unit-http/loader.mjs
@@ -2,6 +2,7 @@
export async function resolve(specifier, context, defaultResolver) {
switch (specifier) {
case "websocket":
+ case "node:websocket":
return {
url: new URL("./websocket.js", import.meta.url).href,
format: "commonjs",
@@ -9,6 +10,7 @@ export async function resolve(specifier, context, defaultResolver) {
}
case "http":
+ case "node:http":
return {
url: new URL("./http.js", import.meta.url).href,
format: "commonjs",