github.com/primecitizens/pcz/std@v0.2.1/plat/js/webext/loginscreenui/bindings/ffi_bindings.ts (about) 1 import { importModule, Application, heap, Pointer } from "@ffi"; 2 3 importModule("plat/js/webext/loginscreenui", (A: Application) => { 4 const WEBEXT = typeof globalThis.browser === "undefined" ? globalThis.chrome : globalThis.browser; 5 6 return { 7 "store_ShowOptions": (ptr: Pointer, ref: heap.Ref<any>) => { 8 const x = A.H.get<any>(ref); 9 10 if (typeof x === "undefined") { 11 A.store.Bool(ptr + 6, false); 12 A.store.Ref(ptr + 0, undefined); 13 A.store.Bool(ptr + 5, false); 14 A.store.Bool(ptr + 4, false); 15 } else { 16 A.store.Bool(ptr + 6, true); 17 A.store.Ref(ptr + 0, x["url"]); 18 A.store.Bool(ptr + 5, "userCanClose" in x ? true : false); 19 A.store.Bool(ptr + 4, x["userCanClose"] ? true : false); 20 } 21 }, 22 "load_ShowOptions": (ptr: Pointer, create: heap.Ref<boolean>, ref: heap.Ref<any>): heap.Ref<any> => { 23 const x = create === A.H.TRUE ? {} : A.H.get<any>(ref); 24 25 x["url"] = A.load.Ref(ptr + 0, undefined); 26 if (A.load.Bool(ptr + 5)) { 27 x["userCanClose"] = A.load.Bool(ptr + 4); 28 } else { 29 delete x["userCanClose"]; 30 } 31 return create === A.H.TRUE ? A.H.push(x) : ref; 32 }, 33 "has_Close": (): heap.Ref<boolean> => { 34 if (WEBEXT?.loginScreenUi && "close" in WEBEXT?.loginScreenUi) { 35 return A.H.TRUE; 36 } 37 return A.H.FALSE; 38 }, 39 "func_Close": (fn: Pointer): void => { 40 A.store.Ref(fn, WEBEXT.loginScreenUi.close); 41 }, 42 "call_Close": (retPtr: Pointer): void => { 43 const _ret = WEBEXT.loginScreenUi.close(); 44 A.store.Ref(retPtr, _ret); 45 }, 46 "try_Close": (retPtr: Pointer, errPtr: Pointer): heap.Ref<boolean> => { 47 try { 48 const _ret = WEBEXT.loginScreenUi.close(); 49 A.store.Ref(retPtr, _ret); 50 return A.H.TRUE; 51 } catch (err: any) { 52 A.store.Ref(errPtr, err); 53 return A.H.FALSE; 54 } 55 }, 56 "has_Show": (): heap.Ref<boolean> => { 57 if (WEBEXT?.loginScreenUi && "show" in WEBEXT?.loginScreenUi) { 58 return A.H.TRUE; 59 } 60 return A.H.FALSE; 61 }, 62 "func_Show": (fn: Pointer): void => { 63 A.store.Ref(fn, WEBEXT.loginScreenUi.show); 64 }, 65 "call_Show": (retPtr: Pointer, options: Pointer): void => { 66 const options_ffi = {}; 67 68 options_ffi["url"] = A.load.Ref(options + 0, undefined); 69 if (A.load.Bool(options + 5)) { 70 options_ffi["userCanClose"] = A.load.Bool(options + 4); 71 } 72 73 const _ret = WEBEXT.loginScreenUi.show(options_ffi); 74 A.store.Ref(retPtr, _ret); 75 }, 76 "try_Show": (retPtr: Pointer, errPtr: Pointer, options: Pointer): heap.Ref<boolean> => { 77 try { 78 const options_ffi = {}; 79 80 options_ffi["url"] = A.load.Ref(options + 0, undefined); 81 if (A.load.Bool(options + 5)) { 82 options_ffi["userCanClose"] = A.load.Bool(options + 4); 83 } 84 85 const _ret = WEBEXT.loginScreenUi.show(options_ffi); 86 A.store.Ref(retPtr, _ret); 87 return A.H.TRUE; 88 } catch (err: any) { 89 A.store.Ref(errPtr, err); 90 return A.H.FALSE; 91 } 92 }, 93 }; 94 });