UNPKG

kibana-riya

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

90 lines (66 loc) 2.56 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var copyFile = _asyncToGenerator(function* (_ref2) { var readStream = _ref2.readStream; var writeStream = _ref2.writeStream; var progress = _ref2.progress; yield new Promise(function (resolve, reject) { // if either stream errors, fail quickly readStream.on('error', reject); writeStream.on('error', reject); // report progress as we transfer readStream.on('data', function (chunk) { progress.progress(chunk.length); }); // write the download to the file system readStream.pipe(writeStream); // when the write is done, we are done writeStream.on('finish', resolve); }); } /* // Responsible for managing local file transfers */ ); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { var callNext = step.bind(null, 'next'); var callThrow = step.bind(null, 'throw'); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(callNext, callThrow); } } callNext(); }); }; } var _progress = require('../progress'); var _progress2 = _interopRequireDefault(_progress); var _fs = require('fs'); function openSourceFile(_ref) { var sourcePath = _ref.sourcePath; try { var fileInfo = (0, _fs.statSync)(sourcePath); var readStream = (0, _fs.createReadStream)(sourcePath); return { readStream: readStream, fileInfo: fileInfo }; } catch (err) { if (err.code === 'ENOENT') { throw new Error('ENOTFOUND'); } throw err; } } exports['default'] = _asyncToGenerator(function* (logger, sourcePath, targetPath) { try { var _openSourceFile = openSourceFile({ sourcePath: sourcePath }); var readStream = _openSourceFile.readStream; var fileInfo = _openSourceFile.fileInfo; var writeStream = (0, _fs.createWriteStream)(targetPath); try { var progress = new _progress2['default'](logger); progress.init(fileInfo.size); yield copyFile({ readStream: readStream, writeStream: writeStream, progress: progress }); progress.complete(); } catch (err) { readStream.close(); writeStream.close(); throw err; } } catch (err) { logger.error(err); throw err; } }); module.exports = exports['default'];