From df7d17cd303c1ae9dff80e3802f7d3bde9fc7f3c Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Tue, 16 Jan 2024 17:22:38 +0100 Subject: [PATCH] xhr: start implementation --- src/xhr/xhr.zig | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/xhr/xhr.zig diff --git a/src/xhr/xhr.zig b/src/xhr/xhr.zig new file mode 100644 index 00000000..e2cb0430 --- /dev/null +++ b/src/xhr/xhr.zig @@ -0,0 +1,58 @@ +const std = @import("std"); + +const generate = @import("../generate.zig"); +const EventTarget = @import("../dom/event_target.zig").EventTarget; + +// XHR interfaces +// https://xhr.spec.whatwg.org/#interface-xmlhttprequest +pub const Interfaces = generate.Tuple(.{ + XMLHttpRequestEventTarget, + XMLHttpRequestUpload, +}); + +pub const XMLHttpRequestEventTarget = struct { + pub const prototype = *EventTarget; + pub const mem_guarantied = true; +}; + +pub const XMLHttpRequestUpload = struct { + pub const prototype = *XMLHttpRequestEventTarget; + pub const mem_guarantied = true; +}; + +pub const XMLHttpRequest = struct { + pub const prototype = *XMLHttpRequestEventTarget; + pub const mem_guarantied = true; + + pub fn constructor() XMLHttpRequest { + return XMLHttpRequest{}; + } + + pub const UNSENT: u16 = 0; + pub const OPENED: u16 = 1; + pub const HEADERS_RECEIVED: u16 = 2; + pub const LOADING: u16 = 3; + pub const DONE: u16 = 4; + + readyState: u16 = UNSENT, + + pub fn get_readyState(self: *XMLHttpRequest) u16 { + return self.readyState; + } + + pub fn _open( + self: *XMLHttpRequest, + method: []const u8, + url: []const u8, + asyn: ?bool, + username: ?[]const u8, + password: ?[]const u8, + ) !void { + _ = self; + _ = method; + _ = url; + _ = asyn; + _ = username; + _ = password; + } +};