diff --git a/OnlyPrompt.Frontend/js/shared.js b/OnlyPrompt.Frontend/js/shared.js index 13d0c7b..2bc0115 100644 --- a/OnlyPrompt.Frontend/js/shared.js +++ b/OnlyPrompt.Frontend/js/shared.js @@ -1,95 +1,111 @@ -import './linq.js' -import { Template } from './template.js'; +import "./linq.js"; +import { Template } from "./template.js"; export function formToObject(form) { - const data = new FormData(form); - const object = {}; - data.forEach((value, key) => { - setNestedValue(object, key, value); - }); - return object; + const data = new FormData(form); + const object = {}; + data.forEach((value, key) => { + setNestedValue(object, key, value); + }); + return object; } function setNestedValue(obj, path, value) { - path.split('.').asEnumerable() - .isLast() - .forEach((key, isLast) => { - if (isLast) { - obj[key] = value; - } - else { - if (!obj[key]) { - obj[key] = {}; - } + path + .split(".") + .asEnumerable() + .isLast() + .forEach((key, isLast) => { + if (isLast) { + obj[key] = value; + } else { + if (!obj[key]) { + obj[key] = {}; + } - obj = obj[key]; - } - }); + obj = obj[key]; + } + }); } export async function sendFormAsync(form, url, method) { - url = url || form.action; - method = method || form.method || 'post'; - const data = formToObject(form); - const response = await sendJsonAsync(url, data, method); - if (response.ok && response.redirected) { - window.location.href = response.url; - return null; - } + url = url || form.action; + method = method || form.method || "post"; + const data = formToObject(form); + const response = await sendJsonAsync(url, data, method); + if (response.ok && response.redirected) { + window.location.href = response.url; + return null; + } - const responseText = await response.text(); - if (response.ok == false && handleValidationError(response, responseText, form)) { - return null; - } + const responseText = await response.text(); + if ( + response.ok == false && + handleValidationError(response, responseText, form) + ) { + return null; + } - if (response.ok == false) { - handleGenericFormError(response, responseText, form); - return null; - } else { - return responseText.length == 0 ? null : JSON.parse(responseText); - } + if (response.ok == false) { + handleGenericFormError(response, responseText, form); + return null; + } else { + return responseText.length == 0 ? null : JSON.parse(responseText); + } } -export async function sendJsonAsync(url, data, method = 'post') { - const response = await fetch(url, { - method: method.toUpperCase(), - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(data) - }); +export async function sendJsonAsync(url, data, method = "post") { + const response = await fetch(url, { + method: method.toUpperCase(), + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(data), + }); - return response; + return response; } export async function postAndRenderAsync(url, data, template, targetElement) { - const response = await sendJsonAsync(url, data); - if (response.ok) { - const responseText = await response.text(); - targetElement.innerHTML = template.render(responseText.length == 0 ? undefined : JSON.parse(responseText)); - } + const response = await sendJsonAsync(url, data); + if (response.ok) { + const responseText = await response.text(); + targetElement.innerHTML = template.render( + responseText.length == 0 ? undefined : JSON.parse(responseText), + ); + } } -export async function postFormAndRenderAsync(url, form, template, targetElement) { - const object = formToObject(form); - const data = await postFormAsync(url, object, template, targetElement); - if (data) { - targetElement.innerHTML = template.render(data); - } +export async function postFormAndRenderAsync( + url, + form, + template, + targetElement, +) { + const object = formToObject(form); + const data = await postFormAsync(url, object, template, targetElement); + if (data) { + targetElement.innerHTML = template.render(data); + } } const genericFormErrorTemplate = new Template(`