diff --git a/src/client/index.js b/src/client/index.js index 84e4082..29a2d4e 100755 --- a/src/client/index.js +++ b/src/client/index.js @@ -76,7 +76,7 @@ class Bridge { function generateDispatcher(bridge, method, route, getContext) { return function (body, query, options) { - return new Promise((resolve, reject) => { + return new Promise(async (resolve, reject) => { let requestParams = { parseData: true, ...options, @@ -90,27 +90,29 @@ function generateDispatcher(bridge, method, route, getContext) { requestParams = { ...requestParams, ...getContext() } } - let result = [] + let result = { + response: null, + error: null, + } - bridge.instance(requestParams) + await bridge.instance(requestParams) .then((response) => { - if (response.status > 400) { - throw new Error(response.data.error ?? response.data) - } + result.response = response }) - .catch((response) => { - result[0] = response - }) - .then((response) => { - if (requestParams.parseData) { - result[1] = response.data - } else { - result[1] = response - } - }) - .finally(() => { - return resolve(...result) + .catch((error) => { + console.error(error.response) + result.error = error.response.data.error ?? error.response.data }) + + if (requestParams.parseData) { + if (result.error) { + return reject(result.error) + } + + return resolve(result.response.data) + } + + return resolve(result) }) } }