8000 GitHub - jchiatt/react-chaos at v1.0.5
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

jchiatt/react-chaos

Repository files navigation

🔥🐒💥 React Chaos

Travis npm package Coveralls

Chaos Engineering for your React applications.

❓ Why

  • Because simple UI errors shouldn't bring down your app.
  • This library can help expose areas of your component tree that don't handle errors very gracefully. Used in conjunction with Error Boundaries, this can be a powerful tool to improve the resiliency of your UI components.

🛑 Pre-Installation Notes

  • This is currently WIP and a proof-of-concept.
  • There is nothing in place to help ensure good performance practices. Use at your own risk.
  • Nested components are not yet supported. Currently, only the immediate children wrapped with withChaos will have the potential for Chaos.
  • Components that return functions / render props are not yet supported.

💻 Installation

npm i --save-dev react-chaos

💥 Usage

First, import the Chaos:

import withChaos from "react-chaos";

Wrap any component with the Chaos:

const ComponentToWrap = () => <p>I may have chaos.</p>;

const ComponentWithChaos = withChaos(ComponentToWrap);

You can optionally set a Chaos level between 1 and 10 (the higher the number, the more Chaos 😈) as well as a custom error message:

const ComponentWithChaos = withChaos(ComponentToWrap);

const ComponentWithChaos = withChaos(
  ComponentToWrap,
  10,
  "This error message will almost certainly be shown since we are at Chaos level 10."
);

Note: The default Chaos level is 5.

🐒 Chaos in Production

By default, React Chaos will not run in production. If you want to override this by passing in true as a 4th parameter like this:

const ComponentWithChaos2 = withChaos(
  ComponentWillHaveChaos2,
  3,
  "a custom error message, level 3",
  true
);

📝 Other Notes

About

Chaos Engineering for your React apps.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  
0