Skip to content

Releases: the-spyke/undercut

v0.6.1

18 Dec 16:56
Compare
Choose a tag to compare

v0.6.1 (2020-12-18)

🚀 New Feature

  • collections: Add Heap collection (98231ed)
  • utils: Add "swapElements" array utility (07ca299)

💅 Polish

  • Move static methods to the top (584401b)
  • Simplify Heap interface, add types (a2e3b2d)

📝 Documentation

  • Add CLI example to packages page (11851a3)
  • Fix broken links (61b3bd0)
  • Fix broken links (e338c07)
  • Improve pull docs (f81366a)
  • Improve pull sources docs (bf14786)
  • Improve push docs (52fd5e2)
  • Improve utils docs (bfd18b0)
  • Mention blog in tutorials (31893ca)
  • Remove excess variable in CLI examples (7a15716)
  • Remove excess word (f60ae74)
  • Remove question about logo from faq (c005a28)
  • Rewrite all package descriptions and readmes (c38ff1a)
  • Update core functions docs (4e06f8e)
  • Update package descriptions (11ef1b1)
  • Update text about package format and mention RMS (715b82e)

🏠 Internal

  • ci: Add build matrix for tests step (6a0dd5f)
  • ci: Add version to build artifacts (80185d6)
  • ci: Allow online for Yarn only if there is no cache (ef289c1)
  • ci: Bump cache version (d336858)
  • ci: Extract changelog tests into a separate job (1e2976e)
  • ci: Fix build and remove build matrix (c8290bc)
  • ci: Fix env variable for cache (ef642e0)
  • ci: Fix mising env variable interpolation (76fb528)
  • ci: Fix release package name (be28c4c)
  • ci: Fix release version generation (bff11f9)
  • ci: Label all node executors (1a124a5)
  • ci: Remove gh-pages filter (09ac4d8)
  • ci: Remove test step from build command (1f5e156)
  • ci: Remove unused coverage parameter from build job (43cece6)
  • ci: Rename check_all and packages job (0d1d316)
  • ci: Update Codecov orb to 1.1.1 (b8d4315)
  • ci: Use RAM disk for jobs (6d14ad0)
  • ci: Use workspace for storing release version (b588d0e)
  • collections: Fix entry exports test (d35774a)
  • deps: Add json to root deps (4c5caaf)
  • deps: Fix Terser issues with Docusaurus (aa5069c)
  • deps: Replace "babel-eslint" with "@babel/eslint-parser" (f682ddb)
  • deps: Update all deps (49e94aa)
  • deps: Update deps (9c4019d)
  • deps: Update primary dependencies (f9c2640)
  • eslint: Fix JSX parsing for website (c5483b3)
  • website: Add Babel config just in case (9d53d19)
  • website: Reformat sidebar (d0b27c5)
  • website: Remove support page (e15b706)
  • website: Update Docusaurus to 2.0.0-alpha.59 (73573d5)
  • Add RMS Compliant badge (15f07de)
  • Clear dep version specifiers in private packages (e61241c)
  • Remove S from broken change title in changelog (38826b8)
  • Update license date (a94eec0)

v0.6.0

21 Jul 12:13
Compare
Choose a tag to compare

v0.6.0 (2020-07-21)

⚠️ BREAKING CHANGES

  • utils: Add head/headTail/tail Iterable utils, replace peekIterable

🚀 New Feature

  • utils: Add "getObjectType" utility (7674b9a)
  • utils: Add "isPromise" utility (327de60)
  • utils: Add Random utilities (b0c345d)
  • utils: Add head/headTail/tail Iterable utils, replace peekIterable (4d927c0)
  • object propetries filter/map utilities (cf52b30)

💅 Polish

  • utils: simplify some language utilities (c3b9820)

📝 Documentation

  • Document getObjectType and isPromise utilities (3357b0a)
  • Improve docs for createIterable and getIterator utilities (5c03584)
  • Improve language utilities page layout (e17d311)
  • add faq page (54b7528)
  • add object utilities docs (460704c)
  • improve commit type docs (48c28f8)
  • sort commit types, add release to types (2f9fd82)

