Fixed type error and added util typeguard in messages package

This commit is contained in:
Dmitriy Shishkov 2021-09-04 23:34:35 +03:00
parent 6167f15ee6
commit 633220dbce
No known key found for this signature in database
GPG Key ID: 14358F96FCDD8060

View File

@ -67,15 +67,18 @@ export const isRoom = (obj: unknown): obj is Room => {
};
export const isArrayOf = <T extends unknown>(
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 = <T extends Message>(
type: T["type"],
args: T["args"]