feat(api): list servers
This commit is contained in:
parent
6c9908d030
commit
52a8ae47fe
3 changed files with 26 additions and 0 deletions
10
server/api/list-servers.ts
Normal file
10
server/api/list-servers.ts
Normal file
|
@ -0,0 +1,10 @@
|
|||
import { defineEventHandler } from 'h3'
|
||||
import { listServers } from '~/server/shared'
|
||||
|
||||
let servers: string[]
|
||||
|
||||
export default defineEventHandler(async () => {
|
||||
if (!servers)
|
||||
servers = await listServers()
|
||||
return servers
|
||||
})
|
|
@ -64,3 +64,16 @@ export async function getApp(server: string) {
|
|||
return null
|
||||
}
|
||||
}
|
||||
|
||||
export async function listServers() {
|
||||
const keys = await storage.getKeys()
|
||||
const servers = new Set<string>()
|
||||
for await (const key of keys) {
|
||||
if (!key.startsWith('servers:'))
|
||||
continue
|
||||
const id = key.split(':').pop()!.replace(/\.json$/, '')
|
||||
if (id)
|
||||
servers.add(id)
|
||||
}
|
||||
return Array.from(servers).sort()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue