File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,7 +11,9 @@ import {
1111 setErrorCacheHeaders ,
1212} from "../src/common/cache.js" ;
1313import { guardAccess } from "../src/common/access.js" ;
14+ import { retrieveSecondaryMessage } from "../src/common/error.js" ;
1415
16+ // @ts -ignore
1517export 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,
Original file line number Diff line number Diff 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" ;
1112import { parseArray , parseBoolean , renderError } from "../src/common/utils.js" ;
1213import { fetchStats } from "../src/fetchers/stats.js" ;
1314import { isLocaleAvailable } from "../src/translations.js" ;
1415
16+ // @ts -ignore
1517export 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,
Original file line number Diff line number Diff 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" ;
1112import { parseBoolean , renderError } from "../src/common/utils.js" ;
1213import { fetchRepo } from "../src/fetchers/repo.js" ;
1314import { isLocaleAvailable } from "../src/translations.js" ;
1415
16+ // @ts -ignore
1517export 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,
Original file line number Diff line number Diff 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" ;
1112import { parseArray , parseBoolean , renderError } from "../src/common/utils.js" ;
1213import { fetchTopLanguages } from "../src/fetchers/top-languages.js" ;
1314import { isLocaleAvailable } from "../src/translations.js" ;
1415
16+ // @ts -ignore
1517export 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,
Original file line number Diff line number Diff line change @@ -11,7 +11,9 @@ import {
1111 setErrorCacheHeaders ,
1212} from "../src/common/cache.js" ;
1313import { guardAccess } from "../src/common/access.js" ;
14+ import { retrieveSecondaryMessage } from "../src/common/error.js" ;
1415
16+ // @ts -ignore
1517export 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,
Original file line number Diff line number Diff line change 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+
6478export {
6579 CustomError ,
6680 MissingParamError ,
6781 SECONDARY_ERROR_MESSAGES ,
6882 TRY_AGAIN_LATER ,
83+ retrieveSecondaryMessage ,
6984} ;
You can’t perform that action at this time.
0 commit comments