-
Notifications
You must be signed in to change notification settings - Fork 0
/
lib.js
48 lines (42 loc) · 1.33 KB
/
lib.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
function addElementToRow(row, element){
var cell = document.createElement("td");
if(typeof element === "string" || typeof element === "number"){
cell.innerHTML = element;
} else {
cell.appendChild(element);
}
row.appendChild(cell);
}
function makeRow(elements){
var row = document.createElement("tr");
elements.forEach(element => {
addElementToRow(row, element);
});
return row;
}
function sum(arr){
return arr.reduce((partialSum, a) => partialSum + a, 0);
}
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('service-worker.js');
}
function persistData(prefs, data){
data.last_update = moment();
if(prefs.url && prefs.key){
console.log("persistData", prefs.url, data);
// curl -D - -X POST -F file=@package.json http://localhost:8000/cgi-bin/store.py?key=$KEY\&action\=write
var url = `${prefs.url}?action=write&key=${prefs.key}`;
var formData = new FormData();
formData.append("file", new Blob([JSON.stringify(data)], {type: "application/json"}));
fetch(url, {method: "POST", body: formData}).then(r => r.text()).then(console.log);
} else {
localStorage.setItem("data", JSON.stringify(data));
}
}
function retrieveData(server, key){
if(server && key){
console.log(`Fetching data ${server}`)
var url = `${server}?action=read&key=${key}`;
return fetch(url).then(response => response.json());
}
}