From 1ead46118be6842da4b90b9470707c2946648e24 Mon Sep 17 00:00:00 2001 From: arashsheyda Date: Sun, 16 Apr 2023 15:15:20 +0300 Subject: [PATCH 1/2] fix:(ServerRouteDetails) add method dropdown --- .../client/components/ServerRouteDetails.vue | 36 ++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/packages/devtools/client/components/ServerRouteDetails.vue b/packages/devtools/client/components/ServerRouteDetails.vue index 774e02982..f1982d81e 100644 --- a/packages/devtools/client/components/ServerRouteDetails.vue +++ b/packages/devtools/client/components/ServerRouteDetails.vue @@ -47,7 +47,7 @@ const started = ref(false) const parsedRoute = computed(() => props.route.route?.split(/((?:\*\*)?:[\w_]+)/g)) const paramNames = computed(() => parsedRoute.value?.filter(i => i.startsWith(':') || i.startsWith('**:')) || []) -const method = computed(() => (props.route.method || 'GET').toUpperCase()) +const routeMethod = ref(props.route.method || 'GET') const routeParams = ref({}) const routeBodies = ref([{ key: '', value: '' }]) const routeQueries = ref([{ key: '', value: '' }]) @@ -78,7 +78,7 @@ const finalURL = computed(() => { if (query) query = `?${query}` - return domain.value + (parsedRoute.value?.map((i) => { + return (parsedRoute.value?.map((i) => { if (i.startsWith(':') || i.startsWith('**:')) return routeParams.value[i] || i return i @@ -98,8 +98,8 @@ async function fetchData() { const start = Date.now() try { - response.data = await $fetch(finalURL.value, { - method: method.value.toUpperCase() as any, + response.data = await $fetch(domain.value + finalURL.value, { + method: routeMethod.value.toUpperCase() as any, headers: Object.fromEntries(routeHeaders.value.filter(({ key, value }) => key && value).map(({ key, value }) => [key, value])), query: Object.fromEntries(routeQueries.value.filter(({ key, value }) => key && value).map(({ key, value }) => [key, value])), body: formattedBody.value, @@ -125,8 +125,8 @@ const rawFetchRequestCode = computed(() => { const items: string[] = [] - if (method.value.toUpperCase() !== 'GET') - items.push(`method: '${method.value.toUpperCase()}'`) + if (routeMethod.value.toUpperCase() !== 'GET') + items.push(`method: '${routeMethod.value.toUpperCase()}'`) if (headers) items.push(`headers: {\n${headers}\n}`) @@ -148,16 +148,23 @@ const currentParams = computed(() => { if (activeTab.value === 'headers') return routeHeaders.value }) + +const copy = useCopy() +const methods = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD'] - + +
From 590f2fd1a19ee1a1ba26e4c67141bcc65f9fcbfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Sun, 16 Apr 2023 15:10:49 +0200 Subject: [PATCH 2/2] chore: add status code and improve error --- .../client/components/ServerRouteDetails.vue | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/devtools/client/components/ServerRouteDetails.vue b/packages/devtools/client/components/ServerRouteDetails.vue index f1982d81e..fba515f7b 100644 --- a/packages/devtools/client/components/ServerRouteDetails.vue +++ b/packages/devtools/client/components/ServerRouteDetails.vue @@ -17,6 +17,7 @@ const config = useServerConfig() const response = reactive({ contentType: 'text/plain', data: '' as any, + statusCode: 200, error: undefined as Error | undefined, }) @@ -105,11 +106,11 @@ async function fetchData() { body: formattedBody.value, onResponse({ response: res }) { response.contentType = (res.headers.get('content-type') || '').toString().toLowerCase().trim() + response.statusCode = res.status }, - onResponseError({ error }) { - console.error(error) - response.error = error - response.data = error?.message || error?.toString?.() || 'Unknown error' + onResponseError(res) { + response.error = res.response._data + response.data = res.response._data }, }) } @@ -133,7 +134,7 @@ const rawFetchRequestCode = computed(() => { if (formattedBody.value) items.push(`body: ${JSON.stringify(formattedBody.value, null, 2)}`) - return `await fetch('${finalURL.value}', { + return `await $fetch('${finalURL.value}', { ${items.join(',\n').split('\n').map(line => ` ${line}`).join('\n')} })` }) @@ -279,6 +280,14 @@ const methods = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD'] > Error + + {{ response.statusCode }} + {{ response.contentType }}