diff options
author | 2023-03-06 13:09:52 -0800 | |
---|---|---|
committer | 2023-03-06 13:09:52 -0800 | |
commit | a512bdad8d5930a008ac1efa631835cb1c1e0d19 (patch) | |
tree | 74c9e87831f8f183fdd2fb2ff6bb1fc2bad257ca | |
parent | 3e1d368a27529c5abe8aa4b96f4e2fc2c86fc3e5 (diff) | |
download | bun-a512bdad8d5930a008ac1efa631835cb1c1e0d19.tar.gz bun-a512bdad8d5930a008ac1efa631835cb1c1e0d19.tar.zst bun-a512bdad8d5930a008ac1efa631835cb1c1e0d19.zip |
feat(tty): add some `tty.WriteStream` methods to `process.{stdout, stderr}` (#2320)
* feat(stdio): add some `tty.WriteStream` methods
* chore(builtins): add process builtin gen'd code
-rw-r--r-- | src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp | 25 | ||||
-rw-r--r-- | src/bun.js/builtins/js/ProcessObjectInternals.js | 23 |
2 files changed, 47 insertions, 1 deletions
diff --git a/src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp index 574d18f20..d44656f75 100644 --- a/src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp +++ b/src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp @@ -51,7 +51,7 @@ namespace WebCore { const JSC::ConstructAbility s_processObjectInternalsGetStdioWriteStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct; const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstructorKind = JSC::ConstructorKind::None; const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public; -const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 9767; +const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 10295; static const JSC::Intrinsic s_processObjectInternalsGetStdioWriteStreamCodeIntrinsic = JSC::NoIntrinsic; const char* const s_processObjectInternalsGetStdioWriteStreamCode = "(function (fd_, rawRequire) {\n" \ @@ -224,6 +224,8 @@ const char* const s_processObjectInternalsGetStdioWriteStreamCode = " return normalied === \"utf8\" || normalied === \"utf-8\" || normalied === \"buffer\" || normalied === \"binary\";\n" \ " }\n" \ "\n" \ + " var readline;\n" \ + "\n" \ " var FastStdioWriteStream = class StdioWriteStream extends EventEmitter {\n" \ " #fd;\n" \ " #innerStream;\n" \ @@ -275,6 +277,27 @@ const char* const s_processObjectInternalsGetStdioWriteStreamCode = " return (this.#isTTY ??= require(\"node:tty\").isatty(this.#fd));\n" \ " }\n" \ "\n" \ + " cursorTo(x, y, callback) {\n" \ + " return (readline ??= require(\"readline\")).cursorTo(this, x, y, callback);\n" \ + " }\n" \ + "\n" \ + " moveCursor(dx, dy, callback) {\n" \ + " return (readline ??= require(\"readline\")).moveCursor(this, dx, dy, callback);\n" \ + " }\n" \ + "\n" \ + " clearLine(dir, callback) {\n" \ + " return (readline ??= require(\"readline\")).clearLine(this, dir, callback);\n" \ + " }\n" \ + "\n" \ + " clearScreenDown(callback) {\n" \ + " return (readline ??= require(\"readline\")).clearScreenDown(this, callback);\n" \ + " }\n" \ + "\n" \ + " //\n" \ + " //\n" \ + " //\n" \ + " //\n" \ + "\n" \ " ref() {\n" \ " this.#getWriter().ref();\n" \ " }\n" \ diff --git a/src/bun.js/builtins/js/ProcessObjectInternals.js b/src/bun.js/builtins/js/ProcessObjectInternals.js index 723528fec..c1898d686 100644 --- a/src/bun.js/builtins/js/ProcessObjectInternals.js +++ b/src/bun.js/builtins/js/ProcessObjectInternals.js @@ -191,6 +191,8 @@ function getStdioWriteStream(fd_, rawRequire) { return normalied === "utf8" || normalied === "utf-8" || normalied === "buffer" || normalied === "binary"; } + var readline; + var FastStdioWriteStream = class StdioWriteStream extends EventEmitter { #fd; #innerStream; @@ -242,6 +244,27 @@ function getStdioWriteStream(fd_, rawRequire) { return (this.#isTTY ??= require("node:tty").isatty(this.#fd)); } + cursorTo(x, y, callback) { + return (readline ??= require("readline")).cursorTo(this, x, y, callback); + } + + moveCursor(dx, dy, callback) { + return (readline ??= require("readline")).moveCursor(this, dx, dy, callback); + } + + clearLine(dir, callback) { + return (readline ??= require("readline")).clearLine(this, dir, callback); + } + + clearScreenDown(callback) { + return (readline ??= require("readline")).clearScreenDown(this, callback); + } + + // TODO: once implemented this.columns and this.rows should be uncommented + // getWindowSize() { + // return [this.columns, this.rows]; + // } + ref() { this.#getWriter().ref(); } |