react/scripts/error-codes
Andrew Clark d3e0869324
Make root.unmount() synchronous (#22444)
* Move flushSync warning to React DOM

When you call in `flushSync` from an effect, React fires a warning. I've
moved the implementation of this warning out of the reconciler and into
React DOM.

`flushSync` is a renderer API, not an isomorphic API, because it has
behavior that was designed specifically for the constraints of React
DOM. The equivalent API in a different renderer may not be the same.
For example, React Native has a different threading model than the
browser, so it might not make sense to expose a `flushSync` API to the
JavaScript thread.

* Make root.unmount() synchronous

When you unmount a root, the internal state that React stores on the
DOM node is immediately cleared. So, we should also synchronously
delete the React tree. You should be able to create a new root using
the same container.
2021-09-27 14:04:39 -07:00
..
__tests__ Fix spelling errors and typos (#19138) 2020-06-15 19:59:44 -04:00
codes.json Make root.unmount() synchronous (#22444) 2021-09-27 14:04:39 -07:00
extract-errors.js Some remaining instances of master to main (#21982) 2021-07-30 08:56:55 -04:00
invertObject.js Drop the year from Facebook copyright headers and the LICENSE file. (#13593) 2018-09-07 15:11:23 -07:00
README.md Updated scripts and config to replace "master" with "main" branch (#21768) 2021-06-29 14:26:24 -04:00
transform-error-messages.js Pass prod error messages directly to constructor (#17063) 2019-10-11 09:10:40 -07:00
Types.js Update Flow to 0.84 (#17805) 2020-01-09 14:50:44 +00:00

The error code system substitutes React's error messages with error IDs to provide a better debugging support in production. Check out the blog post here.

  • codes.json contains the mapping from IDs to error messages. This file is generated by the Gulp plugin and is used by both the Babel plugin and the error decoder page in our documentation. This file is append-only, which means an existing code in the file will never be changed/removed.
  • extract-errors.js is an node script that traverses our codebase and updates codes.json. You can test it by running yarn extract-errors.
  • transform-error-messages is a Babel pass that rewrites error messages to IDs for a production (minified) build.