UNPKG

@theweave/api

Version:

This package contains the interfaces and contracts that a Holochain app UI needs to implement in order to run as a Tool in a Weave Frame like [Moss](theweave.social#tryit).

27 lines 1.05 kB
import { decodeHashFromBase64 } from '@holochain/client'; export async function postMessage(request) { return new Promise((resolve, reject) => { const channel = new MessageChannel(); const lowercaseB64IdWithPercent = window.location.href.split('#')[1]; const lowercaseB64Id = lowercaseB64IdWithPercent.replace(/%24/g, '$'); const appletHash = decodeHashFromBase64(toOriginalCaseB64(lowercaseB64Id)); const message = { request, appletHash, }; // eslint-disable-next-line no-restricted-globals top.postMessage(message, '*', [channel.port2]); channel.port1.onmessage = (m) => { if (m.data.type === 'success') { resolve(m.data.result); } else if (m.data.type === 'error') { reject(m.data.error); } }; }); } export function toOriginalCaseB64(input) { return input.replace(/[a-z]\$/g, (match) => match[0].toUpperCase()); } //# sourceMappingURL=utils.js.map