Highland.js v2.6.0 Release Notes

  • ๐Ÿ›  Bugfix

    • parallel no longer drops elements on the floor in a number of cases. #302, #331. Fixes #234, #328.
    • Calling next before push within a generator stream no longer causes the stream to resume and throw away data when used with pull. #326. Fixes #325.
    • Parallel no longer drops data if paused. #331. Fixes #328.
    • ๐Ÿ“š Various grammar fixes and documentation updates. #341, #354, #381, #397, #407
    • isStream now always returns a boolean. Before, it would return undefined if the argument was an object but not a Highland stream. #343.
    • Streams now unpipe from Readable on destroy. #361.
    • _send now keeps a reference to the correct consumer/observer array. #367. Fixes #366.
    • Streams constructed with pipeline now correctly exert backpressure. #372, #377. Also fixes an possible issue with not consuming errors from promises. #391.
    • It is no longer possible to re-enter the consume callback. #393.

    ๐Ÿ†• New additions

    • ๐Ÿ”€ mergeWithLimit: Like merge, but with an argument to specify the maximum number of parallel stream that can be consumed at once. #375.
    • ๐Ÿ— minified build: There is now a minified version of the browser build under dist/highland.min.js. #392.
    • wrapCallback: The function now takes a second argument (mappingHint) that describes how arguments passed to the callback are handled. It behaves like the mappingHint parameter of the stream constructor. #247. Fixes #246, #334.
    • ๐Ÿ‘ Node 4 and 5: Added support for node 4 and 5. #383.

    ๐Ÿ‘Œ Improvements

    • The runtime of pick per object is now O(n), where n is the number of properties to be picked. It was previously O(mn), where m is the number of pickable properties on the object. #286.
    • Both pick and pickBy can now select non-enumerable keys. #286.
    • parallel now throws descriptive errors if it encounters a value that is not a stream. #318.
    • ๐Ÿ’ป The standalone Highland file is now built using Browserify 12.0.1.
    • โšก๏ธ Updates a number of devDependencies. If you develop on Highland, make sure to update the dependencies. #384, #385, #387, #390, #400, #403, #415.
    • uniq now uses a Set to compute uniqueness whenever available, resulting in a significant performance boost for large streams. The definition of equality is still ===, not the SameValueZero algorithm used by Set. #395
    • parallel now throws if provided an argument that is not a number. #421.

    Other

    • โฌ‡๏ธ Dropped support for Node 0.11.
    • โฌ‡๏ธ Dropped support for iojs.
    • ๐Ÿ—„ Deprecation warnings for API changes upcoming in version 3.0.0 have been added. #417