public function decorate(ResponseBuilder $builder, array $response) : array { $error = $builder->getError(); if ($error) { if ($error instanceof \Exception) { $errorMessage = $error->getMessage(); $response['error_stack'] = $error->getTrace(); } else { if ($error instanceof \TypeError) { $errorMessage = $error->getMessage(); $response['error_stack'] = $error->getTrace(); } else { if (is_string($error)) { $errorMessage = $error; } else { if ($error === null) { $errorMessage = 'No error message available'; } else { $errorMessage = (string) $error; } } } } return $response + ['error' => $errorMessage]; } else { return $response; } }