node-aurora
Version:
Provides an interface to the Aurora Dreamband.
93 lines (62 loc) • 3.12 kB
JavaScript
;
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _mkdirp = require('mkdirp');
var _mkdirp2 = _interopRequireDefault(_mkdirp);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _util = require('./util');
var _AuroraTransformBinary = require('./AuroraTransformBinary');
var _AuroraTransformBinary2 = _interopRequireDefault(_AuroraTransformBinary);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = function () {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(srcPath, destDir, type) {
var connector = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'any';
var transform, file, writeStream;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return (0, _util.promisify)(_mkdirp2.default)(destDir);
case 3:
transform = void 0;
file = _path2.default.basename(srcPath);
if (file.slice(-4) == '.dat' && type != undefined) {
file = file.slice(0, -4) + '.csv';
transform = new _AuroraTransformBinary2.default(type);
}
writeStream = _fs2.default.createWriteStream(_path2.default.join(destDir, file));
if (transform) {
transform.pipe(writeStream);
writeStream = transform;
}
_context.next = 10;
return this.readFile(srcPath, writeStream, connector);
case 10:
_context.next = 12;
return this.queueCmd('sd-file-del ' + srcPath);
case 12:
return _context.abrupt('return', _path2.default.join(destDir, file));
case 15:
_context.prev = 15;
_context.t0 = _context['catch'](0);
return _context.abrupt('return', _promise2.default.reject(_context.t0));
case 18:
case 'end':
return _context.stop();
}
}
}, _callee, this, [[0, 15]]);
}));
return function (_x, _x2, _x3) {
return _ref.apply(this, arguments);
};
}();