diff --git a/packages/messages/src/index.ts b/packages/messages/src/index.ts index 0f4027f..7bc7f8e 100644 --- a/packages/messages/src/index.ts +++ b/packages/messages/src/index.ts @@ -67,15 +67,18 @@ export const isRoom = (obj: unknown): obj is Room => { }; export const isArrayOf = ( - obj: T, - itemCheck: (arg: T) => boolean -) => { + obj: unknown, + itemCheck: (arg: unknown) => arg is T +): obj is Room[] => { if (Array.isArray(obj)) { for (const el of obj) if (!itemCheck(el)) return false; return true; } else return false; }; +export const isListMessage = (message: Message): message is ListMessage => + isArrayOf(message.args, isRoom); + export const composeMessage = ( type: T["type"], args: T["args"]