2026-01-23 15:55:56 +01:00

34 lines
1.0 KiB
JavaScript

const system = {
_pendingRequests: new Map(),
init: function() {
window.external.receiveMessage(response => {
try {
const res = JSON.parse(response)
if (res.requestId && this._pendingRequests.has(res.requestId)) {
const { resolve } = this._pendingRequests.get(res.requestId)
this._pendingRequests.delete(res.requestId)
resolve(res.payload)
}
} catch (e) {
console.error("Erreur format message :", e)
}
})
},
call: function(functionName, data = {}) {
return new Promise((resolve, reject) => {
const requestId = Math.random().toString(36).substring(7)
this._pendingRequests.set(requestId, { resolve, reject })
window.external.sendMessage(JSON.stringify({
requestId: requestId,
functionName: functionName,
payload: data
}))
})
}
}
system.init()