Expose Inscriboor 0.2.3 provider
This commit is contained in:
1 parent
1bfdb2f9b9
commit
b7cee2ed71
1 file changed
+14
-3
+14
-3
@@ -1,6 +1,8 @@
|
||||
(() => {
|
||||
if (window.inscriboor) return;
|
||||
|
||||
const pending = new Map();
|
||||
|
||||
window.addEventListener("message", event => {
|
||||
if (event.data?.source !== "inscriboor-extension") return;
|
||||
const request = pending.get(event.data.id);
|
||||
@@ -8,10 +10,14 @@
|
||||
pending.delete(event.data.id);
|
||||
event.data.error ? request.reject(new Error(event.data.error)) : request.resolve(event.data.result);
|
||||
});
|
||||
|
||||
const provider = Object.freeze({
|
||||
isInscriboor: true,n version: "0.2.2",
|
||||
isInscriboor: true,
|
||||
version: "0.2.3",
|
||||
request({ method, params = {} } = {}) {
|
||||
if (typeof method !== "string" || !method) return Promise.reject(new Error("A provider method is required."));
|
||||
if (typeof method !== "string" || !method) {
|
||||
return Promise.reject(new Error("A provider method is required."));
|
||||
}
|
||||
const id = crypto.randomUUID();
|
||||
return new Promise((resolve, reject) => {
|
||||
pending.set(id, { resolve, reject });
|
||||
@@ -25,6 +31,11 @@
|
||||
});
|
||||
}
|
||||
});
|
||||
Object.defineProperty(window, "inscriboor", { value: provider, configurable: false, writable: false });
|
||||
|
||||
Object.defineProperty(window, "inscriboor", {
|
||||
value: provider,
|
||||
configurable: false,
|
||||
writable: false
|
||||
});
|
||||
window.dispatchEvent(new Event("inscriboor#initialized"));
|
||||
})();
|
||||
Reference in new issue
Block a user