🏠 Internal

  • ci: Allow overriding script name for tests on CircleCI (dbe55dc)
  • deps: Add "promise-mock" to Utils dev deps (a13fb98)
  • deps: Update @spyke/eslint-config to 1.1.0 (535b569)
  • deps: Update all deps (653c8de)
  • deps: remove jest-unit from workspaces (ceea185)
  • utils: Add tests for createIterable and getIterator (8c02d7b)
  • utils: Remove noop usage from language tests (7efab45)
  • utils: Use "promise-mock" for Promise tests (cd560e8)
  • utils: Use real temp folder for Git tests (98ed164)
  • utils: polish language tests (426c781)
  • utils: simplify language tests (09eb656)
  • website: Remove excess Docusaurus settings for Netlify deployment (c05829b)
  • website: Replace references to GitHub Pages with Netlify (d7853df)
  • website: add a link for object utils (b54dc6e)
  • website: add netify bage (df066b0)
  • website: fix target blank links (22b0a56)
  • website: improve support page links (bc54245)
  • website: update docusaurus (d81cc9c)
  • website: use latest for the link to dev.to (901f868)
  • Add code of conduct document (974b993)
  • Add junit.xml to gitignore (d94c862)
  • Allow to run integration tests independently (8cbc74c)
  • Fix JUnit crash by restoring correct CWD after tests (70e607c)
  • Replace warning sign in changelog template (b08804c)
  • Set YAML indentation to 2 spaces (9ad833d)
  • add conventional commits flag to the release script (961160f)
  • add custom changelog preset (1d4d9ae)
  • remove first release link (9e7a936)
  • remove trailing slash from homepage address (7a8649a)

v0.5.1

30 May 13:04
Compare
Choose a tag to compare

v0.5.1 (2020-05-30)

Updated readme files and package metadata.

v0.5.0

08 Jan 15:26
Compare
Choose a tag to compare

Undercut moved away from a single package to a set of independent scoped packages:

  • @undercut/pull
  • @undercut/push
  • @undercut/utils

There're also 3 new precompiled packages for browsers and Node:

  • @undercut/cli
  • @undercut/node-10
  • @undercut/web-2019

Added

  • Added collect operation. Much like reduce, but for filling items into a mutable collection. No need to return a value from the functor.
  • Added predefined collect variants: collectArray, collectMap, collectObject, and collectSet.
  • Added Coroutine utilities.
  • Added new delay and rethrow utilities.
  • An ability of composeOperations to take a function instead of an array: () => Array<Operation>. This allows dynamic composition and having some shared state in a closure.
  • Precompiled packages for browsers and Node.
  • @undercut/cli package for using in a shell for processing strings with JavaScript.
  • pullValue and pushValue core functions running the pipeline and returning a single item or undefined from it. Basically, it's a pull/push with target implicitly set to toValue().
  • Added Iterable utilities back to the utils package.
  • Additional language utilities: hasOwnProps, isArrayBuffer, isCoroutine, isDate, isError, isMap, isNegative, isNegativeOrZero, isNumberValue, isPlainObject, isPositive, isPositiveOrZero, isRegExp, isSet, isWeakMap, isWeakSet.
  • Added flatMap recursive operation and getRecursiveMapper iterable utility for working with nested data.
  • Added predefined flattenArrays operation for convenience.
  • Added back peekIterable utility.
  • Added buffer and bufferAll operations.
  • Added composeComparators utility.

