You've already forked AstralRinth
forked from didirus/AstralRinth
* refactor: migrate to common eslint+prettier configs * fix: prettier frontend * feat: config changes * fix: lint issues * fix: lint * fix: type imports * fix: cyclical import issue * fix: lockfile * fix: missing dep * fix: switch to tabs * fix: continue switch to tabs * fix: rustfmt parity * fix: moderation lint issue * fix: lint issues * fix: ui intl * fix: lint issues * Revert "fix: rustfmt parity" This reverts commit cb99d2376c321d813d4b7fc7e2a213bb30a54711. * feat: revert last rs
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import type { ContentType, Mod } from '@modrinth/utils'
|
|
|
|
import { useServersFetch } from '../servers-fetch.ts'
|
|
import { ServerModule } from './base.ts'
|
|
|
|
export class ContentModule extends ServerModule {
|
|
data: Mod[] = []
|
|
|
|
async fetch(): Promise<void> {
|
|
const mods = await useServersFetch<Mod[]>(`servers/${this.serverId}/mods`, {}, 'content')
|
|
this.data = mods.sort((a, b) => (a?.name ?? '').localeCompare(b?.name ?? ''))
|
|
}
|
|
|
|
async install(contentType: ContentType, projectId: string, versionId: string): Promise<void> {
|
|
await useServersFetch(`servers/${this.serverId}/mods`, {
|
|
method: 'POST',
|
|
body: {
|
|
rinth_ids: { project_id: projectId, version_id: versionId },
|
|
install_as: contentType,
|
|
},
|
|
})
|
|
}
|
|
|
|
async remove(path: string): Promise<void> {
|
|
await useServersFetch(`servers/${this.serverId}/deleteMod`, {
|
|
method: 'POST',
|
|
body: { path },
|
|
})
|
|
}
|
|
|
|
async reinstall(replace: string, projectId: string, versionId: string): Promise<void> {
|
|
await useServersFetch(`servers/${this.serverId}/mods/update`, {
|
|
method: 'POST',
|
|
body: { replace, project_id: projectId, version_id: versionId },
|
|
})
|
|
}
|
|
}
|