composr-cli
Version:
CompoSR | Command Line Interface
103 lines (81 loc) • 2.91 kB
JavaScript
;
var _request = require('request');
var _request2 = _interopRequireDefault(_request);
var _lodash = require('lodash');
var _ = _interopRequireWildcard(_lodash);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _syncFor = require('./utils/syncFor');
var _syncFor2 = _interopRequireDefault(_syncFor);
var _print = require('./print');
var _print2 = _interopRequireDefault(_print);
var _cliProgress = require('cli-progress');
var _cliProgress2 = _interopRequireDefault(_cliProgress);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* pubPhrase method, this method send phrases and
* snippet data to your composr
*/
function pubPhrase(_type, data, callback) {
var modelType = _type === 'phrase' ? 'phrase' : 'snippet';
var uploadUrl = process.env.ENV_ENDPOINT + modelType;
//let _json = (_type === 'phrase') ? JSON.parse(data) : data
data.version = process.env.PROJECT_VERSION;
// call to request
(0, _request2.default)({
url: uploadUrl,
headers: {
'Authorization': 'Bearer ' + process.env.AT
},
method: 'PUT',
json: data
}, function (err, response, body) {
if (err) callback(err, body);
if (response.statusCode === 401) {
console.log(response.statusCode);
} else if (response.statusCode.toString().indexOf('2') === 0) {
//gt.pulse(body.url)
} else {
_print2.default.error(_type + ' not published: ' + body.url + response.statusCode);
}
return callback(null, response);
});
}
function Publisher(_type, items, next) {
var _items = null;
if (_type === 'phrase') {
_items = items.filter(function (i) {
return i.__meta.marked === true;
}).map(function (it) {
delete it.__meta;
return it;
});
} else {
_items = items;
}
// Progress Bar
var bar1 = new _cliProgress2.default.Bar({
format: 'Publishing [{bar}] {percentage}% | ETA: {eta}s | Current: P({value})',
hideCursor: true,
barCompleteChar: '#',
barIncompleteChar: '.',
fps: 5,
clearOnComplete: true
});
bar1.start(_items.length, 0);
(0, _syncFor2.default)(0, _items.length, 'start', function (i, status, call) {
if (status === 'done') {
bar1.stop();
_print2.default.info('All ' + _type + ' are published successfully');
return next(null, true);
} else {
bar1.update(i);
pubPhrase(_type, _items[i], function (err, res) {
if (err) _print2.default.error({ error: err, msg: res });
call('next'); // this acts as increment (i++)
});
}
});
}
module.exports = Publisher;