From 06227c787db0160b72af768557101cc40dc0b17d Mon Sep 17 00:00:00 2001 From: shrpne Date: Mon, 30 Jan 2023 16:34:52 +0300 Subject: [PATCH] types: minor fix --- .eslintrc.cjs | 2 ++ assets/axios-debounce.d.ts | 2 +- assets/axios-to-camel.js | 2 +- assets/server-error.js | 21 +++++++++++---------- composables/use-portfolio-wallet.js | 9 +++++---- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 434c6eda..a1fde0b7 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -161,6 +161,8 @@ module.exports = { 'jsdoc/require-returns-description': 0, 'jsdoc/require-property-description': 0, 'jsdoc/newline-after-description': 0, + // e.g. export default from .vue + 'jsdoc/require-jsdoc': 0, // poor syntax validator 'jsdoc/valid-types': 0, // @TODO allow both return and returns diff --git a/assets/axios-debounce.d.ts b/assets/axios-debounce.d.ts index d2b08a55..bf8691e4 100644 --- a/assets/axios-debounce.d.ts +++ b/assets/axios-debounce.d.ts @@ -3,7 +3,7 @@ declare module 'axios' { interface AxiosRequestConfig { idDebounce?: string|number; - debounceOptions: AxiosDebounceAdapterOptions; + debounceOptions?: AxiosDebounceAdapterOptions; } } /** diff --git a/assets/axios-to-camel.js b/assets/axios-to-camel.js index f83d6ec8..894354e0 100644 --- a/assets/axios-to-camel.js +++ b/assets/axios-to-camel.js @@ -6,7 +6,7 @@ export function toCamel(obj) { /** * - * @param {AxiosInstance} instance + * @param {import('axios').AxiosInstance} instance */ export default function addToCamelInterceptor(instance) { instance.interceptors.response.use(function(response) { diff --git a/assets/server-error.js b/assets/server-error.js index 6227be51..6f25ddf4 100644 --- a/assets/server-error.js +++ b/assets/server-error.js @@ -14,7 +14,7 @@ export const getServerValidator = (fieldName) => withParams({type: 'server'}, fu /** * Преобразование ответа от сервера в объект серверных ошибок валидации - * @param {AxiosError} error - axios error + * @param {import('axios').AxiosError} error - axios error * @param {object} sve - server validation errors config * @return {boolean} hasErrors - были найдены ошибки */ @@ -36,13 +36,13 @@ export function fillServerErrors(error, sve) { /** * Получает первую ошибку валидации из ответа сервера - * @param {AxiosError} error - axios error + * @param {import('axios').AxiosError} error - axios error * @param {string} startErrorText - * @returns {String|boolean} + * @returns {string|false} */ export function getValidationError(error, startErrorText = 'Error: ') { let resErrors = error.response && error.response.data && error.response.data.errors; - let errorMessage = false; + let errorMessage; if (resErrors) { Object.keys(resErrors).some((key) => { const message = Array.isArray(resErrors[key]) ? resErrors[key][0] : resErrors[key]; @@ -53,18 +53,18 @@ export function getValidationError(error, startErrorText = 'Error: ') { }); } - return errorMessage; + return errorMessage || false; } /** * Получает ошибку из ответа сервера - * @param {AxiosError|Error} error - axios error + * @param {import('axios').AxiosError|Error} error - axios error * @param {string} startErrorText - * @returns {String} + * @returns {string} */ export function getErrorText(error, startErrorText = 'Error: ') { - if (error.response?.data?.error || error.response?.data?.message) { + if ('response' in error && (error.response.data?.error || error.response.data?.message)) { // server error let errorText = error.response.data.error?.message || error.response.data.message || error.response.data.error; if (errorText?.toLowerCase() === 'not possible to exchange') { @@ -89,12 +89,13 @@ export function getErrorText(error, startErrorText = 'Error: ') { /** * Получает код ошибки из ответа сервера - * @param {AxiosError} error - axios error - * @returns {String} + * @param {import('axios').AxiosError} error - axios error + * @returns {number|string} */ export function getErrorCode(error) { if (error.response && error.response.data && (error.response.data.code || error.response.data.error)) { // server error return (error.response.data.error && error.response.data.error.code) || error.response.data.code; } + return 0; } diff --git a/composables/use-portfolio-wallet.js b/composables/use-portfolio-wallet.js index 8a5f4ef3..930a675d 100644 --- a/composables/use-portfolio-wallet.js +++ b/composables/use-portfolio-wallet.js @@ -5,9 +5,9 @@ import {isValidMnemonic, walletFromMnemonic} from 'minterjs-wallet'; */ /** - * @type {Object.} + * @type {Object. & {mnemonic: string}} */ -let wallets = {}; +let wallets = {mnemonic: ''}; export default function usePortfolioWallet(mnemonic) { if (!mnemonic || !isValidMnemonic(mnemonic)) { @@ -15,9 +15,10 @@ export default function usePortfolioWallet(mnemonic) { } // clear wallet list for new mnemonic if (wallets.mnemonic !== mnemonic) { - wallets = {}; + wallets = { + mnemonic, + }; } - wallets.mnemonic = mnemonic; /** * @param {number|string} portfolioId