Files
Moku/src/lib/request-manager/extensions.ts
T
2026-05-22 04:04:59 -05:00

52 lines
1.4 KiB
TypeScript

import { getAdapter } from '$lib/request-manager'
import { extensionsState } from '$lib/state/extensions.svelte'
export async function loadExtensions() {
extensionsState.loading = true
extensionsState.error = null
try {
extensionsState.items = await getAdapter().getExtensions()
} catch (e) {
extensionsState.error = String(e)
} finally {
extensionsState.loading = false
}
}
export async function loadSources() {
try {
extensionsState.sources = await getAdapter().getSources()
} catch (e) {
extensionsState.error = String(e)
}
}
export async function installExtension(id: string) {
await getAdapter().installExtension(id)
await loadExtensions()
}
export async function uninstallExtension(id: string) {
await getAdapter().uninstallExtension(id)
extensionsState.items = extensionsState.items.filter(e => e.id !== id)
}
export async function updateExtension(id: string) {
await getAdapter().updateExtension(id)
await loadExtensions()
}
export async function browseSource(sourceId: string, page: number) {
extensionsState.browseLoading = true
extensionsState.browseError = null
try {
const result = await getAdapter().browseSource(sourceId, page)
extensionsState.browseResults = result.items
extensionsState.browseHasMore = result.hasNextPage
} catch (e) {
extensionsState.browseError = String(e)
} finally {
extensionsState.browseLoading = false
}
}