1 module libwasm.bindings.AddonManager; 2 3 import libwasm.types; 4 5 import memutils.ct: tuple; 6 import libwasm.bindings.EventTarget; 7 8 @safe: 9 nothrow: 10 11 struct Addon { 12 nothrow: 13 JsHandle handle; 14 alias handle this; 15 this(Handle h) { 16 this.handle = JsHandle(h); 17 } 18 string id()() { 19 return Object_Getter__string(this.handle, "id"); 20 } 21 string version_()() { 22 return Object_Getter__string(this.handle, "version"); 23 } 24 string type()() { 25 return Object_Getter__string(this.handle, "type"); 26 } 27 string name()() { 28 return Object_Getter__string(this.handle, "name"); 29 } 30 string description()() { 31 return Object_Getter__string(this.handle, "description"); 32 } 33 bool isEnabled()() { 34 return Object_Getter__bool(this.handle, "isEnabled"); 35 } 36 bool isActive()() { 37 return Object_Getter__bool(this.handle, "isActive"); 38 } 39 bool canUninstall()() { 40 return Object_Getter__bool(this.handle, "canUninstall"); 41 } 42 auto uninstall()() { 43 return JsPromise!(bool)(Object_Getter__Handle(this.handle, "uninstall")); 44 } 45 auto setEnabled()(bool value) { 46 return JsPromise!(void)(Object_Call_bool__Handle(this.handle, "setEnabled", value)); 47 } 48 } 49 struct AddonInstall { 50 nothrow: 51 libwasm.bindings.EventTarget.EventTarget _parent; 52 alias _parent this; 53 this(Handle h) { 54 _parent = .EventTarget(h); 55 } 56 string state()() { 57 return Object_Getter__string(this._parent, "state"); 58 } 59 Optional!(string) error()() { 60 return Object_Getter__OptionalString(this._parent, "error"); 61 } 62 int progress()() { 63 return Object_Getter__int(this._parent, "progress"); 64 } 65 int maxProgress()() { 66 return Object_Getter__int(this._parent, "maxProgress"); 67 } 68 auto install()() { 69 return JsPromise!(void)(Object_Getter__Handle(this._parent, "install")); 70 } 71 auto cancel()() { 72 return JsPromise!(void)(Object_Getter__Handle(this._parent, "cancel")); 73 } 74 } 75 struct AddonManager { 76 nothrow: 77 libwasm.bindings.EventTarget.EventTarget _parent; 78 alias _parent this; 79 this(Handle h) { 80 _parent = .EventTarget(h); 81 } 82 auto getAddonByID()(string id) { 83 return JsPromise!(Addon)(Object_Call_string__Handle(this._parent, "getAddonByID", id)); 84 } 85 auto createInstall()(scope ref addonInstallOptions options) { 86 return JsPromise!(AddonInstall)(Object_Call_Handle__Handle(this._parent, "createInstall", options.handle)); 87 } 88 auto createInstall()() { 89 return JsPromise!(AddonInstall)(Object_Getter__Handle(this._parent, "createInstall")); 90 } 91 bool permissionPromptsEnabled()() { 92 return Object_Getter__bool(this._parent, "permissionPromptsEnabled"); 93 } 94 } 95 struct AddonManagerPermissions { 96 nothrow: 97 JsHandle handle; 98 alias handle this; 99 this(Handle h) { 100 this.handle = JsHandle(h); 101 } 102 bool isHostPermitted()(string host) { 103 return Object_Call_string__bool(this.handle, "isHostPermitted", host); 104 } 105 } 106 struct addonInstallOptions { 107 nothrow: 108 JsHandle handle; 109 alias handle this; 110 this(Handle h) { 111 this.handle = JsHandle(h); 112 } 113 static auto create() { 114 return addonInstallOptions(libwasm_add__object()); 115 } 116 void url()(string url) { 117 Object_Call_string__void(this.handle, "url", url); 118 } 119 string url()() { 120 return Object_Getter__string(this.handle, "url"); 121 } 122 void hash(T0)(scope auto ref Optional!(T0) hash) if (isTOrPointer!(T0, string)) { 123 Serialize_Object_VarArgCall!void(this.handle, "hash", "Optional!(string)", tuple(!hash.empty, hash.front)); 124 } 125 Optional!(string) hash()() { 126 return Object_Getter__OptionalString(this.handle, "hash"); 127 } 128 } 129 130