From 627912643910e856a4b715e12d893e945dcb425a Mon Sep 17 00:00:00 2001 From: Alina Sireneva Date: Sun, 24 Sep 2023 04:26:28 +0300 Subject: [PATCH] chore: remove some casts from filter --- .../client/src/methods/messages/get-message-group.ts | 3 ++- packages/client/src/types/auth/terms-of-service.ts | 5 ++--- packages/client/src/utils/index.ts | 9 +++++++++ packages/client/tsconfig.json | 3 ++- packages/client/utils.ts | 4 ++++ packages/html-parser/tests/html-parser.spec.ts | 3 ++- packages/markdown-parser/tests/markdown-parser.spec.ts | 3 ++- 7 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 packages/client/src/utils/index.ts create mode 100644 packages/client/utils.ts diff --git a/packages/client/src/methods/messages/get-message-group.ts b/packages/client/src/methods/messages/get-message-group.ts index e2bf41f4..2b066150 100644 --- a/packages/client/src/methods/messages/get-message-group.ts +++ b/packages/client/src/methods/messages/get-message-group.ts @@ -1,4 +1,5 @@ import { MtArgumentError } from '@mtcute/core' +import { isPresent } from '@mtcute/core/utils' import { TelegramClient } from '../../client' import { InputPeerLike, Message } from '../../types' @@ -37,5 +38,5 @@ export async function getMessageGroup( if (!groupedId) throw new MtArgumentError('This message is not grouped') - return messages.filter((it) => it && it.groupedId?.eq(groupedId)) as Message[] + return messages.filter(isPresent).filter((it) => it.groupedId?.eq(groupedId)) } diff --git a/packages/client/src/types/auth/terms-of-service.ts b/packages/client/src/types/auth/terms-of-service.ts index 3355a4a5..72af441e 100644 --- a/packages/client/src/types/auth/terms-of-service.ts +++ b/packages/client/src/types/auth/terms-of-service.ts @@ -1,4 +1,5 @@ import { tl } from '@mtcute/core' +import { isPresent } from '@mtcute/core/utils' import { MessageEntity } from '../messages' import { makeInspectable } from '../utils' @@ -36,9 +37,7 @@ export class TermsOfService { * Terms of Service entities text */ get entities(): ReadonlyArray { - return (this._entities ??= this.tos.entities - .map((it) => MessageEntity._parse(it)) - .filter((it) => it !== null) as MessageEntity[]) + return (this._entities ??= this.tos.entities.map((it) => MessageEntity._parse(it)).filter(isPresent)) } } diff --git a/packages/client/src/utils/index.ts b/packages/client/src/utils/index.ts new file mode 100644 index 00000000..54909ddc --- /dev/null +++ b/packages/client/src/utils/index.ts @@ -0,0 +1,9 @@ +export * from './file-utils' +export * from './inline-utils' +export * from './misc-utils' +export * from './peer-utils' +export * from './rps-meter' +export * from './stream-utils' +export * from './updates-utils' +export * from './voice-utils' +export * from '@mtcute/core/utils' diff --git a/packages/client/tsconfig.json b/packages/client/tsconfig.json index 45a43f64..169a3bd8 100644 --- a/packages/client/tsconfig.json +++ b/packages/client/tsconfig.json @@ -5,6 +5,7 @@ }, "include": [ "./src", - "./tests" + "./tests", + "./utils.ts" ] } diff --git a/packages/client/utils.ts b/packages/client/utils.ts new file mode 100644 index 00000000..d014f0a3 --- /dev/null +++ b/packages/client/utils.ts @@ -0,0 +1,4 @@ +// this file only exists as a hint to IDEs that we can use @mtcute/core/utils instead of @mtcute/core/src/utils. +// it is not present in the built package, just a DX improvement + +export * from './src/utils' diff --git a/packages/html-parser/tests/html-parser.spec.ts b/packages/html-parser/tests/html-parser.spec.ts index b2f67709..50b2ce93 100644 --- a/packages/html-parser/tests/html-parser.spec.ts +++ b/packages/html-parser/tests/html-parser.spec.ts @@ -3,6 +3,7 @@ import Long from 'long' import { describe, it } from 'mocha' import { FormattedString, MessageEntity, tl } from '@mtcute/client' +import { isPresent } from '@mtcute/client/utils' import { html, HtmlMessageEntityParser } from '../src' @@ -21,7 +22,7 @@ const createEntity = ( } const createEntities = (entities: tl.TypeMessageEntity[]): MessageEntity[] => { - return entities.map((it) => MessageEntity._parse(it)).filter((it) => it !== null) as MessageEntity[] + return entities.map((it) => MessageEntity._parse(it)).filter(isPresent) } describe('HtmlMessageEntityParser', () => { diff --git a/packages/markdown-parser/tests/markdown-parser.spec.ts b/packages/markdown-parser/tests/markdown-parser.spec.ts index 47267390..a837ddc4 100644 --- a/packages/markdown-parser/tests/markdown-parser.spec.ts +++ b/packages/markdown-parser/tests/markdown-parser.spec.ts @@ -3,6 +3,7 @@ import Long from 'long' import { describe, it } from 'mocha' import { FormattedString, MessageEntity, tl } from '@mtcute/client' +import { isPresent } from '@mtcute/client/utils' import { MarkdownMessageEntityParser, md } from '../src' @@ -21,7 +22,7 @@ const createEntity = ( } const createEntities = (entities: tl.TypeMessageEntity[]): MessageEntity[] => { - return entities.map((it) => MessageEntity._parse(it)).filter((it) => it !== null) as MessageEntity[] + return entities.map((it) => MessageEntity._parse(it)).filter(isPresent) } describe('MarkdownMessageEntityParser', () => {