diff options
author | 2023-04-01 21:13:27 -0700 | |
---|---|---|
committer | 2023-04-01 21:13:27 -0700 | |
commit | fcd8b828644cc3cf2bd46bbfc0f6b90789d5dba2 (patch) | |
tree | 075ad9fc3375a56b71da4ce6625419e5dd10cdba /src/bun.js/builtins/js | |
parent | 63d138b0466765e012aaa216ab684b2d39888e64 (diff) | |
download | bun-fcd8b828644cc3cf2bd46bbfc0f6b90789d5dba2.tar.gz bun-fcd8b828644cc3cf2bd46bbfc0f6b90789d5dba2.tar.zst bun-fcd8b828644cc3cf2bd46bbfc0f6b90789d5dba2.zip |
Add stubs for missing node builtins (#2534)
* Stub `node:v8`
* Stub `node:trace_events`
* Stub `node:repl`
* Stub `node:inspector`
* Stub `node:http2`
* Stub `node:diagnostics_channel`
* Stub `node:dgram`
* Stub `node:cluster`
* Link stubs
* cleanup
* Clean up the test
* Implement `node:vm` stub
* Cleanup `v8` module stub
* Add missing `promises` export to node:stream
* Implement `node:stream/promise`
* Implement `node:assert/strict`
* cleanup
* better errors
* Increaase timeout
* Update inspector.exports.js
* Make the version consistent
* Implement `process.binding("constants")`
* Update runner.node.mjs
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/bun.js/builtins/js')
-rw-r--r-- | src/bun.js/builtins/js/ProcessObjectInternals.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/bun.js/builtins/js/ProcessObjectInternals.js b/src/bun.js/builtins/js/ProcessObjectInternals.js index c1898d686..d9ab6d88a 100644 --- a/src/bun.js/builtins/js/ProcessObjectInternals.js +++ b/src/bun.js/builtins/js/ProcessObjectInternals.js @@ -23,6 +23,37 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +function binding(bindingName) { + "use strict"; + bindingName !== "constants" && + @throwTypeError( + 'process.binding() is not supported in Bun. If that breaks something, please file an issue and include a reproducible code sample.' + ); + + var cache = globalThis.Symbol.for("process.bindings.constants"); + var constants = globalThis[cache]; + if (!constants) { + // TODO: make this less hacky. + // This calls require("node:fs").constants + // except, outside an ESM module. + const {constants: fs} = globalThis[globalThis.Symbol.for("Bun.lazy")]( + "createImportMeta", + "node:process" + ).require( + "node:fs" + ) + constants = { + fs, + zlib: {}, + crypto: {}, + os: @Bun._Os().constants, + }; + globalThis[cache] = constants; + } + return constants; +} + function getStdioWriteStream(fd_, rawRequire) { var module = { path: "node:process", require: rawRequire }; var require = path => module.require(path); |