@ridi/parser-core
Advanced tools
Comparing version 0.6.0-alpha.4 to 0.6.0-alpha.7
@@ -11,4 +11,2 @@ 'use strict'; | ||
var _typecheck = require('./typecheck'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -27,6 +25,3 @@ | ||
} else { | ||
chunk = Buffer.concat([tmpChunk, chunk]); | ||
if ((0, _typecheck.isExists)(cryptoProvider)) { | ||
chunk = cryptoProvider.run(chunk, filePath, purpose); | ||
} | ||
chunk = cryptoProvider.run(Buffer.concat([tmpChunk, chunk]), filePath, purpose); | ||
pushedSize += chunk.length; | ||
@@ -33,0 +28,0 @@ tmpChunk = Buffer.from([]); |
@@ -11,2 +11,6 @@ 'use strict'; | ||
var _createClass2 = require('babel-runtime/helpers/createClass'); | ||
var _createClass3 = _interopRequireDefault(_createClass2); | ||
var _freeze = require('babel-runtime/core-js/object/freeze'); | ||
@@ -29,2 +33,14 @@ | ||
var CryptoProvider = function () { | ||
(0, _createClass3.default)(CryptoProvider, [{ | ||
key: 'bufferSize', | ||
/** | ||
* Size of data to process at once (`undefined` means no limit) | ||
* @returns {?number} | ||
*/ | ||
get: function get() { | ||
return undefined; | ||
} | ||
}]); | ||
function CryptoProvider() { | ||
@@ -31,0 +47,0 @@ (0, _classCallCheck3.default)(this, CryptoProvider); |
@@ -6,3 +6,3 @@ 'use strict'; | ||
}); | ||
exports.Version = exports.openZip = exports.validateOptions = exports.isUrl = exports.isString = exports.isObject = exports.isFunc = exports.isExists = exports.isBool = exports.isArray = exports.getType = exports.stringContains = exports.MatchOption = exports.readEntries = exports.getPathes = exports.safePathJoin = exports.safePath = exports.safeDirname = exports.Parser = exports.parseBool = exports.mergeObjects = exports.LogLevel = exports.Logger = exports.mustOverride = exports.createError = exports.Errors = exports.CryptoProvider = exports.AesCryptor = exports.writeCacheFile = exports.readCacheFile = exports.removeAllCacheFiles = exports.removeCacheFile = exports.getCachePath = undefined; | ||
exports.Version = exports.openZip = exports.validateOptions = exports.isUrl = exports.isString = exports.isObject = exports.isFunc = exports.isExists = exports.isBool = exports.isArray = exports.getType = exports.stringContains = exports.MatchOption = exports.conditionally = exports.readEntries = exports.getPathes = exports.safePathJoin = exports.safePath = exports.safeDirname = exports.Parser = exports.parseBool = exports.mergeObjects = exports.LogLevel = exports.Logger = exports.mustOverride = exports.createError = exports.Errors = exports.CryptoProvider = exports.AesCryptor = exports.writeCacheFile = exports.readCacheFile = exports.removeAllCacheFiles = exports.removeCacheFile = exports.getCachePath = undefined; | ||
@@ -49,2 +49,4 @@ var _cacheFile = require('./cacheFile'); | ||
var _streamUtil = require('./streamUtil'); | ||
var _stringContains = require('./stringContains'); | ||
@@ -84,2 +86,3 @@ | ||
exports.readEntries = _readEntries2.default; | ||
exports.conditionally = _streamUtil.conditionally; | ||
exports.MatchOption = _stringContains.MatchOption; | ||
@@ -86,0 +89,0 @@ exports.stringContains = _stringContains.stringContains; |
@@ -27,2 +27,6 @@ 'use strict'; | ||
var _extends2 = require('babel-runtime/helpers/extends'); | ||
var _extends3 = _interopRequireDefault(_extends2); | ||
var _fsExtra = require('fs-extra'); | ||
@@ -42,5 +46,5 @@ | ||
var _createRangeStream = require('./createRangeStream'); | ||
var _createSliceStream = require('./createSliceStream'); | ||
var _createRangeStream2 = _interopRequireDefault(_createRangeStream); | ||
var _createSliceStream2 = _interopRequireDefault(_createSliceStream); | ||
@@ -57,2 +61,4 @@ var _CryptoProvider = require('./CryptoProvider'); | ||
var _streamUtil = require('./streamUtil'); | ||
var _typecheck = require('./typecheck'); | ||
@@ -66,2 +72,11 @@ | ||
function getReadStreamOptions(cryptoProvider) { | ||
var options = {}; | ||
if ((0, _typecheck.isExists)(cryptoProvider) && (0, _typecheck.isExists)(cryptoProvider.bufferSize)) { | ||
options = (0, _extends3.default)({}, options, { highWaterMark: cryptoProvider.bufferSize }); | ||
} | ||
return options; | ||
} /* eslint-disable max-len */ | ||
function create(source, entries) { | ||
@@ -145,6 +160,6 @@ return { | ||
if (_fsExtra2.default.existsSync(fullPath)) { | ||
var stream = _fsExtra2.default.createReadStream(fullPath, { encoding: 'binary' }); | ||
var stream = _fsExtra2.default.createReadStream(fullPath, getReadStreamOptions(cryptoProvider)); | ||
var totalSize = Math.min(end || Infinity, size); | ||
var data = Buffer.from([]); | ||
stream.pipe((0, _createRangeStream2.default)(0, end)).pipe((0, _createCryptoStream2.default)(fullPath, totalSize, cryptoProvider, _CryptoProvider2.default.Purpose.READ_IN_DIR)).on('data', function (chunk) { | ||
stream.pipe((0, _streamUtil.conditionally)((0, _typecheck.isExists)(end), (0, _createSliceStream2.default)(0, end))).pipe((0, _streamUtil.conditionally)((0, _typecheck.isExists)(cryptoProvider), (0, _createCryptoStream2.default)(fullPath, totalSize, cryptoProvider, _CryptoProvider2.default.Purpose.READ_IN_DIR))).on('data', function (chunk) { | ||
data = Buffer.concat([data, chunk]); | ||
@@ -214,6 +229,6 @@ }).on('error', function (e) { | ||
if (_fsExtra2.default.existsSync(filePath)) { | ||
var stream = _fsExtra2.default.createReadStream(filePath, { encoding: 'binary' }); | ||
var stream = _fsExtra2.default.createReadStream(filePath, getReadStreamOptions(cryptoProvider)); | ||
var totalSize = Math.min(end || Infinity, size); | ||
var data = Buffer.from([]); | ||
stream.pipe((0, _createRangeStream2.default)(0, end)).pipe((0, _createCryptoStream2.default)(filePath, totalSize, cryptoProvider, _CryptoProvider2.default.Purpose.READ_IN_DIR)).on('data', function (chunk) { | ||
stream.pipe((0, _streamUtil.conditionally)((0, _typecheck.isExists)(end), (0, _createSliceStream2.default)(0, end))).pipe((0, _streamUtil.conditionally)((0, _typecheck.isExists)(cryptoProvider), (0, _createCryptoStream2.default)(filePath, totalSize, cryptoProvider, _CryptoProvider2.default.Purpose.READ_IN_DIR))).on('data', function (chunk) { | ||
data = Buffer.concat([data, chunk]); | ||
@@ -236,6 +251,5 @@ }).on('error', function (e) { | ||
} | ||
console.log(file); | ||
return _context2.abrupt('return', file); | ||
case 7: | ||
case 6: | ||
case 'end': | ||
@@ -242,0 +256,0 @@ return _context2.stop(); |
@@ -37,6 +37,6 @@ 'use strict'; | ||
var totalSize = Math.min(end || Infinity, entry.uncompressedSize); | ||
var bufferSize = _getBufferSize(_this.cryptoProvider); | ||
var data = Buffer.from([]); | ||
var stream = entry.stream(); | ||
stream // is DuplexStream. | ||
.pipe((0, _createRangeStream2.default)(0, end)).pipe((0, _createCryptoStream2.default)(entry.path, totalSize, _this.cryptoProvider, _CryptoProvider2.default.Purpose.READ_IN_ZIP)).on('data', function (chunk) { | ||
entry.stream() // is DuplexStream. | ||
.pipe((0, _streamUtil.conditionally)((0, _typecheck.isExists)(bufferSize), new _streamChopper2.default({ size: bufferSize }))).pipe((0, _streamUtil.conditionally)((0, _typecheck.isExists)(end), (0, _createSliceStream2.default)(0, end))).pipe((0, _streamUtil.conditionally)((0, _typecheck.isExists)(_this.cryptoProvider), (0, _createCryptoStream2.default)(entry.path, totalSize, _this.cryptoProvider, _CryptoProvider2.default.Purpose.READ_IN_ZIP))).on('data', function (chunk) { | ||
data = Buffer.concat([data, chunk]); | ||
@@ -90,2 +90,3 @@ }).on('error', function (e) { | ||
return new _promise2.default(function (resolve, reject) { | ||
var bufferSize = _getBufferSize(_this2.cryptoProvider); | ||
var writeStream = _fsExtra2.default.createWriteStream(output, { encoding: 'binary', flags: flags }); | ||
@@ -98,4 +99,4 @@ var onError = function onError(error) { | ||
writeStream.on('close', resolve); | ||
var stream = entry.stream() // is DuplexStream. | ||
.on('error', onError).on('data', function (chunk) { | ||
// Stream is DuplexStream. | ||
var stream = entry.stream().pipe((0, _streamUtil.conditionally)((0, _typecheck.isExists)(bufferSize), new _streamChopper2.default({ size: bufferSize }))).on('error', onError).on('data', function (chunk) { | ||
/* istanbul ignore if */ | ||
@@ -107,3 +108,3 @@ if ((0, _typecheck.isExists)(_this2.cryptoProvider)) { | ||
writeStream.write(chunk); | ||
}).on('finish', function () { | ||
}).on('end', function () { | ||
setTimeout(function () { | ||
@@ -186,2 +187,6 @@ // Retain a reference to buffer so that it can't be GC'ed too soon. | ||
var _streamChopper = require('stream-chopper'); | ||
var _streamChopper2 = _interopRequireDefault(_streamChopper); | ||
var _unzipper = require('unzipper'); | ||
@@ -195,5 +200,5 @@ | ||
var _createRangeStream = require('./createRangeStream'); | ||
var _createSliceStream = require('./createSliceStream'); | ||
var _createRangeStream2 = _interopRequireDefault(_createRangeStream); | ||
var _createSliceStream2 = _interopRequireDefault(_createSliceStream); | ||
@@ -208,4 +213,7 @@ var _CryptoProvider = require('./CryptoProvider'); | ||
var _streamUtil = require('./streamUtil'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/* eslint-disable max-len */ | ||
function find(entryPath) { | ||
@@ -217,2 +225,9 @@ return this.files.find(function (entry) { | ||
function _getBufferSize(cryptoProvider) { | ||
if ((0, _typecheck.isExists)(cryptoProvider)) { | ||
return cryptoProvider.bufferSize; | ||
} | ||
return undefined; | ||
} | ||
exports.default = function () { | ||
@@ -219,0 +234,0 @@ var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(file, cryptoProvider, logger) { |
{ | ||
"name": "@ridi/parser-core", | ||
"version": "0.6.0-alpha.4", | ||
"version": "0.6.0-alpha.7", | ||
"description": "Utilities for parsers", | ||
@@ -25,2 +25,3 @@ "author": { | ||
"sha1": "^1.1.1", | ||
"stream-chopper": "^3.0.1", | ||
"string-format": "^2.0.0", | ||
@@ -27,0 +28,0 @@ "string-natural-compare": "^2.0.3", |
Sorry, the diff of this file is not supported yet
84134
23
2060
8
+ Addedstream-chopper@^3.0.1
+ Addedreadable-stream@3.6.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedstream-chopper@3.0.1(transitive)
+ Addedstring_decoder@1.3.0(transitive)