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,36 +1,26 @@
import Collection from '../collection/redis.mjs' import Collection from '../collection/redis.mjs'
import { forEach, serializeError } from '../utils.mjs' import { serializeError } from '../utils.mjs'
import { parseProp } from './utils.mjs' import { parseProp } from './utils.mjs'
// =================================================================== // ===================================================================
export class Remotes extends Collection { export class Remotes extends Collection {
async get(properties) { _serialize(remote) {
const remotes = await super.get(properties) const { benchmarks } = remote
forEach(remotes, remote => { if (benchmarks !== undefined) {
remote.benchmarks = parseProp('remote', remote, 'benchmarks') remote.benchmarks = JSON.stringify(benchmarks)
remote.enabled = remote.enabled === 'true' }
remote.error = parseProp('remote', remote, 'error', remote.error)
}) const { error } = remote
return remotes if (error !== undefined) {
remote.error = JSON.stringify(typeof error === 'object' ? serializeError(error) : error)
}
} }
_update(remotes) { _unserialize(remote) {
return super._update( remote.benchmarks = parseProp('remote', remote, 'benchmarks')
remotes.map(remote => { remote.enabled = remote.enabled === 'true'
const { benchmarks } = remote remote.error = parseProp('remote', remote, 'error', remote.error)
if (benchmarks !== undefined) {
remote.benchmarks = JSON.stringify(benchmarks)
}
const { error } = remote
if (error !== undefined) {
remote.error = JSON.stringify(typeof error === 'object' ? serializeError(error) : error)
}
return remote
})
)
} }
} }