openreplay/tracker/tracker-mobx/README.md
2021-05-03 13:31:55 +02:00

87 lines
1.9 KiB
Markdown

# OpenReplay Tracker MobX plugin
A MobX plugin for OpenReplay Tracker. This plugin allows you to see the MobX events during session replay.
## Installation
```bash
npm i @openreplay/tracker-mobx
```
## Usage
Initialize the `@openreplay/tracker` package as usual and load the plugin into it.
Then put the generated middleware into your Redux chain.
```js
import Tracker from '@openreplay/tracker';
import trackerMobX from '@openreplay/tracker-mobx';
const tracker = new Tracker({
projectKey: YOUR_PROJECT_KEY,
});
tracker.plugin(trackerMobX());
```
This plugin is inspired by [mobx-logger](https://github.com/winterbe/mobx-logger), hence it has similar configurations.
The default configurations are following
```js
trackerMobX({
predicate: () => true,
action: true,
reaction: true,
transaction: true,
compute: true
})
```
You can disable logging for actions and computed properties by providing a static `trackerMobXConfig`. This is useful to protect the private user data and keep your logs clean.
Here's an example of how to disable logging for all actions and computed properties for a given class:
```js
class MyModel {
static trackerMobXConfig: {
enabled: false
};
// ...
}
```
Alternatively you can disable logging for particular class methods:
```js
class MyStore {
static trackerMobXConfig: {
methods: {
myAction: false
}
};
@action myAction() {
// calls to this method won't be logged
}
}
```
You can combine the above examples to whitelist certain actions for being logged:
```js
class MyStore {
static trackerMobXConfig: {
enabled: false,
methods: {
myAction: true
}
};
@action myAction() {
// only calls to this method are being logged
}
// other methods won't be logged ...
}
```
> Please keep in mind that at this point `trackerMobXConfig` is only available for actions (`@action`) and computed properties (`@computed`).