diff options
author | 2023-07-09 16:33:49 -0700 | |
---|---|---|
committer | 2023-07-09 16:33:49 -0700 | |
commit | ca42c820d29400d8bd93f493064db029f6d4420d (patch) | |
tree | 7d05580229fbab45a9fa54bec19d320d16a76ce2 /src/js/builtins/ProcessObjectInternals.ts | |
parent | 565d1689e9f2c1f6b657f14b07fa9b95e50a5a56 (diff) | |
download | bun-ca42c820d29400d8bd93f493064db029f6d4420d.tar.gz bun-ca42c820d29400d8bd93f493064db029f6d4420d.tar.zst bun-ca42c820d29400d8bd93f493064db029f6d4420d.zip |
Implement nearly all of `process` object methods and properties (#3581)
* Add special case
* Make process object load faster
* Fix openStdin
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/js/builtins/ProcessObjectInternals.ts')
-rw-r--r-- | src/js/builtins/ProcessObjectInternals.ts | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/js/builtins/ProcessObjectInternals.ts b/src/js/builtins/ProcessObjectInternals.ts index 8b24e68ba..8e2449a43 100644 --- a/src/js/builtins/ProcessObjectInternals.ts +++ b/src/js/builtins/ProcessObjectInternals.ts @@ -49,9 +49,14 @@ export function binding(bindingName) { return constants; } -export function getStdioWriteStream(fd_, rawRequire) { - var module = { path: "node:process", require: rawRequire }; - var require = path => module.require(path); +export function getStdioWriteStream(fd_) { + var require = path => { + var existing = $requireMap.get(path); + if (existing) return existing.exports; + + return $internalRequire(path); + }; + var module = { path: "node:process", require }; function createStdioWriteStream(fd_) { var { Duplex, eos, destroy } = require("node:stream"); @@ -472,10 +477,15 @@ export function getStdioWriteStream(fd_, rawRequire) { return new FastStdioWriteStream(fd_); } -export function getStdinStream(fd_, rawRequire, Bun) { - var module = { path: "node:process", require: rawRequire }; - var require = path => module.require(path); +export function getStdinStream(fd_) { + var require = path => { + var existing = $requireMap.get(path); + if (existing) return existing.exports; + + return $internalRequire(path); + }; + var module = { path: "node:process", require: require }; var { Duplex, eos, destroy } = require("node:stream"); var StdinStream = class StdinStream extends Duplex { |