github.com/primecitizens/pcz/std@v0.2.1/plat/js/webext/filebrowserhandler/bindings/ffi_bindings.ts (about) 1 import { importModule, Application, heap, Pointer } from "@ffi"; 2 3 importModule("plat/js/webext/filebrowserhandler", (A: Application) => { 4 const WEBEXT = typeof globalThis.browser === "undefined" ? globalThis.chrome : globalThis.browser; 5 6 return { 7 "store_FileHandlerExecuteEventDetails": (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 + 17, false); 12 A.store.Ref(ptr + 0, undefined); 13 A.store.Bool(ptr + 16, false); 14 A.store.Int64(ptr + 8, 0); 15 } else { 16 A.store.Bool(ptr + 17, true); 17 A.store.Ref(ptr + 0, x["entries"]); 18 A.store.Bool(ptr + 16, "tab_id" in x ? true : false); 19 A.store.Int64(ptr + 8, x["tab_id"] === undefined ? 0 : (x["tab_id"] as number)); 20 } 21 }, 22 "load_FileHandlerExecuteEventDetails": ( 23 ptr: Pointer, 24 create: heap.Ref<boolean>, 25 ref: heap.Ref<any> 26 ): heap.Ref<any> => { 27 const x = create === A.H.TRUE ? {} : A.H.get<any>(ref); 28 29 x["entries"] = A.load.Ref(ptr + 0, undefined); 30 if (A.load.Bool(ptr + 16)) { 31 x["tab_id"] = A.load.Int64(ptr + 8); 32 } else { 33 delete x["tab_id"]; 34 } 35 return create === A.H.TRUE ? A.H.push(x) : ref; 36 }, 37 "has_OnExecute": (): heap.Ref<boolean> => { 38 if (WEBEXT?.fileBrowserHandler?.onExecute && "addListener" in WEBEXT?.fileBrowserHandler?.onExecute) { 39 return A.H.TRUE; 40 } 41 return A.H.FALSE; 42 }, 43 "func_OnExecute": (fn: Pointer): void => { 44 A.store.Ref(fn, WEBEXT.fileBrowserHandler.onExecute.addListener); 45 }, 46 "call_OnExecute": (retPtr: Pointer, callback: heap.Ref<object>): void => { 47 const _ret = WEBEXT.fileBrowserHandler.onExecute.addListener(A.H.get<object>(callback)); 48 }, 49 "try_OnExecute": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => { 50 try { 51 const _ret = WEBEXT.fileBrowserHandler.onExecute.addListener(A.H.get<object>(callback)); 52 return A.H.TRUE; 53 } catch (err: any) { 54 A.store.Ref(errPtr, err); 55 return A.H.FALSE; 56 } 57 }, 58 "has_OffExecute": (): heap.Ref<boolean> => { 59 if (WEBEXT?.fileBrowserHandler?.onExecute && "removeListener" in WEBEXT?.fileBrowserHandler?.onExecute) { 60 return A.H.TRUE; 61 } 62 return A.H.FALSE; 63 }, 64 "func_OffExecute": (fn: Pointer): void => { 65 A.store.Ref(fn, WEBEXT.fileBrowserHandler.onExecute.removeListener); 66 }, 67 "call_OffExecute": (retPtr: Pointer, callback: heap.Ref<object>): void => { 68 const _ret = WEBEXT.fileBrowserHandler.onExecute.removeListener(A.H.get<object>(callback)); 69 }, 70 "try_OffExecute": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => { 71 try { 72 const _ret = WEBEXT.fileBrowserHandler.onExecute.removeListener(A.H.get<object>(callback)); 73 return A.H.TRUE; 74 } catch (err: any) { 75 A.store.Ref(errPtr, err); 76 return A.H.FALSE; 77 } 78 }, 79 "has_HasOnExecute": (): heap.Ref<boolean> => { 80 if (WEBEXT?.fileBrowserHandler?.onExecute && "hasListener" in WEBEXT?.fileBrowserHandler?.onExecute) { 81 return A.H.TRUE; 82 } 83 return A.H.FALSE; 84 }, 85 "func_HasOnExecute": (fn: Pointer): void => { 86 A.store.Ref(fn, WEBEXT.fileBrowserHandler.onExecute.hasListener); 87 }, 88 "call_HasOnExecute": (retPtr: Pointer, callback: heap.Ref<object>): void => { 89 const _ret = WEBEXT.fileBrowserHandler.onExecute.hasListener(A.H.get<object>(callback)); 90 A.store.Bool(retPtr, _ret); 91 }, 92 "try_HasOnExecute": (retPtr: Pointer, errPtr: Pointer, callback: heap.Ref<object>): heap.Ref<boolean> => { 93 try { 94 const _ret = WEBEXT.fileBrowserHandler.onExecute.hasListener(A.H.get<object>(callback)); 95 A.store.Bool(retPtr, _ret); 96 return A.H.TRUE; 97 } catch (err: any) { 98 A.store.Ref(errPtr, err); 99 return A.H.FALSE; 100 } 101 }, 102 }; 103 });