diff --git a/lib/utils/conversion-utils.js b/lib/utils/conversion-utils.js --- a/lib/utils/conversion-utils.js +++ b/lib/utils/conversion-utils.js @@ -5,7 +5,7 @@ import type { TInterface, TType } from 'tcomb'; import { convertIDToNewSchema } from './migration-utils.js'; -import { assertWithValidator, tID } from './validation-utils.js'; +import { assertWithValidator, tID, tUserID } from './validation-utils.js'; import { getPendingThreadID, parsePendingThreadID, @@ -57,6 +57,21 @@ return convertObject(outputValidator, data, [tID], conversionFunction); } +function extractUserIDsFromPayload( + outputValidator: TType, + data: T, +): $ReadOnlyArray { + const result = new Set(); + const conversionFunction = (id: string) => { + result.add(id); + return id; + }; + + convertObject(outputValidator, data, [tUserID], conversionFunction); + + return [...result]; +} + function convertObject( validator: TType, input: I, @@ -141,5 +156,6 @@ export { convertClientIDsToServerIDs, convertServerIDsToClientIDs, + extractUserIDsFromPayload, convertObject, };