Lightweight user session recorder based on JSON
npm install @alexcambose/recjs

Lightweight user session recorder based on JSON
``html`
In Node.js
`bash`
npm install --save @alexcambose/recjs
`javascript`
import Recjs from 'recjs';
`html`
...
...
`javascript
const recjs = new Recjs({
el: '#someElement',
});
recjs.recorder.record(); // starts recording
setTimeout(() => {
recjs.recorder.stop(); // stops recording after 3 seconds
console.log(recjs.recorder.getData()) // gets recording data
}, 3000);
`
`javascript
const recjs = new Recjs({
el: '#someElement',
});
recjs.recorder.record(); // starts recording
setTimeout(() => {
recjs.recorder.stop(); // stops recording after 3 seconds
recjs.player.play(recjs.recorder.getData(), () => console.log('Finished')); // plays current recording and logs when finishes
}, 3000);
`
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| $0 | Object | | |
| $0.el | string | | Target element that is going to be recorded |
| [$0.events] | array | ['scroll', 'mousemove', 'keypress', 'click', 'contextmenu'] | User events that will be recorded |
| [$0.fps] | integer | 30 | Number of frames per second |
| [$0.document] | object | window.document | Document object to be used. (in case of an iframe) |
Example
`js`
const recjs = new Recjs({
el: '#someElement',
events: ['scroll'],
fps: 60
});
Kind: global class
* Recorder
* .record()
* .isRecording() ⇒ boolean
* .stop()
* .pause()
* .getData(stringify) ⇒ object \| string
Kind: instance method of Recorder
Example
`js`
recjs.recorder.record()
Kind: instance method of Recorder
Returns: boolean - True if it's recording
Example
`js`
recjs.recorder.isRecording()
Kind: instance method of Recorder
Example
`js`
recjs.recorder.stop()
Kind: instance method of Recorder
Example
`js`
recjs.recorder.pause()
Kind: instance method of Recorder
| Param | Type | Default |
| --- | --- | --- |
| stringify | boolean | false |
Example
`js`
recjs.recorder.getData(true)
Kind: global class
* Player
* .play(data, onEnd)
* .pause()
* .stop()
* .setFrameIndex(index)
* .currentFrame() ⇒ object
* .currentFrameIndex() ⇒ number
* .isPlaying() ⇒ boolean
Kind: instance method of Player
| Param | Type | Description |
| --- | --- | --- |
| data | object | Recorded data |
| onEnd | function | Calls when playing finishes |
Example
`js`
recjs.player.play(recjs.recorder.getData(), () => {
console.log('Finished playing')
})
Kind: instance method of Player
Example
`js`
recjs.player.pause()
Kind: instance method of Player
Example
`js`
recjs.player.stop()
Kind: instance method of Player
| Param | Type | Description |
| --- | --- | --- |
| index | number | Frame index |
Example
`js`
recjs.player.setFrameIndex(87)
Kind: instance method of Player
Returns: object - Frame object
Example
`js`
recjs.player.currentFrame()
Kind: instance method of Player
Returns: number - Frame index
Example
`js`
recjs.player.currentFrameIndex()
Kind: instance method of Player
Returns: boolean - Returns true if it is playing
Example
```
recjs.player.isPlaying()