Home

Awesome

cqnc

Simple manager for sequence fx animations or whatever

Installation

Install with component(1):

$ component install cristiandouce/Cqnc

Install with npm(1):

$ npm install cqnc

Usage

var Cqnc = require('cqnc');

Cqnc()
.add(fillEmail, 'something@cool.com')   // arguments are passed to functions on execution
.add(fillPassword, '123shhh')
.add(fx, from, to, delay)
.cancel(onCqncCancel)
.error(onCqncError)
.run(onCqncEnd)
.stop()                                 // when this invoked, onCqncCancel will be called

// where

function fillEmail(text, done) {}      // should call `done` when finished
function fillPassword(text, done) {}    // same here...
function fx(from, to, delay, done) {}   // ... now you know it

// All sequential functions may return a `cancel` function to be invoked
// when `.stop()` is triggered.

function fillInput (text) {
  var input = document.querySelector('input');
  // fill `input` in some fancy way
  // ...
  // and then ...

  return function cancel() {
    // clear input if Cqnc stopped
    input.value = '';
  }
}

// To stop execution by erroring, just `throw` an `Error` whenever you want
// and `onCqncError` will be called with it

cqnc.add(willError);
cqnc.error(getsCalledOnError);
cqnc.run();

function willError (done) {
  throw new Error('helloooo! I am an Error');
}

API

Cqnc

Create a Cqnc instance with .add() and .run() functions

var Cqnc = require('Cqnc');
var cqnc = Cqnc(); // or `new Cqnc()`

Cqnc#add(fx [, arg1, arg2, arg3, ...])

Add fx to sequence of events, to be called with arguments.shift() args

cqnc.add(firstFx);
cqnc.add(fxWithParams, 1, 'abc', ['array', 'too']);

Cqnc#run([end])

Run sequence steps 1 by 1 and provide with a done function to be called next

cqnc.end(function() {
  // sequence of `fx`s concluded
});

Cqnc#stop()

Cancel execution of events

cqnc.stop();

Cqnc#error(onerror)

Register onerror handler

cqnc.error(function onerror (err) {
  err instanceof Error // true
  // log error
});

Cqnc#cancel(oncancel)

Register oncancel handler

cqnc.cancel(function oncancel () {
  // called after fx sequence canceled with `.stop()`
});

License

MIT