From 24d1e2984c3d3383c0588cea58d0aee8cf1ae41d Mon Sep 17 00:00:00 2001 From: Jens Claes Date: Fri, 23 Sep 2022 09:55:37 +0200 Subject: [PATCH] refactor: extract out getStatesToWrite --- src/utils/encoding.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/utils/encoding.js b/src/utils/encoding.js index 354a519c..5597aea5 100644 --- a/src/utils/encoding.js +++ b/src/utils/encoding.js @@ -83,14 +83,13 @@ const writeStructs = (encoder, structs, client, clock) => { } /** - * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder * @param {StructStore} store * @param {Map} _sm * * @private * @function */ -export const writeClientsStructs = (encoder, store, _sm) => { +export const getStatesToWrite = (store, _sm) => { // we filter all valid _sm entries into sm const sm = new Map() _sm.forEach((clock, client) => { @@ -104,6 +103,19 @@ export const writeClientsStructs = (encoder, store, _sm) => { sm.set(client, 0) } }) + return sm +} + +/** + * @param {UpdateEncoderV1 | UpdateEncoderV2} encoder + * @param {StructStore} store + * @param {Map} _sm + * + * @private + * @function + */ +export const writeClientsStructs = (encoder, store, _sm) => { + const sm = getStatesToWrite(store, _sm) // write # states that were updated encoding.writeVarUint(encoder.restEncoder, sm.size) // Write items with higher client ids first