42 lines
973 B
TypeScript
42 lines
973 B
TypeScript
|
// Thanks: https://stackoverflow.com/a/37014317
|
||
|
import { stat } from 'fs-extra'
|
||
|
import { makeGetRequest } from '../requests/requests'
|
||
|
import { LogLevel } from '../../models/server/log-level.type'
|
||
|
|
||
|
async function mtimeSortFilesDesc (files: string[], basePath: string) {
|
||
|
const promises = []
|
||
|
const out: { file: string, mtime: number }[] = []
|
||
|
|
||
|
for (const file of files) {
|
||
|
const p = stat(basePath + '/' + file)
|
||
|
.then(stats => {
|
||
|
if (stats.isFile()) out.push({ file, mtime: stats.mtime.getTime() })
|
||
|
})
|
||
|
|
||
|
promises.push(p)
|
||
|
}
|
||
|
|
||
|
await Promise.all(promises)
|
||
|
|
||
|
out.sort((a, b) => b.mtime - a.mtime)
|
||
|
|
||
|
return out
|
||
|
}
|
||
|
|
||
|
function getLogs (url: string, accessToken: string, startDate: Date, endDate?: Date, level?: LogLevel) {
|
||
|
const path = '/api/v1/server/logs'
|
||
|
|
||
|
return makeGetRequest({
|
||
|
url,
|
||
|
path,
|
||
|
token: accessToken,
|
||
|
query: { startDate, endDate, level },
|
||
|
statusCodeExpected: 200
|
||
|
})
|
||
|
}
|
||
|
|
||
|
export {
|
||
|
mtimeSortFilesDesc,
|
||
|
getLogs
|
||
|
}
|