Skip to content

Shared features

Following is available both on server and client side.

Error handling

When an error occurs and is caught within the module, an instance of NeonError is produced and returned instead of expected data.

ts
type NeonError = {
  name: 'NuxtNeonServerError' | 'NuxtNeonClientError'
  source: string
  code: number
  message: string
  sql?: string
}

Utility functions isNeonError and its inverted counterpart isNeonSuccess can be used to identify such errors.

ts
const isNeonError = (obj: unknown): boolean

const isNeonSuccess = (obj: unknown): boolean

Utility formatNeonError can be used to print out error data in a consistent way.

ts
const formatNeonError = (err: NeonError): string

Example usage:

ts
// veryfing result of SQL wrapper call
if (isNeonSuccess(ret)) {
  // type assetion can be made  
  return ret as Array<T>
} else {
  // return error info as consistent string
  // `${ret.name} in ${ret.source}: ${ret.message} (status: ${ret.code})`
  return formatNeonError(ret)
}