Reputation: 197
I'm checking if the env is development or prod, If development
I'm returning mock data else I'm making an API call to fetch data.
Now I'm getting this ES lint Error,
Expected to return a value at the end of arrow function.
What I'm doing wrong here ? please help
export const getData = (request: any) => {
if (process.env.NODE_ENV !== 'development') {
axios.post(EMAIL_DISPUTE_API, { request })
.then((res) => {
return res.data;
})
.catch((e) => {
console.log(e);
});
} else {
return emailDisputeMockResponse;
}
};
Upvotes: 0
Views: 823
Reputation: 16
in case of your function,if block don't return value but else return emailDisputeMockResponse
, so you need declare return value type for your function and return value in the catch block, just like following code snippet
export const getData = async (request: any): Promise<emailDisputeResponse | null> => {
let result: emailDisputeResponse | null
if (process.env.NODE_ENV !== 'development') {
result = await axios.post(EMAIL_DISPUTE_API, { request })
.then((res) => {
return res.data;
})
.catch((e) => {
console.log(e);
return null;
});
} else {
result = emailDisputeMockResponse;
}
return result
};
Upvotes: 0
Reputation: 679
Requires return statements to either always or never specify values.
Try without else bloc
export const getData = (request: any) => {
if (process.env.NODE_ENV !== 'development') {
axios.post(EMAIL_DISPUTE_API, { request })
.then((res) => {
return res.data;
})
.catch((e) => {
console.log(e);
});
}
return emailDisputeMockResponse;
};
Upvotes: 1