1 module libwasm.bindings.ServiceWorkerContainer; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.EventHandler; 7 import libwasm.bindings.EventTarget; 8 import libwasm.bindings.ServiceWorker; 9 import libwasm.bindings.ServiceWorkerRegistration; 10 11 @safe: 12 nothrow: 13 14 struct RegistrationOptions { 15 nothrow: 16 JsHandle handle; 17 alias handle this; 18 this(Handle h) { 19 this.handle = JsHandle(h); 20 } 21 static auto create() { 22 return RegistrationOptions(libwasm_add__object()); 23 } 24 void scope_()(string scope_) { 25 Object_Call_string__void(this.handle, "scope", scope_); 26 } 27 string scope_()() { 28 return Object_Getter__string(this.handle, "scope"); 29 } 30 void updateViaCache()(ServiceWorkerUpdateViaCache updateViaCache) { 31 Object_Call_int__void(this.handle, "updateViaCache", updateViaCache); 32 } 33 ServiceWorkerUpdateViaCache updateViaCache()() { 34 return Object_Getter__int(this.handle, "updateViaCache"); 35 } 36 } 37 struct ServiceWorkerContainer { 38 nothrow: 39 libwasm.bindings.EventTarget.EventTarget _parent; 40 alias _parent this; 41 this(Handle h) { 42 _parent = .EventTarget(h); 43 } 44 auto controller()() { 45 return recastOpt!(ServiceWorker)(Object_Getter__OptionalHandle(this._parent, "controller")); 46 } 47 auto ready()() { 48 return JsPromise!(ServiceWorkerRegistration)(Object_Getter__Handle(this._parent, "ready")); 49 } 50 auto register()(string scriptURL, scope ref RegistrationOptions options) { 51 return JsPromise!(ServiceWorkerRegistration)(Serialize_Object_VarArgCall!Handle(this._parent, "register", "string;Handle", tuple(scriptURL, cast(Handle)options.handle))); 52 } 53 auto register()(string scriptURL) { 54 return JsPromise!(ServiceWorkerRegistration)(Object_Call_string__Handle(this._parent, "register", scriptURL)); 55 } 56 auto getRegistration()(string documentURL /* = "" */) { 57 return JsPromise!(Any)(Object_Call_string__Handle(this._parent, "getRegistration", documentURL)); 58 } 59 auto getRegistration()() { 60 return JsPromise!(Any)(Object_Getter__Handle(this._parent, "getRegistration")); 61 } 62 auto getRegistrations()() { 63 return JsPromise!(Sequence!(ServiceWorkerRegistration))(Object_Getter__Handle(this._parent, "getRegistrations")); 64 } 65 void startMessages()() { 66 Object_Call__void(this._parent, "startMessages"); 67 } 68 void oncontrollerchange(T0)(scope auto ref Optional!(T0) oncontrollerchange) if (isTOrPointer!(T0, EventHandlerNonNull)) { 69 Object_Call_EventHandler__void(this._parent, "oncontrollerchange", !oncontrollerchange.empty, oncontrollerchange.front); 70 } 71 EventHandler oncontrollerchange()() { 72 return Object_Getter__EventHandler(this._parent, "oncontrollerchange"); 73 } 74 void onerror(T0)(scope auto ref Optional!(T0) onerror) if (isTOrPointer!(T0, EventHandlerNonNull)) { 75 Object_Call_EventHandler__void(this._parent, "onerror", !onerror.empty, onerror.front); 76 } 77 EventHandler onerror()() { 78 return Object_Getter__EventHandler(this._parent, "onerror"); 79 } 80 void onmessage(T0)(scope auto ref Optional!(T0) onmessage) if (isTOrPointer!(T0, EventHandlerNonNull)) { 81 Object_Call_EventHandler__void(this._parent, "onmessage", !onmessage.empty, onmessage.front); 82 } 83 EventHandler onmessage()() { 84 return Object_Getter__EventHandler(this._parent, "onmessage"); 85 } 86 void onmessageerror(T0)(scope auto ref Optional!(T0) onmessageerror) if (isTOrPointer!(T0, EventHandlerNonNull)) { 87 Object_Call_EventHandler__void(this._parent, "onmessageerror", !onmessageerror.empty, onmessageerror.front); 88 } 89 EventHandler onmessageerror()() { 90 return Object_Getter__EventHandler(this._parent, "onmessageerror"); 91 } 92 string getScopeForUrl()(string url) { 93 return Object_Call_string__string(this._parent, "getScopeForUrl", url); 94 } 95 } 96 97