Skip to content

alexcambose/recjs

Repository files navigation

recjs

JavaScript Style Guide Build Status

Lightweight user session recorder based on JSON

Installation

In browser:

<script src="dist/dist.js"></script>

In Node.js

npm install --save @alexcambose/recjs
import Recjs from 'recjs';

Usage

...
<body>
    <div id="someElement"></div>
</body>
...

Example 1

const recjs = new Recjs();
recjs.recorder.record(); // starts recording

setTimeout(() => {
    recjs.recorder.stop(); // stops recording after 3 seconds
    console.log(recjs.recorder.getData()) // gets recording data
}, 3000);

Example 2

const recjs = new Recjs();
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);

API Reference

Classes

Recjs
Recorder

Recorder class

Player

Player class

Recjs

Kind: global class

new Recjs($0)

Param Type Default Description
$0 Object
[$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

const recjs = new Recjs({
    events: ['scroll'],
    fps: 60
});

Recorder

Recorder class

Kind: global class

recorder.record()

Starts recording

Kind: instance method of Recorder

Param Type Description
[$0.onRecording] function Calls each recorded frame

Example

recjs.recorder.record({
   onRecording: () => console.log('Next frame')
})

recorder.isRecording() ⇒ boolean

Check if it is recording

Kind: instance method of Recorder Returns: boolean - True if it's recording Example

recjs.recorder.isRecording()

recorder.stop()

Stops recording

Kind: instance method of Recorder Example

recjs.recorder.stop()

recorder.pause()

Pauses current recording

Kind: instance method of Recorder Example

recjs.recorder.pause()

recorder.getData(stringify) ⇒ object | string

Returns recorded data

Kind: instance method of Recorder

Param Type Default
stringify boolean false

Example

recjs.recorder.getData(true)

Player

Player class

Kind: global class

player.play(data)

Starts playing a recording

Kind: instance method of Player

Param Type Description
data object Recorded data
[$0.onPlaying] function Calls when playing finishes
[$0.onEnd] function Calls each frame

Example

recjs.player.play(recjs.recorder.getData(), {
   onEnd: () => console.log('Finished playing'),
   onPlaying: () => console.log('Next frame')
})

player.pause()

Pauses playing

Kind: instance method of Player Example

recjs.player.pause()

player.stop()

Stops playing

Kind: instance method of Player Example

recjs.player.stop()

player.setFrameIndex(index)

Set current frame

Kind: instance method of Player

Param Type Description
index number Frame index

Example

recjs.player.setFrameIndex(87)

player.currentFrame() ⇒ object

Get current frame

Kind: instance method of Player Returns: object - Frame object Example

recjs.player.currentFrame()

player.currentFrameIndex() ⇒ number

Get current frame index

Kind: instance method of Player Returns: number - Frame index Example

recjs.player.currentFrameIndex()

player.isPlaying() ⇒ boolean

Is playing

Kind: instance method of Player Returns: boolean - Returns true if it is playing Example

recjs.player.isPlaying()

Releases

No releases published

Packages

No packages published