UNPKG

kontainer-js

Version:

A media file format generator/parser that exposes a React-like API.

103 lines (78 loc) 3.08 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.TransformStream = undefined; var _assign = require('babel-runtime/core-js/object/assign'); var _assign2 = _interopRequireDefault(_assign); 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 _Buffer = require('./Buffer'); var _Buffer2 = _interopRequireDefault(_Buffer); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var TransformStream = exports.TransformStream = void 0; if (global && global.Buffer) { var Transform = require('stream').Transform; var NodeTransform = function (_Transform) { (0, _inherits3.default)(NodeTransform, _Transform); function NodeTransform(parser) { var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; (0, _classCallCheck3.default)(this, NodeTransform); var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(NodeTransform).call(this, options)); _this.buffer = null; _this.offset = 0; _this.parser = parser; _this.options = options; return _this; } (0, _createClass3.default)(NodeTransform, [{ key: '_transform', value: function _transform(chunk, encoding, done) { var _this2 = this; if (chunk instanceof global.Buffer) { if (this.buffer) { this.offset = this.buffer.length; this.buffer = global.Buffer.concat([this.buffer, chunk]); } else { this.buffer = chunk; } this.parser(new _Buffer2.default(this.buffer), this.offset, function (event, param) { if (event === 'done') { var b = void 0; if (param && param instanceof _Buffer2.default) { b = param.getData(); } else { b = param; } done(null, b); } else { _this2.emit(event, param); } }); } } }, { key: '_flush', value: function _flush(done) { done(); } }, { key: 'setOptions', value: function setOptions(options) { (0, _assign2.default)(this.options, options); } }]); return NodeTransform; }(Transform); exports.TransformStream = TransformStream = NodeTransform; } else { // TODO (WhatWG's streams) }