node package manager

line

Control flow like a boss

line

Line is flow control designed to work with CoffeeScript.

Here's an example:

Line = require('line').Line
 
data2 = null
 
l = new Line
error: (err) -> console.log('Oh no! One of the callbacks had an error:', err)
-> fs.readdir 'my_dir', @wait()
    
(files) ->
# Callback results can be named, or observed
    fs.readFile "my_dir/#{files[0]}", 'utf8', @wait('data1')
    fs.readFile "my_dir/#{files[1]}", 'utf8', @wait (data) -> data2 = data
    fs.stat "my_dir/#{files[2]}", @wait()
 
# By default, the result of the last wait() call will be passed on
(stats) ->
    console.log('Contents of the first file:', @results.data1)
    console.log('Contents of the second file:', data2)
    console.log('Result of fs.stat for the third file:', stats)
    
    # If there is no wait() call, the callback will complete immediately
 
# Blocks can also be added later
l.add -> console.log('All the tasks completed without errors.')