+13
-2
src/lib/RepoStats.svelte
+13
-2
src/lib/RepoStats.svelte
···
16
16
let collections = $state(new Array<CountedCollection>());
17
17
let collectionsOrdered: Array<CountedCollection> = $derived([...collections].sort((a, b) => b.count - a.count))
18
18
let totalRecords = $state(0)
19
+
let startTime = $state<number | null>(null)
20
+
let endTime = $state<number | null>(null)
21
+
let elapsedTime = $derived.by(() => {
22
+
if (!startTime) return "0.00"
23
+
const end = endTime ?? Date.now()
24
+
return ((end - startTime) / 1000).toFixed(2)
25
+
})
19
26
20
27
const getRepoStats = async () => {
21
28
const endPoint = `${pdsUrl}/xrpc/com.atproto.sync.getRepo?did=${did}`
22
29
30
+
startTime = Date.now()
31
+
endTime = null
23
32
try {
24
33
const response = await fetch(endPoint)
25
34
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`)
···
46
55
await car.dispose()
47
56
}
48
57
58
+
endTime = Date.now()
49
59
loading = false;
50
60
} catch (err) {
61
+
endTime = Date.now()
51
62
console.error('Error fetching repo stats:', err)
52
63
error = err.message
53
64
loading = false
···
65
76
<p style="color: red">{error}</p>
66
77
{/if}
67
78
{#if loading}
68
-
Loading... ({downloadedMB} MB downloaded)
79
+
Loading... ({downloadedMB} MB downloaded, {elapsedTime}s)
69
80
{:else}
70
-
<span>Repo size {downloadedMB} MB</span>
81
+
<span>Repo size {downloadedMB} MB (fetched in {elapsedTime}s)</span>
71
82
{/if}
72
83
{#if collectionsOrdered.length > 0}
73
84