UNPKG

cray

Version:
59 lines (46 loc) 1.4 kB
/** * @author: Akshay Kr Singh. * @date: 20/11/15. * @github: https://github.com/akshayKrSingh */ var Reader = require('../reader/index'); var Editor = require('../editor/index'); var _ = require('lodash'); var util = require('util'); var EventEmitter = require('events').EventEmitter; var parsePath = require('parse-filepath'); var Parser = function(path) { if (!(this instanceof Parser)) { return new Parser(path); } EventEmitter.call(this); var paths = (path) ? _.isArray(path) ? path : [path] : [], epubs = [], queueLength = paths.length, processedCounter = 0; var parser = this; function emitWhenDone() { if (processedCounter >= queueLength) { parser.emit('READY', epubs); } } _.each(paths, function(loc) { var e = Reader({path: loc}), locInfo = parsePath(loc); e.parse(); e.baseName = locInfo.basename; e.absolutePath = locInfo.absolute; e.dirName = locInfo.dirName || 'CWD'; epubs.push(e); epubs[epubs.length - 1].on('error', function() { processedCounter++; emitWhenDone(); }); epubs[epubs.length - 1].on('finish', function() { processedCounter++; emitWhenDone(); }); }); this.queue = epubs; this.Reader = Reader; this.Editor = Editor; }; util.inherits(Parser, EventEmitter); module.exports = Parser;