( request: Request, id: number, digest: string, error: mixed, debug: boolean, // DEV-only owner: ?ReactComponentInfo, // DEV-only )
| 4133 | } |
| 4134 | |
| 4135 | function emitErrorChunk( |
| 4136 | request: Request, |
| 4137 | id: number, |
| 4138 | digest: string, |
| 4139 | error: mixed, |
| 4140 | debug: boolean, // DEV-only |
| 4141 | owner: ?ReactComponentInfo, // DEV-only |
| 4142 | ): void { |
| 4143 | let errorInfo: ReactErrorInfo; |
| 4144 | if (__DEV__) { |
| 4145 | let name: string = 'Error'; |
| 4146 | let message: string; |
| 4147 | let stack: ReactStackTrace; |
| 4148 | let env = (0, request.environmentName)(); |
| 4149 | try { |
| 4150 | if (error instanceof Error) { |
| 4151 | name = error.name; |
| 4152 | // eslint-disable-next-line react-internal/safe-string-coercion |
| 4153 | message = String(error.message); |
| 4154 | stack = filterStackTrace(request, parseStackTrace(error, 0)); |
| 4155 | const errorEnv = (error: any).environmentName; |
| 4156 | if (typeof errorEnv === 'string') { |
| 4157 | // This probably came from another FlightClient as a pass through. |
| 4158 | // Keep the environment name. |
| 4159 | env = errorEnv; |
| 4160 | } |
| 4161 | } else if (typeof error === 'object' && error !== null) { |
| 4162 | message = describeObjectForErrorMessage(error); |
| 4163 | stack = []; |
| 4164 | } else { |
| 4165 | // eslint-disable-next-line react-internal/safe-string-coercion |
| 4166 | message = String(error); |
| 4167 | stack = []; |
| 4168 | } |
| 4169 | } catch (x) { |
| 4170 | message = 'An error occurred but serializing the error message failed.'; |
| 4171 | stack = []; |
| 4172 | } |
| 4173 | const ownerRef = |
| 4174 | owner == null ? null : outlineComponentInfo(request, owner); |
| 4175 | errorInfo = {digest, name, message, stack, env, owner: ownerRef}; |
| 4176 | } else { |
| 4177 | errorInfo = {digest}; |
| 4178 | } |
| 4179 | const row = serializeRowHeader('E', id) + stringify(errorInfo) + '\n'; |
| 4180 | const processedChunk = stringToChunk(row); |
| 4181 | if (__DEV__ && debug) { |
| 4182 | request.completedDebugChunks.push(processedChunk); |
| 4183 | } else { |
| 4184 | request.completedErrorChunks.push(processedChunk); |
| 4185 | } |
| 4186 | } |
| 4187 | |
| 4188 | function emitImportChunk( |
| 4189 | request: Request, |
no test coverage detected