Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import type { SetupContext } from 'vue-demi';
- import { onErrorCaptured, getCurrentInstance } from 'vue-demi';
- import { useContext } from '@nuxtjs/composition-api';
- /**
- * Регистрация обработки глобальных ошибок, чтобы в development режиме автоматически не сваливаться в ошибку.
- * @description - Но всегда есть возможность нажать кнопку "Выбросить ошибку"
- */
- const preventErrorsInDevelopment = () => {
- const vm = getCurrentInstance();
- const { error: showError } = useContext();
- const { config: envConfig } = useConfig('env');
- onErrorCaptured((err: Error) => {
- if (envConfig.NODE_ENV === 'development') {
- console.error(err);
- vm?.$notify && vm.$notify.$error({
- title: '!!! Произошла фатальная ошибка (всё сломалось, development режим включен), см. консоль !!!',
- text: err.message,
- modules: {
- Buttons: {
- sticker: true,
- },
- Confirm: {
- confirm: true,
- buttons: [
- {
- text: 'Выбросить ошибку',
- click(notification: any) {
- console.error(err);
- showError(err);
- notification.close();
- },
- primary: true,
- },
- ],
- },
- },
- });
- return false;
- }
- });
- };
- // @NOTE: Setup function for whole application
- export const globalSetup = (ctx: SetupContext) => {
- preventErrorsInDevelopment();
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement