@flystorage/chaos
Version:
A storage adapter decorator with the ability to stage errors.
53 lines (34 loc) • 1.32 kB
Markdown
<img src="https://raw.githubusercontent.com/duna-oss/flystorage/main/flystorage.svg" width="50px" height="50px" />
This package contains an adapter decorator that causes instrumented failures.
Install all the required packages
```bash
npm install --save @flystorage/file-storage @flystorage/chaos
```
```typescript
import {FileStorage} from '@flystorage/file-storage';
import {ChaosStorageAdapterDecorator, TriggeredErrors} from '@flystorage/chaos';
const strategy = new TriggeredErrors();
const adapter = new ChaosStorageAdapterDecorator(
createActualAdapter(),
strategy,
);
const storage = new FileStorage(adapter);
```
> ⚠️ Always use the FileStorage, it is essential for security and a good developer
> experience. Do not use the adapter directly.
```typescript
import {TriggeredErrors} from '@flystorage/chaos';
const strategy = new TriggeredErrors();
// error on all write calls
strategy.on('write', () => new Error());
// error on first 2 stat calls
strategy.on('stat', () => new Error(), {times: 2});
// error after first 2 deleteFile calls
strategy.on('deleteFile', () => new Error(), {after: 2});
// error on 2nd and 3rd call to any method
strategy.on('*', () => new Error(), {after: 1, times: 2});
```