Home / Function/ resolveErrors() — supabase Function Reference

resolveErrors() — supabase Function Reference

Architecture documentation for the resolveErrors() function in errorResolver.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  755e8915_9c62_434e_3517_2349a2c7b217["resolveErrors()"]
  0483845d_079f_75e1_7fe8_82b5925bc5ff["tryCatchFlat()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| 0483845d_079f_75e1_7fe8_82b5925bc5ff
  50f617d6_81f5_4c21_6f5a_c2f5e6cbefd2["loadErrors()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| 50f617d6_81f5_4c21_6f5a_c2f5e6cbefd2
  633da633_56bc_96a8_6477_207ace68b6c7["mapError()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| 633da633_56bc_96a8_6477_207ace68b6c7
  f0cb3c6d_e823_6f6f_b9a4_ab144fc70aa5["extractMessageFromAnyError()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| f0cb3c6d_e823_6f6f_b9a4_ab144fc70aa5
  3509f517_13dc_8b88_0eb7_279204392f64["decodeBase64()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| 3509f517_13dc_8b88_0eb7_279204392f64
  6c92a39e_3bc9_a415_8ea0_5fa9b1d42ea3["encodeBase64()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| 6c92a39e_3bc9_a415_8ea0_5fa9b1d42ea3
  1ee162b1_d232_4846_ef61_0018a3d5f851["error()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| 1ee162b1_d232_4846_ef61_0018a3d5f851
  98dae242_6132_86d3_9fa0_eb45046dbbb0["isUserError()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| 98dae242_6132_86d3_9fa0_eb45046dbbb0
  69cdaf4e_592b_f232_a6d3_d02e50f30f76["isPrivate()"]
  755e8915_9c62_434e_3517_2349a2c7b217 -->|calls| 69cdaf4e_592b_f232_a6d3_d02e50f30f76
  style 755e8915_9c62_434e_3517_2349a2c7b217 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/docs/resources/error/errorResolver.ts lines 59–118

async function resolveErrors(
  _parent: unknown,
  args: RootQueryTypeErrorsArgs,
  _context: unknown,
  _info: GraphQLResolveInfo
): Promise<ErrorCollection | GraphQLError> {
  return (
    await Result.tryCatchFlat(
      async (...args) => {
        const fetch: CollectionFetch<
          ErrorModel,
          { service?: Service; code?: string },
          ApiError
        >['fetch'] = async (fetchArgs) => {
          const result = await ErrorModel.loadErrors({
            ...fetchArgs,
            additionalArgs: {
              service: args[0].service ?? undefined,
              code: args[0].code ?? undefined,
            },
          })
          return result.mapError(
            (error) =>
              new ApiError(
                `Failed to resolve error codes: ${extractMessageFromAnyError(error)}`,
                error
              )
          )
        }
        return await GraphQLCollectionBuilder.create<
          ErrorModel,
          { service?: Service; code?: string },
          ApiError
        >({
          fetch,
          args: {
            ...args[0],
            // Decode base64 cursors before passing to fetch function
            after: args[0].after ? decodeBase64(args[0].after) : undefined,
            before: args[0].before ? decodeBase64(args[0].before) : undefined,
          },
          getCursor: (item) => encodeBase64(item.id),
        })
      },
      convertUnknownToApiError,
      args
    )
  ).match(
    (data) => data as ErrorCollection,
    (error) => {
      console.error(`Error resolving ${GRAPHQL_FIELD_ERRORS_GLOBAL}:`, error)
      if (error instanceof ApiError && !error.isUserError()) {
        Sentry.captureException(error)
      }
      return error instanceof GraphQLError
        ? error
        : new GraphQLError(error.isPrivate() ? 'Internal Server Error' : error.message)
    }
  )
}

Subdomains

Frequently Asked Questions

What does resolveErrors() do?
resolveErrors() is a function in the supabase codebase.
What does resolveErrors() call?
resolveErrors() calls 9 function(s): decodeBase64, encodeBase64, error, extractMessageFromAnyError, isPrivate, isUserError, loadErrors, mapError, and 1 more.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free