audiobookshelf/server/libs/archiver/compress-commons/util/index.js

30 lines
786 B
JavaScript

/**
* node-compress-commons
*
* Copyright (c) 2014 Chris Talkington, contributors.
* Licensed under the MIT license.
* https://github.com/archiverjs/node-compress-commons/blob/master/LICENSE-MIT
*/
var Stream = require('stream').Stream;
var PassThrough = require('../../archiverUtils/readableStream').PassThrough;
var util = module.exports = {};
util.isStream = function (source) {
return source instanceof Stream;
};
util.normalizeInputSource = function (source) {
if (source === null) {
return Buffer.alloc(0);
} else if (typeof source === 'string') {
return Buffer.from(source);
} else if (util.isStream(source) && !source._readableState) {
var normalized = new PassThrough();
source.pipe(normalized);
return normalized;
}
return source;
};