MCPcopy Create free account
hub / github.com/GoogleCloudPlatform/functions-framework-nodejs / sendCrashResponse

Function sendCrashResponse

src/logger.ts:31–68  ·  view source on GitHub ↗
({
  err,
  res,
  callback,
  silent = false,
  statusHeader = 'crash',
  statusOverride = 500,
}: {
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  err: Error | any;
  res: express.Response | null;
  callback?: Function;
  silent?: boolean;
  statusHeader?: string;
  statusOverride?: number;
})

Source from the content-addressed store, hash-verified

29 * @param callback - A function to be called synchronously
30 */
31export function sendCrashResponse({
32 err,
33 res,
34 callback,
35 silent = false,
36 statusHeader = 'crash',
37 statusOverride = 500,
38}: {
39 // eslint-disable-next-line @typescript-eslint/no-explicit-any
40 err: Error | any;
41 res: express.Response | null;
42 callback?: Function;
43 silent?: boolean;
44 statusHeader?: string;
45 statusOverride?: number;
46}) {
47 if (!silent) {
48 console.error(err.stack || err);
49 }
50
51 // If user function has already sent response headers, the response with
52 // error message cannot be sent. This check is done inside the callback,
53 // right before sending the response, to make sure that no concurrent
54 // execution sends the response between the check and 'send' call below.
55 if (res && !res.headersSent) {
56 res.set(FUNCTION_STATUS_HEADER_FIELD, statusHeader);
57
58 if (process.env.NODE_ENV !== 'production') {
59 res.status(statusOverride);
60 res.send((err.message || err) + '');
61 } else {
62 res.sendStatus(statusOverride);
63 }
64 }
65 if (callback) {
66 callback();
67 }
68}
69
70export function loggingHandlerAddExecutionContext() {
71 interceptStdoutWrite();

Callers 3

sendResponseFunction · 0.90
registerMethod · 0.90
errorHandlerFunction · 0.90

Calls 4

setMethod · 0.80
statusMethod · 0.80
sendMethod · 0.80
sendStatusMethod · 0.80

Tested by

no test coverage detected