MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / parseApiErrorResponseBody

Function parseApiErrorResponseBody

common/src/util/error.ts:198–255  ·  view source on GitHub ↗
(responseBody: unknown)

Source from the content-addressed store, hash-verified

196 * with the expected shape.
197 */
198export function parseApiErrorResponseBody(responseBody: unknown): {
199 errorCode?: string
200 message?: string
201 countryCode?: string
202 countryBlockReason?: string
203 ipPrivacySignals?: string[]
204} {
205 if (typeof responseBody !== 'string') return {}
206 try {
207 const parsed: unknown = JSON.parse(responseBody)
208 if (!parsed || typeof parsed !== 'object') return {}
209 const result: {
210 errorCode?: string
211 message?: string
212 countryCode?: string
213 countryBlockReason?: string
214 ipPrivacySignals?: string[]
215 } = {}
216 if (
217 'error' in parsed &&
218 typeof (parsed as { error: unknown }).error === 'string'
219 ) {
220 result.errorCode = (parsed as { error: string }).error
221 }
222 if (
223 'message' in parsed &&
224 typeof (parsed as { message: unknown }).message === 'string'
225 ) {
226 result.message = (parsed as { message: string }).message
227 }
228 if (
229 'countryCode' in parsed &&
230 typeof (parsed as { countryCode: unknown }).countryCode === 'string'
231 ) {
232 result.countryCode = (parsed as { countryCode: string }).countryCode
233 }
234 if (
235 'countryBlockReason' in parsed &&
236 typeof (parsed as { countryBlockReason: unknown }).countryBlockReason ===
237 'string'
238 ) {
239 result.countryBlockReason = (
240 parsed as { countryBlockReason: string }
241 ).countryBlockReason
242 }
243 if ('ipPrivacySignals' in parsed) {
244 const signals = (parsed as { ipPrivacySignals: unknown }).ipPrivacySignals
245 if (Array.isArray(signals)) {
246 result.ipPrivacySignals = signals.filter(
247 (signal): signal is string => typeof signal === 'string',
248 )
249 }
250 }
251 return result
252 } catch {
253 return {}
254 }
255}

Callers 1

extractApiErrorDetailsFunction · 0.85

Calls 1

parseMethod · 0.80

Tested by

no test coverage detected