UNPKG

composr-cli

Version:
103 lines (81 loc) 2.91 kB
'use strict'; 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;