All notable changes to this project will be documented in this file.

The format is based on EZEZ Changelog and this project adheres to Semantic Versioning.

  • (nothing yet)
  • sortByMultiple method
  • fixed race JSDoc
  • race method
  • retry method
  • sample adds undefined to the result type unless the input is a tuple
  • merge return type was a basic intersection, which is not a correct way to represent merging
  • waitFor will reject but call the callback indefinitely if timeout is set without maxRetries
  • memoize method
  • every regexp now uses u flag, which could positively affect these functions: escapeRegExp, formatDate and isNumericString
  • small docs improvements
  • replaceDeep will not mutate anything by default anymore — previously it was wrongly documented as always mutating, but it was not mutating objects. Mutating behavior can now be enabled and additionally controlled by defining if instances properties are allowed to be mutated.
  • [serialize] to avoid excessive calls to serializer functions - they are now only called with non-plain objects or unknown data types, this breaks some rare use cases
  • serialize custom serializers now allow things like Date (that defines .toJSON) to be supported as the user would expect
  • replaceDeepByFn method for more granular control over replacing values. replaceDeep is a simplified wrapper over the new function
  • trim, trimStart, and trimEnd methods
  • upgraded some jsdocs
  • waitFor method was upgraded:
    • now it supports Promises
    • the check fails only if undefined, null or false is given
    • function signature is changed (object options)
    • maxTries option is added to have a limit of tries unrelated to time
    • no wait before the initial check
  • toggle method
  • sample method
  • samples method
  • shuffle method
  • added waitFor unit tests
  • added missing build files to repo (missing since 2.0.0)
  • round method
  • code is compiled to es2020 due to bigint usage, if you are not using serialize or deserialize you can still transpile this lib yourself
  • serialize method
  • deserialize method
  • replaceDeep method
  • removeCommonProperties method
  • replace method replacing everything with bunch of undefined when empty map is given
  • formatDate method
  • deps update
  • later method
  • compareProps method
  • compareArrays method
  • unique method
  • escapeRegExp method
  • replace method
  • sortProps method
  • safe method
  • upgraded some jsdocs
  • upgraded deps
  • ensureDate method
  • ensurePrefix method
  • ensureSuffix method
  • ensureTimestamp method
  • stripPrefix method
  • stripSuffix method
  • isNumericString method
  • occurrences method
  • isEmpty throws TypeError instead of Error on primitives
  • isPlainObject method
  • changed isEmpty to throw on primitives
  • makeArray is renamed to ensureArray
  • wait.sync is extracted as waitSync
  • removed pack method
  • removed pages method
  • replaced merge.UNSET with mergeUNSET
  • replaced mapValues.REMOVE with mapValuesUNSET
  • added some examples to docs
  • in jsdoc added a warning to get/set and family about using them with TS
  • added missing docs
  • fixed some jsdoc strings (so they contain types for non-ts users)
  • fixed typedoc warnings
  • README update, preparing to rename library
  • exported some typings
  • library template bump
  • pull method
  • throttle with multiple timeouts working more as intended with opts.leading = true
  • first timeout of throttle with multiple timeouts repeated two times
  • throttle with trailing call not respecting multiple timeouts
  • truthy typings
  • missing mostFrequent export
  • mostFrequent method
  • capitalize method
  • throttle reset not resetting array of times
  • throttle method
  • ensureError method
  • new methods not exported
  • scale, truthy, waitFor, cap methods
  • improved types for insertSeparator
  • added/improved jsdoc to mapAsync, match, merge, noop, rethrow
  • seq no longer uses nor exports custom error
  • wait method
  • mapAsync method
  • missing merge export
  • merge method
  • REMOVE special property in mapValues now uses Symbols if available
  • noop and rethrow methods
  • seq with early break mode
  • upgraded typings for last
  • upgraded typings for pick, omit, pack, sortBy
  • upgraded typings for sortBy
  • seq method
  • upgraded typings for pick, omit, get, getMultiple, mapValues, set, setImmutable, sortBy
  • upgraded typings for mapValues
  • fixed invalid name in types package.json field
  • bumped some deps
  • added missing testcase for mapValues
  • match method
  • pack method
  • sortBy method
  • makeArray method
  • add basic TypeScript support
  • replaced mocha with jest
  • replaced jsdoc with typedoc
  • small README update
  • pages export
  • pages method
  • remove method
  • CommonJS code still not working properly
  • REMOVE enum from mapValues attached to the function instead of extra export
  • better native ESM support
  • CommonJS code not working properly
  • native ESM support
  • upgraded deps
  • support for deep imports like: bottom-line-utils/get, use bottom-line-utils/src/get or bottom-line-utils/dist/get for now
  • dev deps audit issues
  • deps audit issue, related to development (eslint), not the code (0.6.2 is not released to npm as a result)
  • deps audit issue, related to docs generating, not the code (0.6.1 is not released to npm as a result)
  • pick and omit methods
  • babel config for dist transpiled code upgraded, to transpile less features
  • coalesce method
  • setImmutable not allowing number as path and allowing other incorrect/unexpected values as paths
  • insertSeparator method
  • added missing export of setImmutable to index
  • missing labels in set tests
  • disabled removing unused labels in tests
  • improved one set test
  • setImmutable method
  • set function
  • @todo for get/set methods, that should test and support correctly Sets, Maps, etc.
  • dev stuff: linter, editorconfig
  • upgraded library template
  • switched code to es modules
  • linted code
  • fixed mapValues calling the method twice
  • README update
  • get function
  • getMultiple function
  • isEmpty function
  • last function
  • mapValues function