aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/node/node_fs_binding.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/javascript/jsc/node/node_fs_binding.zig')
-rw-r--r--src/javascript/jsc/node/node_fs_binding.zig423
1 files changed, 0 insertions, 423 deletions
diff --git a/src/javascript/jsc/node/node_fs_binding.zig b/src/javascript/jsc/node/node_fs_binding.zig
deleted file mode 100644
index 9e689b929..000000000
--- a/src/javascript/jsc/node/node_fs_binding.zig
+++ /dev/null
@@ -1,423 +0,0 @@
-const JSC = @import("../../../jsc.zig");
-const std = @import("std");
-const Flavor = JSC.Node.Flavor;
-const ArgumentsSlice = JSC.Node.ArgumentsSlice;
-const system = std.os.system;
-const Maybe = JSC.Maybe;
-const Encoding = JSC.Node.Encoding;
-const FeatureFlags = @import("../../../global.zig").FeatureFlags;
-const Args = JSC.Node.NodeFS.Arguments;
-const d = JSC.d;
-
-const NodeFSFunction = fn (
- *JSC.Node.NodeFS,
- JSC.C.JSContextRef,
- JSC.C.JSObjectRef,
- JSC.C.JSObjectRef,
- []const JSC.C.JSValueRef,
- JSC.C.ExceptionRef,
-) JSC.C.JSValueRef;
-
-pub const toJSTrait = std.meta.trait.hasFn("toJS");
-pub const fromJSTrait = std.meta.trait.hasFn("fromJS");
-const NodeFSFunctionEnum = JSC.Node.DeclEnum(JSC.Node.NodeFS);
-
-fn callSync(comptime FunctionEnum: NodeFSFunctionEnum) NodeFSFunction {
- const Function = @field(JSC.Node.NodeFS, @tagName(FunctionEnum));
- const FunctionType = @TypeOf(Function);
-
- const function: std.builtin.TypeInfo.Fn = comptime @typeInfo(FunctionType).Fn;
- comptime if (function.args.len != 3) @compileError("Expected 3 arguments");
- const Arguments = comptime function.args[1].arg_type.?;
- const FormattedName = comptime [1]u8{std.ascii.toUpper(@tagName(FunctionEnum)[0])} ++ @tagName(FunctionEnum)[1..];
- const Result = comptime JSC.Maybe(@field(JSC.Node.NodeFS.ReturnType, FormattedName));
-
- const NodeBindingClosure = struct {
- pub fn bind(
- this: *JSC.Node.NodeFS,
- ctx: JSC.C.JSContextRef,
- _: JSC.C.JSObjectRef,
- _: JSC.C.JSObjectRef,
- arguments: []const JSC.C.JSValueRef,
- exception: JSC.C.ExceptionRef,
- ) JSC.C.JSValueRef {
- var slice = ArgumentsSlice.init(ctx.bunVM(), @ptrCast([*]const JSC.JSValue, arguments.ptr)[0..arguments.len]);
- defer slice.deinit();
-
- const args = if (comptime Arguments != void)
- (Arguments.fromJS(ctx, &slice, exception) orelse return null)
- else
- Arguments{};
- if (exception.* != null) return null;
-
- const result: Result = Function(
- this,
- args,
- comptime Flavor.sync,
- );
- return switch (result) {
- .err => |err| brk: {
- exception.* = err.toJS(ctx);
- break :brk null;
- },
- .result => |res| if (comptime Result.ReturnType != void)
- JSC.To.JS.withType(Result.ReturnType, res, ctx, exception)
- else
- JSC.C.JSValueMakeUndefined(ctx),
- };
- }
- };
-
- return NodeBindingClosure.bind;
-}
-
-fn call(comptime Function: NodeFSFunctionEnum) NodeFSFunction {
- // const FunctionType = @TypeOf(Function);
- _ = Function;
-
- // const function: std.builtin.TypeInfo.Fn = comptime @typeInfo(FunctionType).Fn;
- // comptime if (function.args.len != 3) @compileError("Expected 3 arguments");
- // const Arguments = comptime function.args[2].arg_type orelse @compileError(std.fmt.comptimePrint("Function {s} expected to have an arg type at [2]", .{@typeName(FunctionType)}));
- // const Result = comptime function.return_type.?;
- // comptime if (Arguments != void and !fromJSTrait(Arguments)) @compileError(std.fmt.comptimePrint("{s} is missing fromJS()", .{@typeName(Arguments)}));
- // comptime if (Result != void and !toJSTrait(Result)) @compileError(std.fmt.comptimePrint("{s} is missing toJS()", .{@typeName(Result)}));
- const NodeBindingClosure = struct {
- pub fn bind(
- this: *JSC.Node.NodeFS,
- ctx: JSC.C.JSContextRef,
- _: JSC.C.JSObjectRef,
- _: JSC.C.JSObjectRef,
- arguments: []const JSC.C.JSValueRef,
- exception: JSC.C.ExceptionRef,
- ) JSC.C.JSValueRef {
- _ = this;
- _ = ctx;
- _ = arguments;
- var err = JSC.SystemError{};
- exception.* = err.toErrorInstance(ctx.ptr()).asObjectRef();
- return null;
- // var slice = ArgumentsSlice.init(arguments);
-
- // defer {
- // for (arguments.len) |arg| {
- // JSC.C.JSValueUnprotect(ctx, arg);
- // }
- // slice.arena.deinit();
- // }
-
- // const args = if (comptime Arguments != void)
- // Arguments.fromJS(ctx, &slice, exception)
- // else
- // Arguments{};
- // if (exception.* != null) return null;
-
- // const result: Maybe(Result) = Function(this, comptime Flavor.sync, args);
- // switch (result) {
- // .err => |err| {
- // exception.* = err.toJS(ctx);
- // return null;
- // },
- // .result => |res| {
- // return switch (comptime Result) {
- // void => JSC.JSValue.jsUndefined().asRef(),
- // else => res.toJS(ctx),
- // };
- // },
- // }
- // unreachable;
- }
- };
- return NodeBindingClosure.bind;
-}
-
-pub const NodeFSBindings = JSC.NewClass(
- JSC.Node.NodeFS,
- .{ .name = "fs", .ts = .{ .module = .{ .path = "fs" } } },
-
- .{
- .access = .{
- .name = "access",
- .rfn = call(.access),
- },
- .appendFile = .{
- .name = "appendFile",
- .rfn = call(.appendFile),
- },
- .close = .{
- .name = "close",
- .rfn = call(.close),
- },
- .copyFile = .{
- .name = "copyFile",
- .rfn = call(.copyFile),
- },
- .exists = .{
- .name = "exists",
- .rfn = call(.exists),
- },
- .chown = .{
- .name = "chown",
- .rfn = call(.chown),
- },
- .chmod = .{
- .name = "chmod",
- .rfn = call(.chmod),
- },
- .fchmod = .{
- .name = "fchmod",
- .rfn = call(.fchmod),
- },
- .fchown = .{
- .name = "fchown",
- .rfn = call(.fchown),
- },
- .fstat = .{
- .name = "fstat",
- .rfn = call(.fstat),
- },
- .fsync = .{
- .name = "fsync",
- .rfn = call(.fsync),
- },
- .ftruncate = .{
- .name = "ftruncate",
- .rfn = call(.ftruncate),
- },
- .futimes = .{
- .name = "futimes",
- .rfn = call(.futimes),
- },
- .lchmod = .{
- .name = "lchmod",
- .rfn = call(.lchmod),
- },
- .lchown = .{
- .name = "lchown",
- .rfn = call(.lchown),
- },
- .link = .{
- .name = "link",
- .rfn = call(.link),
- },
- .lstat = .{
- .name = "lstat",
- .rfn = call(.lstat),
- },
- .mkdir = .{
- .name = "mkdir",
- .rfn = call(.mkdir),
- },
- .mkdtemp = .{
- .name = "mkdtemp",
- .rfn = call(.mkdtemp),
- },
- .open = .{
- .name = "open",
- .rfn = call(.open),
- },
- .read = .{
- .name = "read",
- .rfn = call(.read),
- },
- .write = .{
- .name = "write",
- .rfn = call(.write),
- },
- .readdir = .{
- .name = "readdir",
- .rfn = call(.readdir),
- },
- .readFile = .{
- .name = "readFile",
- .rfn = call(.readFile),
- },
- .writeFile = .{
- .name = "writeFile",
- .rfn = call(.writeFile),
- },
- .readlink = .{
- .name = "readlink",
- .rfn = call(.readlink),
- },
- .realpath = .{
- .name = "realpath",
- .rfn = call(.realpath),
- },
- .rename = .{
- .name = "rename",
- .rfn = call(.rename),
- },
- .stat = .{
- .name = "stat",
- .rfn = call(.stat),
- },
- .symlink = .{
- .name = "symlink",
- .rfn = call(.symlink),
- },
- .truncate = .{
- .name = "truncate",
- .rfn = call(.truncate),
- },
- .unlink = .{
- .name = "unlink",
- .rfn = call(.unlink),
- },
- .utimes = .{
- .name = "utimes",
- .rfn = call(.utimes),
- },
- .lutimes = .{
- .name = "lutimes",
- .rfn = call(.lutimes),
- },
-
- .createReadStream = .{
- .name = "createReadStream",
- .rfn = if (FeatureFlags.node_streams) callSync(.createReadStream) else call(.createReadStream),
- },
-
- .createWriteStream = .{
- .name = "createWriteStream",
- .rfn = if (FeatureFlags.node_streams) callSync(.createWriteStream) else call(.createWriteStream),
- },
-
- .accessSync = .{
- .name = "accessSync",
- .rfn = callSync(.access),
- },
- .appendFileSync = .{
- .name = "appendFileSync",
- .rfn = callSync(.appendFile),
- },
- .closeSync = .{
- .name = "closeSync",
- .rfn = callSync(.close),
- },
- .copyFileSync = .{
- .name = "copyFileSync",
- .rfn = callSync(.copyFile),
- },
- .existsSync = .{
- .name = "existsSync",
- .rfn = callSync(.exists),
- },
- .chownSync = .{
- .name = "chownSync",
- .rfn = callSync(.chown),
- },
- .chmodSync = .{
- .name = "chmodSync",
- .rfn = callSync(.chmod),
- },
- .fchmodSync = .{
- .name = "fchmodSync",
- .rfn = callSync(.fchmod),
- },
- .fchownSync = .{
- .name = "fchownSync",
- .rfn = callSync(.fchown),
- },
- .fstatSync = .{
- .name = "fstatSync",
- .rfn = callSync(.fstat),
- },
- .fsyncSync = .{
- .name = "fsyncSync",
- .rfn = callSync(.fsync),
- },
- .ftruncateSync = .{
- .name = "ftruncateSync",
- .rfn = callSync(.ftruncate),
- },
- .futimesSync = .{
- .name = "futimesSync",
- .rfn = callSync(.futimes),
- },
- .lchmodSync = .{
- .name = "lchmodSync",
- .rfn = callSync(.lchmod),
- },
- .lchownSync = .{
- .name = "lchownSync",
- .rfn = callSync(.lchown),
- },
- .linkSync = .{
- .name = "linkSync",
- .rfn = callSync(.link),
- },
- .lstatSync = .{
- .name = "lstatSync",
- .rfn = callSync(.lstat),
- },
- .mkdirSync = .{
- .name = "mkdirSync",
- .rfn = callSync(.mkdir),
- },
- .mkdtempSync = .{
- .name = "mkdtempSync",
- .rfn = callSync(.mkdtemp),
- },
- .openSync = .{
- .name = "openSync",
- .rfn = callSync(.open),
- },
- .readSync = .{
- .name = "readSync",
- .rfn = callSync(.read),
- },
- .writeSync = .{
- .name = "writeSync",
- .rfn = callSync(.write),
- },
- .readdirSync = .{
- .name = "readdirSync",
- .rfn = callSync(.readdir),
- },
- .readFileSync = .{
- .name = "readFileSync",
- .rfn = callSync(.readFile),
- },
- .writeFileSync = .{
- .name = "writeFileSync",
- .rfn = callSync(.writeFile),
- },
- .readlinkSync = .{
- .name = "readlinkSync",
- .rfn = callSync(.readlink),
- },
- .realpathSync = .{
- .name = "realpathSync",
- .rfn = callSync(.realpath),
- },
- .renameSync = .{
- .name = "renameSync",
- .rfn = callSync(.rename),
- },
- .statSync = .{
- .name = "statSync",
- .rfn = callSync(.stat),
- },
- .symlinkSync = .{
- .name = "symlinkSync",
- .rfn = callSync(.symlink),
- },
- .truncateSync = .{
- .name = "truncateSync",
- .rfn = callSync(.truncate),
- },
- .unlinkSync = .{
- .name = "unlinkSync",
- .rfn = callSync(.unlink),
- },
- .utimesSync = .{
- .name = "utimesSync",
- .rfn = callSync(.utimes),
- },
- .lutimesSync = .{
- .name = "lutimesSync",
- .rfn = callSync(.lutimes),
- },
- },
- .{},
-);