Skip to content
No description or website provided.
JavaScript Shell
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
src
test/src
.gitignore
LICENSE-MIT
README.md
grunt.bat
grunt.js
grunt.sh
package.json

README.md

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.

Something went wrong with that request. Please try again.