Chaos engineering for React applications. Inject controlled failures into hooks, components, and async operations during development and testing.
| Package | Description |
|---|---|
@react-volatile/core | Core chaos engine (framework-agnostic) |
@react-volatile/react | React hooks, provider, and devtools |
@react-volatile/babel-plugin | Automatic hook transformation |
npm install @react-volatile/reactyarn add @react-volatile/reactpnpm add @react-volatile/reactThe @react-volatile/core package is included as a dependency. For the babel plugin:
npm install -D @react-volatile/babel-pluginimport{VolatileProvider,useVolatileState,ChaosPanel}from'@react-volatile/react';functionApp(){return(<VolatileProviderconfig={{chaos: {defaultProbability: 0.3}}}><Counter/><ChaosPanel/></VolatileProvider>);}functionCounter(){const[count,setCount]=useVolatileState(0,{name: 'count',component: 'Counter',failures: ['delay','error','corrupt'],});return<buttononClick={()=>setCount(c=>c+1)}>{count}</button>;}useVolatileState- wrapsuseStateuseVolatileEffect/useVolatileLayoutEffect- wrapsuseEffect/useLayoutEffectuseVolatileReducer- wrapsuseReduceruseVolatileMemo- wrapsuseMemouseVolatileCallback- wrapsuseCallbackuseVolatileAsync- wraps async functions with loading/error stateuseChaosTrigger- manual chaos control
Automatically transform React hooks to volatile equivalents:
{
"plugins": [["@react-volatile/babel-plugin", { "mode": "all" }]]
}MIT