diff options
author | 2023-10-31 09:54:48 +0300 | |
---|---|---|
committer | 2023-10-30 23:54:48 -0700 | |
commit | 732650d6a43d235d36a9bf8717766e012f445461 (patch) | |
tree | f8a3fa8806412cec30510a1489709da1225197a9 /src | |
parent | b29d68bbaf8d759a9063d32944776064bf732659 (diff) | |
download | bun-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.js | 23 | ||||
-rw-r--r-- | src/js/node/util.js | 2 |
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]) { |