Changed

  • [BREAKING] Deprecate undercut package in favor of scoped versions @undercut/*.
  • [BREAKING] Renamed makeReiterable into createIterable.
  • [BREAKING] Renamed makeUnclosable into asUnclosable.
  • [BREAKING] Renamed the old delay into wait.
  • [BREAKING] Renamed unwrap into unwrapPromise.
  • [BREAKING] Renamed pullItems and pushItems into pullArray and pushArray.
  • [BREAKING] Unified pull targets so all of them should be called first, like toConsumer did and push targets too.
  • [BREAKING] Changed toValue to not throw on empty sequences or >1 item. It just returns the first item or undefined.
  • [BREAKING] Replaced closeIterator, closeObserver, initializeObserver with generic Coroutine utilities.
  • [BREAKING] Changed flatten to accept predicate and depth instead of just depth to be able to flatten different types of iterables.
  • [BREAKING] Renamed toPushLine pull target into toObserver.
  • [BREAKING] Renamed negate into not and negateSign into negate, they now work with values instead of functions.
  • [BREAKING] Refactored asc and desc functions to return a Comparator instead of an array.

Removed

  • [BREAKING] Removed utilities from pull and push package exports.

Fixed

  • take operations iteraited/observed a one excess item before exiting.

v0.4.0

15 Oct 13:55
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release

This release adds Push Lines and makes API more consistent in general.

Added

  • Push Lines!
  • Array utility filterInPlace.
  • Iterable utility makeReiterable.
  • Language utilities: isIterator, isObjectValue, isObserver.
  • Observer utilities: closeObserver, initializeObserver, makeUnclosable.
  • Promise utilities: delay and unwrap.
  • toPushLine pull target.

Changed

  • [BREAKING] toValue pull target now throws on 0 items (you've expected a value, but got an empty sequence).
  • [BREAKING] Removed Iterable utilities from utils entry.
  • [BREAKING] Renamed back createPullLine into just pullLine.
  • [BREAKING] Renamed isNil utility to isNullish (better consistency with ES naming like "Nullish Coalescing Operator").
  • [BREAKING] Replaced isReverse parameter of the sort operation with order parameter accepting asc/desc functions.
  • [BREAKING] Replaced tryCloseIterator helper with closeIterator.
  • Optimized interleave operation.

Removed

  • [BREAKING] Removed reverseComparator utility.

v0.3.0

15 Jul 11:05
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

Dependencies were updated to resolve GitHub security alerts.

Added

  • toConsumer() pull target. Sends items to a consumer function.
  • toNull() pull target. A /dev/null analogue.

Changed

  • [BREAKING] Relaxed requirements for number arguments in chunk(), flatten(), nth(), skip(), and take(). Now they may take a fractional number. flatten() behavior is also more inline with Array.prototype.flat().

v0.2.0

04 May 09:01
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

Added

  • chunk() pull operation. Splits a sequence into arrays of N items.
  • composeOperations() helper. Allows to compose a new operation from several existing.
  • differenceBy() pull operation. Same as difference(), but with a selector as the first argument.
  • flattenIterables() pull operation. Classic flatten() operates only on arrays. Both now support depth parameter.
  • getIterator() helper.
  • interleave() pull operation. Joins sequences by alternating their values.
  • intersectionBy() pull operation. Same as intersection(), but with a selector as the first argument.
  • join() pull operation. Works the same way as Array.prototype.join().
  • range() pull source. Creates an iterable of numbers in range [start, end) with optional step.
  • remove() pull operation. It's an opposite to the filter() operation.
  • symmetricDifferenceBy() pull operation. Same as symmetricDifference() by accepts a selector as the first argument.
  • tryCloseIterator() helper.
  • unionBy() pull operation. Same as union(), but with a selector as the first argument.
  • uniqueBy() pull operation. Same as unique(), but with a selector as the first argument.

Changed

  • [BREAKING] Renamed pullLine() into createPullLine().

Removed

  • [BREAKING] Removed isArray() lang utility. Use Array.isArray() instead.
  • [BREAKING] Removed peekIterable() helper.

v0.1.1

24 Apr 14:30
Compare
Choose a tag to compare
v0.1.1 Pre-release
Pre-release

This version works fine on Node 12.0.0 without ESM-to-CJS transpilation, just use --experimental-modules flag.

Fixed

  • Fixed module entry points

v0.1.0

22 Apr 15:35
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

Initial release.

Added

  • Pull pipelines through pull() and pullLine().
  • Pull operations: append, average, compact, concatEnd, concatStart, count, difference, every, filter, find, findIndex, first, flatten, forEach, groupBy, includes, intersection, last, map, max, min, nth, orderBy, prepend, reduce, reverse, skip, skipWhile, some, sort, sortNumbers, sortStrings, sum, symmetricDifference, take, takeWhile, union, unique, unzip, unzipWith, zip, zipWith.
  • Pull targets: toArray, toMap, toObject, toSet, toValue.
  • Function utilities: identity, negate, negateSign, noop.
  • Language utilities: isArray, isBoolean, isDefined, isFalsy, isFunction, isIterable, isNil, isNull, isNumber, isObject, isString, isSymbol, isTruthy, isUndefined.