checklist

A simple checklist for merging asynchronous activity

npm install checklist
2 downloads in the last day
34 downloads in the last week
118 downloads in the last month

checklist

A simple Node.js checklist for synchronising asynchronous tasks by maintaining a list of items to check off before calling back.

Features

  • should callback immediately if there are no items to check off
  • should callback once all the items have been checked off
  • should callback with an error if an item is checked off that we are not waiting for
  • should callback with an error if an item is checked off twice
  • should callback with an error if an item is checked off out of order and ordered has been set to true
  • should not callback again after error
  • should throw an error if checked again after completion
  • should not alter the array passed in on construction
  • should callback with a list of errors for each item that was checked off with an error

Installation

npm install checklist

API

var Checklist = require('checklist');

var testItem = {
  test: 'hello'
};

var checklist = new Checklist([
  'item 1',
  testItem,
  'item 2'
], {
  ordered: true, // Set to true to error if items are checked out of order (defaults to false)
  debug: true    // Set to true to print each item to the console as it is checked off (defaults to false);
}, function(error) {
  if (error) {
    // A problem occurred
  } else {
    // Everything in the list was checked off
  }
});

checklist.check('item 1');
checklist.check(testItem);
checklist.check('item 2');

Roadmap

  • should allow more items to be added after construction
    • This would only be useful if before checking off an existing item it is expanded into a new list which is then added - as such maybe it may make sense to just create a new checklist and chain them

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using ./grunt.sh or .\grunt.bat.

Release History

(Nothing yet)

License

Copyright (c) 2012 Peter Halliday
Licensed under the MIT license.

npm loves you