import { JSONParse as json_parse, JSONStringify as json_stringify, } from "https://unpkg.com/json-with-bigint@3.4.4/json-with-bigint.js"; export default function tetratto(tetratto_host, api_key) { function api_promise(res) { return new Promise((resolve, reject) => { if (res.ok) { resolve(res.payload); } else { reject(res.message); } }); } async function app() { return api_promise( json_parse( await ( await fetch(`${tetratto_host}/api/v1/app_data/app`, { method: "GET", headers: { "Atto-Secret-Key": api_key, }, }) ).text(), ), ); } async function query(body) { return api_promise( json_parse( await ( await fetch(`${tetratto_host}/api/v1/app_data/query`, { method: "POST", headers: { "Content-Type": "application/json", "Atto-Secret-Key": api_key, }, body: json_stringify(body), }) ).text(), ), ); } async function insert(key, value) { return api_promise( json_parse( await ( await fetch(`${tetratto_host}/api/v1/app_data`, { method: "POST", headers: { "Content-Type": "application/json", "Atto-Secret-Key": api_key, }, body: json_stringify({ key, value, }), }) ).text(), ), ); } async function remove(id) { return api_promise( json_parse( await ( await fetch(`${tetratto_host}/api/v1/app_data/${id}`, { method: "DELETE", headers: { "Atto-Secret-Key": api_key, }, }) ).text(), ), ); } async function remove_query(body) { return api_promise( json_parse( await ( await fetch(`${tetratto_host}/api/v1/app_data/query`, { method: "DELETE", headers: { "Content-Type": "application/json", "Atto-Secret-Key": api_key, }, body: json_stringify(body), }) ).text(), ), ); } return { app, query, insert, remove, remove_query, }; }