aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/module_loader.zig
diff options
context:
space:
mode:
authorGravatar Derrick Farris <mr.dcfarris@gmail.com> 2023-01-08 03:49:49 -0600
committerGravatar GitHub <noreply@github.com> 2023-01-08 01:49:49 -0800
commit94409770dece8bb9dfc23f4bdc2f240836035d87 (patch)
tree4cc627eb67c476871e84141a6c7a583e29e98309 /src/bun.js/module_loader.zig
parentc505f172b84f5359aa186513f3ef7d6394bfc7b2 (diff)
downloadbun-94409770dece8bb9dfc23f4bdc2f240836035d87.tar.gz
bun-94409770dece8bb9dfc23f4bdc2f240836035d87.tar.zst
bun-94409770dece8bb9dfc23f4bdc2f240836035d87.zip
feat(node:readline): add node:readline and node:readline/promises (#1738)
* feat(readline): WIP: add readline * test(helpers): add deepStrictEqual helper * feat(readline): add readline & readline/promises to loader * fix(node:events): emit newListener on new listener added * feat(readline): finish readline cb interface, add tests * fix(stream): fix Transform.end() * fix(node-test-helpers): correct throws behavior, improve how all asserts work * feat(readline/promises): add readline/promises * feat(assert): add assert.match * test(readline): uncomment more tests * fix(readline): MaxCeil -> MathCeil 🤦 * fix(readline): export promises from node:readline * fix(readline): temp fix for circular dependency * cleanup(readline): remove console.log * fix(readline): change true -> 0 for CommonJS export * perf(readline): micro-optimizations with some getters * perf(readline): lazy load isWritable * cleanup(readline): rename debug flag env var to BUN_JS_DEBUG
Diffstat (limited to 'src/bun.js/module_loader.zig')
-rw-r--r--src/bun.js/module_loader.zig26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/bun.js/module_loader.zig b/src/bun.js/module_loader.zig
index 6432fb7ca..46b7d0c09 100644
--- a/src/bun.js/module_loader.zig
+++ b/src/bun.js/module_loader.zig
@@ -1710,6 +1710,24 @@ pub const ModuleLoader = struct {
.hash = 0,
};
},
+ .@"node:readline" => {
+ return ResolvedSource{
+ .allocator = null,
+ .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "readline.exports.js")),
+ .specifier = ZigString.init("node:readline"),
+ .source_url = ZigString.init("node:readline"),
+ .hash = 0,
+ };
+ },
+ .@"node:readline/promises" => {
+ return ResolvedSource{
+ .allocator = null,
+ .source_code = ZigString.init(jsModuleFromFile(jsc_vm.load_builtins_from_path, "readline_promises.exports.js")),
+ .specifier = ZigString.init("node:readline/promises"),
+ .source_url = ZigString.init("node:readline/promises"),
+ .hash = 0,
+ };
+ },
.@"bun:ffi" => {
return ResolvedSource{
.allocator = null,
@@ -2016,6 +2034,8 @@ pub const HardcodedModule = enum {
@"node:path/win32",
@"node:perf_hooks",
@"node:process",
+ @"node:readline",
+ @"node:readline/promises",
@"node:stream",
@"node:stream/consumers",
@"node:stream/web",
@@ -2061,6 +2081,8 @@ pub const HardcodedModule = enum {
.{ "node:path/win32", HardcodedModule.@"node:path/win32" },
.{ "node:perf_hooks", HardcodedModule.@"node:perf_hooks" },
.{ "node:process", HardcodedModule.@"node:process" },
+ .{ "node:readline", HardcodedModule.@"node:readline" },
+ .{ "node:readline/promises", HardcodedModule.@"node:readline/promises" },
.{ "node:stream", HardcodedModule.@"node:stream" },
.{ "node:stream/consumers", HardcodedModule.@"node:stream/consumers" },
.{ "node:stream/web", HardcodedModule.@"node:stream/web" },
@@ -2119,6 +2141,8 @@ pub const HardcodedModule = enum {
.{ "node:path/win32", "node:path/win32" },
.{ "node:perf_hooks", "node:perf_hooks" },
.{ "node:process", "node:process" },
+ .{ "node:readline", "node:readline" },
+ .{ "node:readline/promises", "node:readline/promises" },
.{ "node:stream", "node:stream" },
.{ "node:stream/consumers", "node:stream/consumers" },
.{ "node:stream/web", "node:stream/web" },
@@ -2138,6 +2162,8 @@ pub const HardcodedModule = enum {
.{ "readable-stream", "node:stream" },
.{ "readable-stream/consumer", "node:stream/consumers" },
.{ "readable-stream/web", "node:stream/web" },
+ .{ "readline", "node:readline" },
+ .{ "readline/promises", "node:readline/promises" },
.{ "stream", "node:stream" },
.{ "stream/consumers", "node:stream/consumers" },
.{ "stream/web", "node:stream/web" },