react/scripts/error-codes
Andrew Clark 79b8fc6670
Implement getServerSnapshot in userspace shim (#22359)
* Convert useSES shim tests to use React DOM

Idea is that eventually we'll run these tests against an actual build of
React DOM 17 to test backwards compatibility.

* Implement getServerSnapshot in userspace shim

If the DOM is not present, we assume that we are running in a server
environment and return the result of `getServerSnapshot`.

This heuristic doesn't work in React Native, so we'll need to provide
a separate native build (using the `.native` extension). I've left this
for a follow-up.

We can't call `getServerSnapshot` on the client, because in versions of
React before 18, there's no built-in mechanism to detect whether we're
hydrating. To avoid a server mismatch warning, users must account for
this themselves and return the correct value inside `getSnapshot`.

Note that none of this is relevant to the built-in API that is being
added in 18. This only affects the userspace shim that is provided
for backwards compatibility with versions 16 and 17.
2021-09-20 08:32:13 -07:00
..
__tests__ Fix spelling errors and typos (#19138) 2020-06-15 19:59:44 -04:00
codes.json Implement getServerSnapshot in userspace shim (#22359) 2021-09-20 08:32:13 -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.