Sha256: f15e5147e90bb76d3fa1441ab8b577a2a4c01658f8cd0d523a9ade130b092de5
Contents?: true
Size: 1.03 KB
Versions: 5
Compression:
Stored size: 1.03 KB
Contents
export function csrfToken(): string { const elem = document.querySelector("[name=csrf-token]"); if (!elem) { return ""; } return elem.getAttribute("content") || ""; } function jsonFetchOptions() { return { method: "POST", headers: { "Content-Type": "application/json; charset=utf-8", "X-CSRF-Token": csrfToken() } }; } export async function postJson(url: string, data: Record<string, unknown>) { const response = await fetch(url, { ...jsonFetchOptions(), method: "POST", body: data ? JSON.stringify(data) : null }); return response.json(); } export async function putJson(url: string, data: Record<string, unknown>) { const response = await fetch(url, { ...jsonFetchOptions(), method: "PUT", body: data ? JSON.stringify(data) : null }); return response.json(); } export async function post(url: string, data: FormData) { const response = await fetch(url, { method: "POST", body: data, headers: { "X-CSRF-Token": csrfToken() } }); return response.json(); }
Version data entries
5 entries across 5 versions & 1 rubygems