aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Anton Golub <golub.anton@gmail.com> 2023-10-31 09:54:48 +0300
committerGravatar GitHub <noreply@github.com> 2023-10-30 23:54:48 -0700
commit732650d6a43d235d36a9bf8717766e012f445461 (patch)
treef8a3fa8806412cec30510a1489709da1225197a9 /src
parentb29d68bbaf8d759a9063d32944776064bf732659 (diff)
downloadbun-732650d6a43d235d36a9bf8717766e012f445461.tar.gz
bun-732650d6a43d235d36a9bf8717766e012f445461.tar.zst
bun-732650d6a43d235d36a9bf8717766e012f445461.zip
fix: provide nodejs compat for dns methods wrapped with util.promisify (#6748)
* fix: add nodejs compat for dns methods wrapping with util.promisify * fix: use single symbol for util.promisify.custom * style: linting
Diffstat (limited to 'src')
-rw-r--r--src/js/node/dns.js23
-rw-r--r--src/js/node/util.js2
2 files changed, 24 insertions, 1 deletions
diff --git a/src/js/node/dns.js b/src/js/node/dns.js
index e82e6a4b5..3f8787742 100644
--- a/src/js/node/dns.js
+++ b/src/js/node/dns.js
@@ -1,6 +1,7 @@
// Hardcoded module "node:dns"
// only resolve4, resolve, lookup, resolve6, resolveSrv, and reverse are implemented.
const dns = Bun.dns;
+const utilPromisifyCustomSymbol = Symbol.for("nodejs.util.promisify.custom");
function getServers() {
return dns.getServers();
@@ -683,6 +684,28 @@ for (const key of ["resolveAny"]) {
promises[key] = () => Promise.resolve(undefined);
}
+// Compatibility with util.promisify(dns[method])
+for (const [method, pMethod] of [
+ [lookup, promises.lookup],
+ [lookupService, promises.lookupService],
+ [resolve, promises.resolve],
+ [reverse, promises.reverse],
+ [resolve4, promises.resolve4],
+ [resolve6, promises.resolve6],
+ [resolveAny, promises.resolveAny],
+ [resolveCname, promises.resolveCname],
+ [resolveCaa, promises.resolveCaa],
+ [resolveMx, promises.resolveMx],
+ [resolveNs, promises.resolveNs],
+ [resolvePtr, promises.resolvePtr],
+ [resolveSoa, promises.resolveSoa],
+ [resolveSrv, promises.resolveSrv],
+ [resolveTxt, promises.resolveTxt],
+ [resolveNaptr, promises.resolveNaptr],
+]) {
+ method[utilPromisifyCustomSymbol] = pMethod;
+}
+
export default {
// these are wrong
ADDRCONFIG: 0,
diff --git a/src/js/node/util.js b/src/js/node/util.js
index dae341448..2002eed25 100644
--- a/src/js/node/util.js
+++ b/src/js/node/util.js
@@ -147,7 +147,7 @@ var _extend = function (origin, add) {
}
return origin;
};
-var kCustomPromisifiedSymbol = Symbol.for("util.promisify.custom");
+var kCustomPromisifiedSymbol = Symbol.for("nodejs.util.promisify.custom");
var promisify = function promisify(original) {
if (typeof original !== "function") throw new TypeError('The "original" argument must be of type Function');
if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {