chore(xo-server/remote): use builtin (un)serialize

This commit is contained in:
Julien Fontanet 2023-10-23 16:06:41 +02:00
parent 93d1c6c3fc
commit cf8a9d40be

View File

@ -1,24 +1,12 @@
import Collection from '../collection/redis.mjs'
import { forEach, serializeError } from '../utils.mjs'
import { serializeError } from '../utils.mjs'
import { parseProp } from './utils.mjs'
// ===================================================================
export class Remotes extends Collection {
async get(properties) {
const remotes = await super.get(properties)
forEach(remotes, remote => {
remote.benchmarks = parseProp('remote', remote, 'benchmarks')
remote.enabled = remote.enabled === 'true'
remote.error = parseProp('remote', remote, 'error', remote.error)
})
return remotes
}
_update(remotes) {
return super._update(
remotes.map(remote => {
_serialize(remote) {
const { benchmarks } = remote
if (benchmarks !== undefined) {
remote.benchmarks = JSON.stringify(benchmarks)
@ -28,9 +16,11 @@ export class Remotes extends Collection {
if (error !== undefined) {
remote.error = JSON.stringify(typeof error === 'object' ? serializeError(error) : error)
}
}
return remote
})
)
_unserialize(remote) {
remote.benchmarks = parseProp('remote', remote, 'benchmarks')
remote.enabled = remote.enabled === 'true'
remote.error = parseProp('remote', remote, 'error', remote.error)
}
}