UNPKG

wolkd

Version:

Server and user interface to control WS2801 RGB LED strips via SPI

56 lines (51 loc) 1.24 kB
var fs = require('fs'); var path = require('path'); var _ = require('highland'); var dirs = [ 'frames', 'functions' ]; module.exports = function(callback) { var baseDir = __dirname + '/../patterns/'; var readdir = _.wrapCallback(function(dir, callback) { fs.readdir(baseDir + dir, function(err, files) { callback(err, { dir: dir, files: files }); }); }); _(dirs) .map(readdir) .series() .map(function(dirFiles) { return dirFiles.files.map(function(file) { return { dir: dirFiles.dir, file: file }; }); }) .flatten() .filter(function(dirFile) { return path.extname(dirFile.file) === '.js'; }) .map(function(dirFile) { var filename = '../patterns/' + dirFile.dir + '/' + dirFile.file; return { name: dirFile.file.replace('.js', ''), pattern: require(filename) }; }) .filter(function(m) { return m.pattern.getPixel || m.pattern.frames; }) .toArray(function(array) { var patterns = {}; array.forEach(function(p) { patterns[p.name] = p.pattern; patterns[p.name].value = 0; }); callback(patterns); }); };