node-aurora
Version:
Provides an interface to the Aurora Dreamband.
135 lines (91 loc) • 4.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _stream = require('stream');
var _stream2 = _interopRequireDefault(_stream);
var _flat = require('flat');
var _flat2 = _interopRequireDefault(_flat);
var _util = require('./util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var AuroraTransformObject = function (_Stream$Transform) {
(0, _inherits3.default)(AuroraTransformObject, _Stream$Transform);
function AuroraTransformObject() {
(0, _classCallCheck3.default)(this, AuroraTransformObject);
var _this = (0, _possibleConstructorReturn3.default)(this, (AuroraTransformObject.__proto__ || (0, _getPrototypeOf2.default)(AuroraTransformObject)).call(this, { objectMode: true, encoding: null }));
_this._leftoverData = '';
_this._transformedObject = {};
return _this;
}
(0, _createClass3.default)(AuroraTransformObject, [{
key: '_transform',
value: function _transform(chunk, encoding, done) {
chunk = chunk.toString();
if (this._leftoverData) {
chunk = this._leftoverData + chunk;
this._leftoverData = '';
}
var lines = chunk.split('\n');
this._leftoverData = lines.pop();
lines = lines.map(function (line) {
return line.trim();
}).filter(String);
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = (0, _getIterator3.default)(lines), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var line = _step.value;
this._processLine(line);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
done();
}
}, {
key: '_flush',
value: function _flush(done) {
this._leftoverData = this._leftoverData.trim();
if (this._leftoverData) {
this._processLine(this._leftoverData);
}
this.push((0, _util.camelCaseObjectKeys)(_flat2.default.unflatten(this._transformedObject)));
done();
}
}, {
key: '_processLine',
value: function _processLine(line) {
var key_value = line.split(':');
if (key_value.length >= 2) {
var key = key_value.shift().trim();
this._transformedObject[key] = (0, _util.parseValueString)(key_value.join(':'));
}
}
}]);
return AuroraTransformObject;
}(_stream2.default.Transform);
exports.default = AuroraTransformObject;