Skip to content

Commit f93c55c

Browse files
fix: resolve vscode type errors in API endpoints files (anuraghazra#4555)
Co-authored-by: Alexandr <qwerty541zxc@gmail.com>
1 parent 356c726 commit f93c55c

6 files changed

Lines changed: 105 additions & 10 deletions

File tree

api/gist.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import {
1111
setErrorCacheHeaders,
1212
} from "../src/common/cache.js";
1313
import { guardAccess } from "../src/common/access.js";
14+
import { retrieveSecondaryMessage } from "../src/common/error.js";
1415

16+
// @ts-ignore
1517
export default async (req, res) => {
1618
const {
1719
id,
@@ -89,10 +91,24 @@ export default async (req, res) => {
8991
);
9092
} catch (err) {
9193
setErrorCacheHeaders(res);
94+
if (err instanceof Error) {
95+
return res.send(
96+
renderError({
97+
message: err.message,
98+
secondaryMessage: retrieveSecondaryMessage(err),
99+
renderOptions: {
100+
title_color,
101+
text_color,
102+
bg_color,
103+
border_color,
104+
theme,
105+
},
106+
}),
107+
);
108+
}
92109
return res.send(
93110
renderError({
94-
message: err.message,
95-
secondaryMessage: err.secondaryMessage,
111+
message: "An unknown error occurred",
96112
renderOptions: {
97113
title_color,
98114
text_color,

api/index.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ import {
88
setCacheHeaders,
99
setErrorCacheHeaders,
1010
} from "../src/common/cache.js";
11+
import { retrieveSecondaryMessage } from "../src/common/error.js";
1112
import { parseArray, parseBoolean, renderError } from "../src/common/utils.js";
1213
import { fetchStats } from "../src/fetchers/stats.js";
1314
import { isLocaleAvailable } from "../src/translations.js";
1415

16+
// @ts-ignore
1517
export default async (req, res) => {
1618
const {
1719
username,
@@ -127,10 +129,24 @@ export default async (req, res) => {
127129
);
128130
} catch (err) {
129131
setErrorCacheHeaders(res);
132+
if (err instanceof Error) {
133+
return res.send(
134+
renderError({
135+
message: err.message,
136+
secondaryMessage: retrieveSecondaryMessage(err),
137+
renderOptions: {
138+
title_color,
139+
text_color,
140+
bg_color,
141+
border_color,
142+
theme,
143+
},
144+
}),
145+
);
146+
}
130147
return res.send(
131148
renderError({
132-
message: err.message,
133-
secondaryMessage: err.secondaryMessage,
149+
message: "An unknown error occurred",
134150
renderOptions: {
135151
title_color,
136152
text_color,

api/pin.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ import {
88
setCacheHeaders,
99
setErrorCacheHeaders,
1010
} from "../src/common/cache.js";
11+
import { retrieveSecondaryMessage } from "../src/common/error.js";
1112
import { parseBoolean, renderError } from "../src/common/utils.js";
1213
import { fetchRepo } from "../src/fetchers/repo.js";
1314
import { isLocaleAvailable } from "../src/translations.js";
1415

16+
// @ts-ignore
1517
export default async (req, res) => {
1618
const {
1719
username,
@@ -92,10 +94,24 @@ export default async (req, res) => {
9294
);
9395
} catch (err) {
9496
setErrorCacheHeaders(res);
97+
if (err instanceof Error) {
98+
return res.send(
99+
renderError({
100+
message: err.message,
101+
secondaryMessage: retrieveSecondaryMessage(err),
102+
renderOptions: {
103+
title_color,
104+
text_color,
105+
bg_color,
106+
border_color,
107+
theme,
108+
},
109+
}),
110+
);
111+
}
95112
return res.send(
96113
renderError({
97-
message: err.message,
98-
secondaryMessage: err.secondaryMessage,
114+
message: "An unknown error occurred",
99115
renderOptions: {
100116
title_color,
101117
text_color,

api/top-langs.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ import {
88
setCacheHeaders,
99
setErrorCacheHeaders,
1010
} from "../src/common/cache.js";
11+
import { retrieveSecondaryMessage } from "../src/common/error.js";
1112
import { parseArray, parseBoolean, renderError } from "../src/common/utils.js";
1213
import { fetchTopLanguages } from "../src/fetchers/top-languages.js";
1314
import { isLocaleAvailable } from "../src/translations.js";
1415

16+
// @ts-ignore
1517
export default async (req, res) => {
1618
const {
1719
username,
@@ -150,10 +152,24 @@ export default async (req, res) => {
150152
);
151153
} catch (err) {
152154
setErrorCacheHeaders(res);
155+
if (err instanceof Error) {
156+
return res.send(
157+
renderError({
158+
message: err.message,
159+
secondaryMessage: retrieveSecondaryMessage(err),
160+
renderOptions: {
161+
title_color,
162+
text_color,
163+
bg_color,
164+
border_color,
165+
theme,
166+
},
167+
}),
168+
);
169+
}
153170
return res.send(
154171
renderError({
155-
message: err.message,
156-
secondaryMessage: err.secondaryMessage,
172+
message: "An unknown error occurred",
157173
renderOptions: {
158174
title_color,
159175
text_color,

api/wakatime.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ import {
1111
setErrorCacheHeaders,
1212
} from "../src/common/cache.js";
1313
import { guardAccess } from "../src/common/access.js";
14+
import { retrieveSecondaryMessage } from "../src/common/error.js";
1415

16+
// @ts-ignore
1517
export default async (req, res) => {
1618
const {
1719
username,
@@ -108,10 +110,24 @@ export default async (req, res) => {
108110
);
109111
} catch (err) {
110112
setErrorCacheHeaders(res);
113+
if (err instanceof Error) {
114+
return res.send(
115+
renderError({
116+
message: err.message,
117+
secondaryMessage: retrieveSecondaryMessage(err),
118+
renderOptions: {
119+
title_color,
120+
text_color,
121+
bg_color,
122+
border_color,
123+
theme,
124+
},
125+
}),
126+
);
127+
}
111128
return res.send(
112129
renderError({
113-
message: err.message,
114-
secondaryMessage: err.secondaryMessage,
130+
message: "An unknown error occurred",
115131
renderOptions: {
116132
title_color,
117133
text_color,

src/common/error.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// @ts-check
2+
13
/**
24
* @type {string} A general message to ask user to try again later.
35
*/
@@ -61,9 +63,22 @@ class MissingParamError extends Error {
6163
}
6264
}
6365

66+
/**
67+
* Retrieve secondary message from an error object.
68+
*
69+
* @param {Error} err The error object.
70+
* @returns {string|undefined} The secondary message if available, otherwise undefined.
71+
*/
72+
const retrieveSecondaryMessage = (err) => {
73+
return "secondaryMessage" in err && typeof err.secondaryMessage === "string"
74+
? err.secondaryMessage
75+
: undefined;
76+
};
77+
6478
export {
6579
CustomError,
6680
MissingParamError,
6781
SECONDARY_ERROR_MESSAGES,
6882
TRY_AGAIN_LATER,
83+
retrieveSecondaryMessage,
6984
};

0 commit comments

Comments
 (0)