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