1 module libwasm.bindings.Request; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.AbortSignal; 7 import libwasm.bindings.Blob; 8 import libwasm.bindings.Fetch; 9 import libwasm.bindings.FetchObserver; 10 import libwasm.bindings.FormData; 11 import libwasm.bindings.Headers; 12 13 @safe: 14 nothrow: 15 16 enum ReferrerPolicy { 17 none, 18 no_referrer, 19 no_referrer_when_downgrade, 20 origin, 21 origin_when_cross_origin, 22 unsafe_url, 23 same_origin, 24 strict_origin, 25 strict_origin_when_cross_origin 26 } 27 struct Request { 28 nothrow: 29 JsHandle handle; 30 alias handle this; 31 this(Handle h) { 32 this.handle = JsHandle(h); 33 } 34 string method()() { 35 return Object_Getter__string(this.handle, "method"); 36 } 37 string url()() { 38 return Object_Getter__string(this.handle, "url"); 39 } 40 auto headers()() { 41 return Headers(Object_Getter__Handle(this.handle, "headers")); 42 } 43 RequestDestination destination()() { 44 return Object_Getter__int(this.handle, "destination"); 45 } 46 string referrer()() { 47 return Object_Getter__string(this.handle, "referrer"); 48 } 49 ReferrerPolicy referrerPolicy()() { 50 return Object_Getter__int(this.handle, "referrerPolicy"); 51 } 52 RequestMode mode()() { 53 return Object_Getter__int(this.handle, "mode"); 54 } 55 RequestCredentials credentials()() { 56 return Object_Getter__int(this.handle, "credentials"); 57 } 58 RequestCache cache()() { 59 return Object_Getter__int(this.handle, "cache"); 60 } 61 RequestRedirect redirect()() { 62 return Object_Getter__int(this.handle, "redirect"); 63 } 64 string integrity()() { 65 return Object_Getter__string(this.handle, "integrity"); 66 } 67 bool mozErrors()() { 68 return Object_Getter__bool(this.handle, "mozErrors"); 69 } 70 auto signal()() { 71 return AbortSignal(Object_Getter__Handle(this.handle, "signal")); 72 } 73 auto clone()() { 74 return Request(Object_Getter__Handle(this.handle, "clone")); 75 } 76 void overrideContentPolicyType()(uint context) { 77 Object_Call_uint__void(this.handle, "overrideContentPolicyType", context); 78 } 79 bool bodyUsed()() { 80 return Object_Getter__bool(this.handle, "bodyUsed"); 81 } 82 auto arrayBuffer()() { 83 return JsPromise!(ArrayBuffer)(Object_Getter__Handle(this.handle, "arrayBuffer")); 84 } 85 auto blob()() { 86 return JsPromise!(Blob)(Object_Getter__Handle(this.handle, "blob")); 87 } 88 auto formData()() { 89 return JsPromise!(FormData)(Object_Getter__Handle(this.handle, "formData")); 90 } 91 auto json()() { 92 return JsPromise!(JSON)(Object_Getter__Handle(this.handle, "json")); 93 } 94 auto text()() { 95 return JsPromise!(string)(Object_Getter__Handle(this.handle, "text")); 96 } 97 } 98 enum RequestCache { 99 default_, 100 no_store, 101 reload, 102 no_cache, 103 force_cache, 104 only_if_cached 105 } 106 enum RequestCredentials { 107 omit, 108 same_origin, 109 include 110 } 111 enum RequestDestination { 112 none, 113 audio, 114 audioworklet, 115 document, 116 embed, 117 font, 118 image, 119 manifest, 120 object, 121 paintworklet, 122 report, 123 script, 124 sharedworker, 125 style, 126 track, 127 video, 128 worker, 129 xslt 130 } 131 alias RequestInfo = SumType!(Request, string); 132 struct RequestInit { 133 nothrow: 134 JsHandle handle; 135 alias handle this; 136 this(Handle h) { 137 this.handle = JsHandle(h); 138 } 139 static auto create() { 140 return RequestInit(libwasm_add__object()); 141 } 142 void method()(string method) { 143 Object_Call_string__void(this.handle, "method", method); 144 } 145 string method()() { 146 return Object_Getter__string(this.handle, "method"); 147 } 148 void headers()(scope ref HeadersInit headers) { 149 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)))); 150 } 151 auto headers()() { 152 return Object_Getter__Handle(this.handle, "headers"); 153 } 154 void body_(T0)(scope auto ref Optional!(T0) body_) if (isTOrPointer!(T0, BodyInit)) { 155 Serialize_Object_VarArgCall!void(this.handle, "body", "Optional!SumType!(Handle,Handle,Handle,Handle,string)", tuple(!body_.empty, libwasm.sumtype.match!(((ref body_.Types[0] v) => 0),((ref body_.Types[1] v) => 1),((ref body_.Types[2] v) => 2),((ref body_.Types[3] v) => 3),((string v) => 4))(body_),tuple(libwasm.sumtype.match!(((ref body_.Types[0] v) => cast(Handle)v.handle),((ref body_.Types[1] v) => Handle.init),((ref body_.Types[2] v) => Handle.init),((ref body_.Types[3] v) => Handle.init),((string v) => Handle.init))(body_),libwasm.sumtype.match!(((ref body_.Types[0] v) => Handle.init),((ref body_.Types[1] v) => cast(Handle)v.handle),((ref body_.Types[2] v) => Handle.init),((ref body_.Types[3] v) => Handle.init),((string v) => Handle.init))(body_),libwasm.sumtype.match!(((ref body_.Types[0] v) => Handle.init),((ref body_.Types[1] v) => Handle.init),((ref body_.Types[2] v) => cast(Handle)v.handle),((ref body_.Types[3] v) => Handle.init),((string v) => Handle.init))(body_),libwasm.sumtype.match!(((ref body_.Types[0] v) => Handle.init),((ref body_.Types[1] v) => Handle.init),((ref body_.Types[2] v) => Handle.init),((ref body_.Types[3] v) => cast(Handle)v.handle),((string v) => Handle.init))(body_),libwasm.sumtype.match!(((ref body_.Types[0] v) => string.init),((ref body_.Types[1] v) => string.init),((ref body_.Types[2] v) => string.init),((ref body_.Types[3] v) => string.init),((string v) => v))(body_)))); 156 } 157 auto body_()() { 158 return RequestInit_body_Get(this.handle); 159 } 160 void referrer()(string referrer) { 161 Object_Call_string__void(this.handle, "referrer", referrer); 162 } 163 string referrer()() { 164 return Object_Getter__string(this.handle, "referrer"); 165 } 166 void referrerPolicy()(ReferrerPolicy referrerPolicy) { 167 Object_Call_int__void(this.handle, "referrerPolicy", referrerPolicy); 168 } 169 ReferrerPolicy referrerPolicy()() { 170 return Object_Getter__int(this.handle, "referrerPolicy"); 171 } 172 void mode()(RequestMode mode) { 173 Object_Call_int__void(this.handle, "mode", mode); 174 } 175 RequestMode mode()() { 176 return Object_Getter__int(this.handle, "mode"); 177 } 178 void credentials()(RequestCredentials credentials) { 179 Object_Call_int__void(this.handle, "credentials", credentials); 180 } 181 RequestCredentials credentials()() { 182 return Object_Getter__int(this.handle, "credentials"); 183 } 184 void cache()(RequestCache cache) { 185 Object_Call_int__void(this.handle, "cache", cache); 186 } 187 RequestCache cache()() { 188 return Object_Getter__int(this.handle, "cache"); 189 } 190 void redirect()(RequestRedirect redirect) { 191 Object_Call_int__void(this.handle, "redirect", redirect); 192 } 193 RequestRedirect redirect()() { 194 return Object_Getter__int(this.handle, "redirect"); 195 } 196 void integrity()(string integrity) { 197 Object_Call_string__void(this.handle, "integrity", integrity); 198 } 199 string integrity()() { 200 return Object_Getter__string(this.handle, "integrity"); 201 } 202 void mozErrors()(bool mozErrors) { 203 Object_Call_bool__void(this.handle, "mozErrors", mozErrors); 204 } 205 bool mozErrors()() { 206 return Object_Getter__bool(this.handle, "mozErrors"); 207 } 208 void signal(T0)(scope auto ref Optional!(T0) signal) if (isTOrPointer!(T0, AbortSignal)) { 209 Serialize_Object_VarArgCall!void(this.handle, "signal", "Optional!Handle", tuple(!signal.empty, cast(Handle)signal.front._parent)); 210 } 211 auto signal()() { 212 return recastOpt!(AbortSignal)(Object_Getter__OptionalHandle(this.handle, "signal")); 213 } 214 void observe()(scope ref ObserverCallback observe) { 215 Object_Call_Handle__void(this.handle, "observe", observe.handle); 216 } 217 auto observe()() { 218 return ObserverCallback(Object_Getter__Handle(this.handle, "observe")); 219 } 220 } 221 enum RequestMode { 222 same_origin, 223 no_cors, 224 cors, 225 navigate 226 } 227 enum RequestRedirect { 228 follow, 229 error, 230 manual 231 } 232 alias nsContentPolicyType = uint; 233 234 235 extern (C) Optional!(BodyInit) RequestInit_body_Get(Handle);