composr-cli
Version:
CompoSR | Command Line Interface
72 lines (55 loc) • 1.9 kB
JavaScript
;
var _glob = require('glob');
var _glob2 = _interopRequireDefault(_glob);
var _print = require('../print');
var _print2 = _interopRequireDefault(_print);
var _async = require('async2');
var _async2 = _interopRequireDefault(_async);
var _buildPhrase = require('./buildPhrase');
var _buildPhrase2 = _interopRequireDefault(_buildPhrase);
var _gauge = require('gauge');
var _gauge2 = _interopRequireDefault(_gauge);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var gauge = new _gauge2.default();
/**
* Locate model files
*/
var locateModels = function locateModels(config, next) {
// progressBAr
var progress = 0;
(0, _glob2.default)('**/*.model.json', null, function (err, files) {
if (err) return _print2.default.error(err);
var phraseURLs = [];
var increment = 1 / files.length;
_print2.default.ok(files.length + ' Phrases models founds');
// bulk parallel execution
var buildPhrasesExecList = [];
var phrasesCreated = [];
files.forEach(function (filePath) {
progress += increment;
gauge.show('Building Phrases → ' + filePath, progress);
buildPhrasesExecList.push(function (callback) {
(0, _buildPhrase2.default)(config, filePath, gauge, function (err, model) {
if (err) {
return callback(err);
} else {
phrasesCreated.push(model);
return callback(null, model);
}
});
});
});
gauge.hide();
gauge.disable();
_async2.default.parallel(buildPhrasesExecList, function (err, results) {
if (err) _print2.default.error(err);
if (phrasesCreated.length > 0) {
phrasesCreated.forEach(function (result) {
phraseURLs.push(result.url);
});
}
return next(err, phrasesCreated);
});
});
};
module.exports = locateModels;