export const replicateForm = ( buyForm: HTMLFormElement, additionalData: Record, ): HTMLFormElement | false => { if (!(buyForm instanceof HTMLFormElement)) { return false; } const action = buyForm.getAttribute("action"); const method = buyForm.getAttribute("method"); if (!action || !method) { return false; } const form = document.createElement("form"); form.setAttribute("action", action); form.setAttribute("method", method); form.style.display = "none"; const formData = new FormData(buyForm); for (const [key, value] of Object.entries(additionalData)) { formData.set(key, value); } for (const key of formData.keys()) { const field = document.createElement("input"); field.setAttribute("type", "hidden"); field.setAttribute("name", key); field.setAttribute("value", formData.get(key) as string); // TypeScript type assertion form.appendChild(field); } document.body.appendChild(form); return form; }; export const waitForLoadEvent = (): Promise => { return new Promise((resolve) => { window.addEventListener("load", () => { resolve(); }); }); };