aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-12-05 19:20:36 -0800
committerAdam Soltys <[email protected]>2024-12-05 19:20:36 -0800
commita9b44cbae79e9c01cff07964a45e1c7efa7fb241 (patch)
tree5caa996fc2eca705fb793e79d63bfbf5f9f93e48 /src/lib
parent6422ef30f14e1baf5d1995de69c777efcad77e32 (diff)
downloadcoinos-ui-a9b44cbae79e9c01cff07964a45e1c7efa7fb241.tar.gz
coinos-ui-a9b44cbae79e9c01cff07964a45e1c7efa7fb241.zip
cached rates
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/cache.ts17
-rw-r--r--src/lib/invoice.ts5
-rw-r--r--src/lib/rates.ts13
3 files changed, 33 insertions, 2 deletions
diff --git a/src/lib/cache.ts b/src/lib/cache.ts
new file mode 100644
index 00000000..079c561b
--- /dev/null
+++ b/src/lib/cache.ts
@@ -0,0 +1,17 @@
+
+// src/lib/server/cache.ts
+let cachedData: any = null;
+
+async function fetchData() {
+ // Fetch data from your API
+ const response = await fetch('https://api.example.com/data');
+ cachedData = await response.json();
+}
+
+// Initialize cache and set up periodic updates
+fetchData(); // Initial fetch
+setInterval(fetchData, 60000); // Update every 60 seconds
+
+export function getCachedData() {
+ return cachedData;
+}
diff --git a/src/lib/invoice.ts b/src/lib/invoice.ts
index a48e02a4..d7576e82 100644
--- a/src/lib/invoice.ts
+++ b/src/lib/invoice.ts
@@ -1,12 +1,13 @@
-import { auth, get, post } from "$lib/utils";
+import getRates from "$lib/rates";
+import { auth, post } from "$lib/utils";
import { redirect } from "@sveltejs/kit";
export default async ({ cookies, request }) => {
const form = await request.formData();
const aid = form.get("aid") || cookies.get("aid");
- const rates = await get("/rates");
const amount = parseInt(form.get("amount"));
+ const rates = await getRates();
let invoice = {
aid,
diff --git a/src/lib/rates.ts b/src/lib/rates.ts
new file mode 100644
index 00000000..96aaeac2
--- /dev/null
+++ b/src/lib/rates.ts
@@ -0,0 +1,13 @@
+import { get } from "$lib/utils";
+
+let last;
+let rates;
+
+export default async function getRates() {
+ if (!rates || Date.now() - last > 60000) {
+ rates = await get("/rates");
+ last = Date.now();
+ }
+
+ return rates;
+}