Skip to content

Commit 54cda13

Browse files
committed
fix: add error handling to transfer-list API example
- Wrap fetch calls in try/catch to handle network errors gracefully - Fix typo in searchGuests URL (exmaples → examples) - Add explicit return values for error cases
1 parent 26d1d17 commit 54cda13

File tree

1 file changed

+83
-61
lines changed

1 file changed

+83
-61
lines changed

_examples/transfer-list/api.js

Lines changed: 83 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,46 @@
11
export async function getGuests() {
2-
const res = await fetch(
3-
'https://api-formkit-docs-examples.formkit.workers.dev/guests'
4-
)
5-
if (res.ok) {
6-
const data = await res.json()
7-
if (data.data) {
8-
return data.data.map((result) => {
9-
return {
10-
label: result.name,
11-
value: result.id,
12-
}
13-
})
2+
try {
3+
const res = await fetch(
4+
'https://api-formkit-docs-examples.formkit.workers.dev/guests'
5+
)
6+
if (res.ok) {
7+
const data = await res.json()
8+
if (data.data) {
9+
return data.data.map((result) => {
10+
return {
11+
label: result.name,
12+
value: result.id,
13+
}
14+
})
15+
}
1416
}
17+
} catch (e) {
18+
// Handle network errors gracefully
1519
}
1620
return []
1721
}
1822

1923
export async function paginateGuests({ page, hasNextPage }) {
20-
const res = await fetch(
21-
`https://api-formkit-docs-examples.formkit.workers.dev/guests?page=${page}`
22-
)
23-
if (res.ok) {
24-
const data = await res.json()
25-
if (data.data) {
26-
if (data.current_page < data.total_pages) {
27-
hasNextPage()
28-
}
29-
return data.data.map((result) => {
30-
return {
31-
label: result.name,
32-
value: result.id,
24+
try {
25+
const res = await fetch(
26+
`https://api-formkit-docs-examples.formkit.workers.dev/guests?page=${page}`
27+
)
28+
if (res.ok) {
29+
const data = await res.json()
30+
if (data.data) {
31+
if (data.current_page < data.total_pages) {
32+
hasNextPage()
3333
}
34-
})
34+
return data.data.map((result) => {
35+
return {
36+
label: result.name,
37+
value: result.id,
38+
}
39+
})
40+
}
3541
}
42+
} catch (e) {
43+
// Handle network errors gracefully
3644
}
3745
return []
3846
}
@@ -41,56 +49,70 @@ export async function searchGuests({ search }) {
4149
if (!search) {
4250
return []
4351
}
44-
const res = await fetch(
45-
`https://api-formkit-docs-exmaples.formkit.workers.dev/guests?search=${search}`
46-
)
47-
if (res.ok) {
48-
const data = await res.json()
49-
if (data.data) {
50-
return data.data.map((result) => {
51-
return {
52-
label: result.name,
53-
value: result.id,
54-
}
55-
})
52+
try {
53+
const res = await fetch(
54+
`https://api-formkit-docs-examples.formkit.workers.dev/guests?search=${search}`
55+
)
56+
if (res.ok) {
57+
const data = await res.json()
58+
if (data.data) {
59+
return data.data.map((result) => {
60+
return {
61+
label: result.name,
62+
value: result.id,
63+
}
64+
})
65+
}
5666
}
67+
} catch (e) {
68+
// Handle network errors gracefully
5769
}
5870
return []
5971
}
6072

6173
export async function getGuest(id, cachedOption) {
6274
if (cachedOption) return cachedOption
63-
const res = await fetch(
64-
`https://api-formkit-docs-examples.formkit.workers.dev/guests/${id}`
65-
)
66-
if (res.ok) {
67-
const data = await res.json()
68-
if (data.data) {
69-
return {
70-
label: data.data.name,
71-
value: data.data.id,
75+
try {
76+
const res = await fetch(
77+
`https://api-formkit-docs-examples.formkit.workers.dev/guests/${id}`
78+
)
79+
if (res.ok) {
80+
const data = await res.json()
81+
if (data.data) {
82+
return {
83+
label: data.data.name,
84+
value: data.data.id,
85+
}
7286
}
7387
}
88+
} catch (e) {
89+
// Handle network errors gracefully
7490
}
91+
return null
7592
}
7693

7794
export async function loadGuest(id, cachedOption) {
7895
if (cachedOption && cachedOption.hasLoaded) return cachedOption
79-
const res = await fetch(
80-
`https://api-formkit-docs-examples.formkit.workers.dev/guests/${id}`
81-
)
82-
if (res.ok) {
83-
const data = await res.json()
84-
if (data.data) {
85-
return {
86-
name: data.data.name,
87-
label: data.data.name + ` (age ${data.data.age})`,
88-
value: data.data.id,
89-
age: data.data.age,
90-
phone: data.data.phone,
91-
email: data.data.email,
92-
hasLoaded: true,
96+
try {
97+
const res = await fetch(
98+
`https://api-formkit-docs-examples.formkit.workers.dev/guests/${id}`
99+
)
100+
if (res.ok) {
101+
const data = await res.json()
102+
if (data.data) {
103+
return {
104+
name: data.data.name,
105+
label: data.data.name + ` (age ${data.data.age})`,
106+
value: data.data.id,
107+
age: data.data.age,
108+
phone: data.data.phone,
109+
email: data.data.email,
110+
hasLoaded: true,
111+
}
93112
}
94113
}
114+
} catch (e) {
115+
// Handle network errors gracefully
95116
}
117+
return null
96118
}

0 commit comments

Comments
 (0)