add: apps js sdk

This commit is contained in:
trisua 2025-07-18 13:22:25 -04:00
parent e393221b4f
commit 636ecce9f4
11 changed files with 223 additions and 41 deletions

View file

@ -0,0 +1,108 @@
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,
};
}