Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

faressoft/ticks-tracer

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ticks Tracer

npm npm

Takes snapshots for an object across event loop ticks.

Hint

Good for testing flow control packages like flowa, async, q, etc.

Table of Contents

Installation

npm install --save ticks-tracer

Usage

Take snapshot on every check phase of the event loop (using setImmediate internally).

var TicksTracer = require('ticks-tracer');

// A flow control package
var Flowa = require('flowa');

// The object to trace
var context = {};

// A dummy flow
var flow = new Flowa({
  type: 'serial',
  task1: generateDummyTask(1),
  task2: generateDummyTask(2),
  group1: {
    type: 'parallel',
    task3: generateDummyTask(3),
    task4: generateDummyTask(4)
  },
  task5: generateDummyTask(5)
});

// Start tracing
var ticksTracer = new TicksTracer(context);

// Execute the tasks
flow.run(context).then(function(result) {

  // Get the taken snapshots
  console.log(ticksTracer.getSnapshots());
  console.log(ticksTracer.getSnapshotsDiffs());

  // Stop the tracing
  ticksTracer.stop();

});

// Don't worry about this
function generateDummyTask(id) {
  
  return function(context, callback) {
    context['task' + id] = true;
    setImmediate(callback);
  };

}

The output is:

[
  {},
  { task1: true },
  { task1: true, task2: true },
  { task1: true, task2: true, task3: true, task4: true },
  { task1: true, task2: true, task3: true, task4: true, task5: true }
]

API

TicksTracer(tracedObject)

To create a TicksTracer object and start tracing

stop()

Stop tracing

getTicksCount()Number

Get the current tick number

getSnapshotAt(tick)Object

Get a taken snapshot by a tick number

getSnapshots()Array

Get all taken snapshots indexed by ticks numbers

getSnapshotsDiffs()Array

Get a list of snapshots that represent only the diffs

TicksTracer(tracedObject)

To create a TicksTracer object and start tracing.

Param Type Description
tracedObject Object The object to take snapshots of

stop()

Stop tracing.

getTicksCount() ⇒ Number

Get the current tick number.

Returns: Number

getSnapshotAt(tick) ⇒ Object

Get a taken snapshot by a tick number.

Param Type Description
tick Number The tick number

Returns: Object

getSnapshots() ⇒ Array

Get all taken snapshots indexed by ticks numbers.

Returns: Array

getSnapshotsDiffs() ⇒ Array

Get a list of snapshots that represent only the diffs

Returns: Array

License

This project is under the MIT license.

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.