Files
react/packages/react-reconciler/src/ReactCapturedValue.js
T
Dan Abramov e706721490 Update Flow to 0.84 (#17805)
* Update Flow to 0.84

* Fix violations

* Use inexact object syntax in files from fbsource

* Fix warning extraction to use a modern parser

* Codemod inexact objects to new syntax

* Tighten types that can be exact

* Revert unintentional formatting changes from codemod
2020-01-09 14:50:44 +00:00

42 lines
920 B
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/
import type {Fiber} from './ReactFiber';
import {getStackByFiberInDevAndProd} from './ReactCurrentFiber';
export type CapturedValue<T> = {|
value: T,
source: Fiber | null,
stack: string | null,
|};
export type CapturedError = {|
componentName: ?string,
componentStack: string,
error: mixed,
errorBoundary: ?Object,
errorBoundaryFound: boolean,
errorBoundaryName: string | null,
willRetry: boolean,
|};
export function createCapturedValue<T>(
value: T,
source: Fiber,
): CapturedValue<T> {
// If the value is an error, call this function immediately after it is thrown
// so the stack is accurate.
return {
value,
source,
stack: getStackByFiberInDevAndProd(source),
};
}