1 module libwasm.bindings.Response; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.Blob; 7 import libwasm.bindings.Fetch; 8 import libwasm.bindings.FormData; 9 import libwasm.bindings.Headers; 10 11 @safe: 12 nothrow: 13 14 struct Response { 15 nothrow: 16 JsHandle handle; 17 alias handle this; 18 this(Handle h) { 19 this.handle = JsHandle(h); 20 } 21 auto error()() { 22 return Response(Object_Getter__Handle(this.handle, "error")); 23 } 24 auto redirect()(string url, ushort status /* = 302 */) { 25 return Response(Serialize_Object_VarArgCall!Handle(this.handle, "redirect", "string;ushort", tuple(url, status))); 26 } 27 auto redirect()(string url) { 28 return Response(Object_Call_string__Handle(this.handle, "redirect", url)); 29 } 30 ResponseType type()() { 31 return Object_Getter__int(this.handle, "type"); 32 } 33 string url()() { 34 return Object_Getter__string(this.handle, "url"); 35 } 36 bool redirected()() { 37 return Object_Getter__bool(this.handle, "redirected"); 38 } 39 ushort status()() { 40 return Object_Getter__ushort(this.handle, "status"); 41 } 42 bool ok()() { 43 return Object_Getter__bool(this.handle, "ok"); 44 } 45 string statusText()() { 46 return Object_Getter__string(this.handle, "statusText"); 47 } 48 auto headers()() { 49 return Headers(Object_Getter__Handle(this.handle, "headers")); 50 } 51 auto clone()() { 52 return Response(Object_Getter__Handle(this.handle, "clone")); 53 } 54 auto cloneUnfiltered()() { 55 return Response(Object_Getter__Handle(this.handle, "cloneUnfiltered")); 56 } 57 bool hasCacheInfoChannel()() { 58 return Object_Getter__bool(this.handle, "hasCacheInfoChannel"); 59 } 60 auto body_()() { 61 return recastOpt!(ReadableStream)(Object_Getter__OptionalHandle(this.handle, "body")); 62 } 63 bool bodyUsed()() { 64 return Object_Getter__bool(this.handle, "bodyUsed"); 65 } 66 auto arrayBuffer()() { 67 return JsPromise!(ArrayBuffer)(Object_Getter__Handle(this.handle, "arrayBuffer")); 68 } 69 auto blob()() { 70 return JsPromise!(Blob)(Object_Getter__Handle(this.handle, "blob")); 71 } 72 auto formData()() { 73 return JsPromise!(FormData)(Object_Getter__Handle(this.handle, "formData")); 74 } 75 auto json()() { 76 return JsPromise!(JSON)(Object_Getter__Handle(this.handle, "json")); 77 } 78 auto text()() { 79 return JsPromise!(string)(Object_Getter__Handle(this.handle, "text")); 80 } 81 } 82 struct ResponseInit { 83 nothrow: 84 JsHandle handle; 85 alias handle this; 86 this(Handle h) { 87 this.handle = JsHandle(h); 88 } 89 static auto create() { 90 return ResponseInit(libwasm_add__object()); 91 } 92 void status()(ushort status) { 93 Serialize_Object_VarArgCall!void(this.handle, "status", "ushort", tuple(status)); 94 } 95 ushort status()() { 96 return Object_Getter__ushort(this.handle, "status"); 97 } 98 void statusText()(string statusText) { 99 Object_Call_string__void(this.handle, "statusText", statusText); 100 } 101 string statusText()() { 102 return Object_Getter__string(this.handle, "statusText"); 103 } 104 void headers()(scope ref HeadersInit headers) { 105 Serialize_Object_VarArgCall!void(this.handle, "headers", "SumType!(Handle,Handle,Handle)", tuple(libwasm.sumtype.match!(((ref headers.Types[0] v) => 0),((ref headers.Types[1] v) => 1),((ref headers.Types[2] v) => 2))(headers),tuple(libwasm.sumtype.match!(((ref headers.Types[0] v) => cast(Handle)v.handle),((ref headers.Types[1] v) => Handle.init),((ref headers.Types[2] v) => Handle.init))(headers),libwasm.sumtype.match!(((ref headers.Types[0] v) => Handle.init),((ref headers.Types[1] v) => cast(Handle)v.handle),((ref headers.Types[2] v) => Handle.init))(headers),libwasm.sumtype.match!(((ref headers.Types[0] v) => Handle.init),((ref headers.Types[1] v) => Handle.init),((ref headers.Types[2] v) => cast(Handle)v.handle))(headers)))); 106 } 107 auto headers()() { 108 return Object_Getter__Handle(this.handle, "headers"); 109 } 110 } 111 enum ResponseType { 112 basic, 113 cors, 114 default_, 115 error, 116 opaque, 117 opaqueredirect 118 } 119 120