Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавить typeguard на ErrorData из vk-bridge #16

Closed
dewolixgit opened this issue Oct 2, 2023 · 1 comment
Closed

Добавить typeguard на ErrorData из vk-bridge #16

dewolixgit opened this issue Oct 2, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@dewolixgit
Copy link
Contributor

На одном из проектов использовалась такая штучка, позаимствовал из какого-то другого проекта, мне понравилась:

import { ErrorData } from '@vkontakte/vk-bridge';

const VkErrorTypeSet = new Set<ErrorData['error_type']>([
  'client_error',
  'api_error',
  'auth_error',
]);

export const isVkError = (value: any): value is ErrorData => {
  return VkErrorTypeSet.has(value?.error_type);
};

Можно ещё добавить проверку на наличие обязательного поля error_data в тестируемом объекте:
if ('error_data' in value) { ... }

Может быть использована, например, перед проверкой на отказ пользователя, который тоже приходит в виде ошибки и принимает ErrorData:

    try {
      await bridge.send(...);
    } catch (error) {
      if (!isVkError(error)) {
        return;
      }

      if (checkVkUserDenied(error)) {
        return;
      }
    }
@dewolixgit dewolixgit added the enhancement New feature or request label Oct 2, 2023
@dewolixgit dewolixgit mentioned this issue Jan 31, 2024
AliceSitedge added a commit that referenced this issue Feb 6, 2024
- [+] добавлена утилита `isVkError` для проверки произвольного значения на соответствие типу ошибки от API ВК ([issue](#16))
- [*] отрефакторены утилиты `checkVkPlatform` и `setVkViewSettings` – удалены обращения к `window`
- [*] из `WindowType` убраны поля, которые не должны храниться в `window`: параметры запуска и параметры определения платформы
- [*] расширено количество кейсов, которые подпадают под отказ пользователя, в утилите `checkVkUserDenied` ([issue](#17))
- [-] удалена утилита `initializeVkApp`

---------

Co-authored-by: kurakinasv <s.kurakina@ktsstudio.ru>
Co-authored-by: Алиса Селедкина <a.seledkina@mail.ru>
@AliceSitedge
Copy link
Collaborator

Добавлено в версии 3.0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants