Merge pull request #2830 from gradido/eslint-plugin-promise

refactor(backend): eslint plugin promise + fixes
This commit is contained in:
Ulf Gebhardt 2023-05-02 12:58:06 +02:00 committed by GitHub
commit c6c7abf086
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 31 deletions

View File

@ -5,7 +5,7 @@ module.exports = {
node: true, node: true,
}, },
parser: '@typescript-eslint/parser', parser: '@typescript-eslint/parser',
plugins: ['prettier', '@typescript-eslint', 'type-graphql', 'jest', 'import', 'n'], plugins: ['prettier', '@typescript-eslint', 'type-graphql', 'jest', 'import', 'n', 'promise'],
extends: [ extends: [
'standard', 'standard',
'eslint:recommended', 'eslint:recommended',
@ -142,6 +142,21 @@ module.exports = {
'n/prefer-global/url-search-params': 'error', 'n/prefer-global/url-search-params': 'error',
'n/prefer-promises/dns': 'error', 'n/prefer-promises/dns': 'error',
'n/prefer-promises/fs': 'error', 'n/prefer-promises/fs': 'error',
// promise
'promise/catch-or-return': 'error',
'promise/no-return-wrap': 'error',
'promise/param-names': 'error',
'promise/always-return': 'error',
'promise/no-native': 'off',
'promise/no-nesting': 'warn',
'promise/no-promise-in-callback': 'warn',
'promise/no-callback-in-promise': 'warn',
'promise/avoid-new': 'warn',
'promise/no-new-statics': 'error',
'promise/no-return-in-finally': 'warn',
'promise/valid-params': 'warn',
'promise/prefer-await-to-callbacks': 'error',
'promise/no-multiple-resolved': 'error',
}, },
overrides: [ overrides: [
// only for ts files // only for ts files

View File

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-argument */ /* eslint-disable @typescript-eslint/no-unsafe-argument */
@ -9,39 +10,35 @@ import { backendLogger as logger } from '@/server/logger'
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
export const apiPost = async (url: string, payload: unknown): Promise<any> => { export const apiPost = async (url: string, payload: unknown): Promise<any> => {
logger.trace('POST', url, payload) logger.trace('POST', url, payload)
return axios try {
.post(url, payload) const result = await axios.post(url, payload)
.then((result) => { logger.trace('POST-Response', result)
logger.trace('POST-Response', result) if (result.status !== 200) {
if (result.status !== 200) { throw new LogError('HTTP Status Error', result.status)
throw new LogError('HTTP Status Error', result.status) }
} if (result.data.state !== 'success') {
if (result.data.state !== 'success') { throw new LogError(result.data.msg)
throw new Error(result.data.msg) }
} return { success: true, data: result.data }
return { success: true, data: result.data } } catch (error: any) {
}) return { success: false, data: error.message }
.catch((error) => { }
return { success: false, data: error.message }
})
} }
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
export const apiGet = async (url: string): Promise<any> => { export const apiGet = async (url: string): Promise<any> => {
logger.trace('GET: url=' + url) logger.trace('GET: url=' + url)
return axios try {
.get(url) const result = await axios.get(url)
.then((result) => { logger.trace('GET-Response', result)
logger.trace('GET-Response', result) if (result.status !== 200) {
if (result.status !== 200) { throw new LogError('HTTP Status Error', result.status)
throw new LogError('HTTP Status Error', result.status) }
} if (!['success', 'warning'].includes(result.data.state)) {
if (!['success', 'warning'].includes(result.data.state)) { throw new LogError(result.data.msg)
throw new Error(result.data.msg) }
} return { success: true, data: result.data }
return { success: true, data: result.data } } catch (error: any) {
}) return { success: false, data: error.message }
.catch((error) => { }
return { success: false, data: error.message }
})
} }