- f412a55: Do not remove zeroes from tree paths
- 18b0791: Publish under futil name instead of futil-js
- 652d71c: Improve performance of treeToArrayBy and leavesBy
- Update searching to be case insensitive.
- Add tree
findNode
- Add
renamePropertyOn
,popProperty
- Add
updateIfExists
,updateIfExistsOn
,updatePaths
,updatePathsOn
,updateAllPaths
,updateAllPathsOn
- Add
crunchWhitespace
- Export
writeTreeNode
- Add
chunkByValue
- Pass indexes to
arrayToObject
- Add
omitByIndexed
conversion - Add
isSubset
- Add
sizeBy
- Add
matchesBy
,matchesBySome
- Make
intersperse
handle more edge cases (undefined, null, stirngs, objects, etc) - Improve
toSentence
edge cases (mostly from improving intersperse, but also by making strings less surprising)
- Remove async/await in async
promiseProps
method to avoid downstream regeneratorRuntime issues
- Add
flowAsync
andpromiseProps
- Add
flowAsyncDeep
andresolveOnTree
- Pass along all tree iteratee props in
writeTreeNode
(default writeNode for tree maps) and rename interally from writeProperty to writeTreeNode
- Generate readme in CI
- Tweak code docs to better align to formatted readme
- Curried
wrap
, improved behavior with undefined content, and updated internal usage - Handle nulls for
prefixes
- Internal - set prettier to use single quotes again
- Organized and added to lens test file.
- Add
keysToObject
- Change
wrap
and dependents likeparens
to support empty content better (and remove weird "feature" where post would default to pre if falsey). Potentially a breaking change, but that behavior was extremely weird and there were no known usages. - curry
moveIndex
- Add
recurry
- Add
uncurry
- Add
unlessTruthy
- Add argument spreading support to logic functions
- Add additional arrayLens test case
- CI/CD correction
- Doc Site UI Change: corrected presentation of home page
- Doc Site UI Changes:
- Added header to page: home
- Hide logo on header when in page: home as it has one already
- Fixed misc issues
- Explicit build step in CI/CD
- Responsive design implementation for the site to be mobile friendly and responsive on desktop.
- Library issue resolution, two libraries where auto-updating minor versions and no longer compatible in those versions.
- Added ignore for yarn as NPM is being used currently
- Added versioning of package-lock files to resolve dependency issue.
- Tests:
- Replaced all
eql
withdeep.equal
- Replaced all unnecessary
deep.equal
assertions with.equal
- Replaced
to.equal(true)
andto.equal(false)
withto.be.true
andto.be.false
- Replaced all
- Organized and added to regexp tests
- New docs site! The new docs site is packed with awesome features. We've got dark mode, super fast search, embedded runkits, and the ability to search futil, lodash, and ramda based on input/output expectations.
- Add state to deprecated methods so they can be inspected
- Removed basic function tests from the misc.spec file. A separate PR moves them into the function.spec file.
- Organized string tests
- Organized and added to functions tests
- Organized and added to logic tests
- Organized and added lang tests
- Organized and added to conversions tests
- Moves tests from algebra file to collections file to mirror functions file system
- Adds and revised the array tests
- Fixed f and F discrepancy. Changed all f. to F. in all tests for consistency.
- Add
isPromise
utility
- Add
mapTree
,mapTreeLeaves
,leavesBy
- Improve
leaves
performance (by not adding branches at all instead of rejecting them later) - Passes all props to
treeToArrayBy
iteratees - previously onlynode
was passed
- Fixed
import
syntax in docs
- change fixed issue, Logic functions behave unpredictably with
undefined
as predicate - add test cases to logic.spec for when.
- drop IE 10 support
- Fix
isBlank
docs
- Improvements to
unwind
: use_.castArray
to avoid unwinding strings and other array-likes - Add
unwindArray
- Use deep comparison on F.{simple,}diff
- Allow
walkAsync
to handle non-async traversals
- Kill promises in
findIndexedAsync
to fix regeneratorRuntime shenanigans
- Add
walkAsync
- Add
findIndexedAsync
(used internally and not documented, but exported for testing) - Add
mapArgs
- Add
commonKeys
andfirstCommonKey
- Add support for regular expression arguments to
highlight
- Clarify
highlight
description in README - Add description for
postingsForWords
to README
- Change
domLens.hover
to useonMouseEnter
/onMouseLeave
instead ofonMouseOver
/onMouseOut
- Fix typo in README
- Handle
[]
,undefined
, andnull
arguments inchunkBy
- Use
_.hasIn
intargetBinding
to account for objects withtarget
as an inherited property (eg, in synthetic DOM events)
- Add new native lens formats,
arrayLens
andfunctionPairLens
- Make
domLens.value
more flexible by supporting non-native onChange events (allowtargetBinding
to fall back to the provided value ife.target[key]
is not passed in) - Update a bunch of dev dependencies
- Clarify
chunkBy
description in README
- Add partial currying support to
mergeOverAll
- Add
mergeOverAllWith
andmergeOverAllArrays
- Better currying for
logic
methods (ifElse
,when
,whenExists
, etc)
- Add
getWith
,expandObject
, andexpandObjectBy
- Add
compactMap
- Add
mergeOverAll
- change all words regex to report full string as match rather than empty string
- export
anyWordToRegexp
andwordsToRegexp
- Fixed issue where
renameProperty
was not a pure function. Specifically:
- The original object was mutated.
- If the original object din't have the property to be renamed the function was
adding the property with a value of
undefined
. - If code was relying in this incorrect behavior this will be a braking change.
- Add
uniqueString
anduniqueStringWith
- Added new
object
functions:omitNil
omitNull
omitBlank
omitEmpty
- Added new
array
functions:replaceElementBy
replaceElement
- New lens helper for React users:
stateLens
- Fix issue with autoLabelOption not accepting correctly falsy values as valid options
- Added intersperse, differentLast, toSentence and toSentenceWith.
- Add
domLens
functions:domLens.value
domLens.checkboxValues
domLens.hover
domLens.focus
domLens.targetBinding
domLens.binding
- Add
moveIndex
- Add
toggleElement
- Add
toggleElementBy
- Add
setsWith
- Add
includeLens
- Make
insertAtIndex
support arrays and strings
- Add a default export with all methods to support
import F
instead ofimport * as F
- Also publish as
futil
!
- Added
_.iteratee
support tofindApply
- Added
chunkBy
.
- Upgraded several dependencies.
- Fixed a webpack global variable issue.
- Added
stampKey
- Added Runkit examples
- Added VERSION property to the library's API
- Deprecated
mapProps
in favor of lodash _.update
- Added
updateOn
- Added
matchesSome
- Fixed issue with
postings
when a regex lacking theg
flag is passed - improvements to README.md
Fixed webpack.config.js
Upgraded some dependencies.
Fixed the conversion reference for pickBy.
Added pickByIndexed, and improved our conversion file performance by a significant ammount.
Made tree lookup curried.
Remove Standard JS badge in favor of Prettier.
Enable coveralls integration.
- Add
flurry
, a flow + curry preserving the arity of the initial function. See lodash/lodash#3612.
- Add
pullOn
,prefixes
- Add
encoder
,dotEncoder
,slashEncoder
- Add
flattenTree
,treePath
,propTreePath
,treeKeys
,treeValues
- Expose
traverse
onTree
- Updated eslint to version 4.16.0.
- Updating babel-eslint, eslint, chokidar and mocha.
- Add docs link
- [
cascade
,cascadeIn
] added support for an optional defaultValue (last param) and iteratee support instead of just paths
- Add
transformTree
- Add
keyTreeByWith
- Add
allMatches
. It creates regexp and returns all matched results with indexes.
- Added implicit
lensProp
support to all current lens functions (view
,views
,set
,sets
,flip
,on
,off
)
- Add
mergeAllArrays
,invertByArray
,zipObjectDeepWith
, andflags
- Add tree
treeLookup
- Add deep path support to
lensProp
- Add
unsetOn
- Ignore browser testing errors.
- Add karma JSON reporter.
- Only watch files and record videos/screenshots for the local test.
- Fixed flattenObject and diffArray to properly say the paths of
arrays with only one object, by making them use a new function:
dotJoinWith
, which is likedotJoin
but allows you to provide a function to select which elements to filter by.
- Add cross browsers testing support with
karma + webpack + saucelabs
- Use babel-preset-latest instead of babel-preset-env
- Fixed unstable tests for mobile Safari browsers.
- Fixed unstable tests for IE9/10/11.
- Currying the postings and highlighting functions.
- Add
debounceAsync
anddefer
- Add autofixing PRs with Duti
- Added
diff
anddiffArray
, just likesimpleDiff
andsimpleDiffArray
, but they also take in count removed properties.
- Add new utility for objects called
pickOn
, which works aspick
in lodash but it mutates the object
- Add tree functions
traverse
,walk
,reduceTree
,treeToArray
,treeToArrayBy
,leaves
, andtree
- Add
isBlank
,isNotBlank
, andisBlankDeep
- Add
findIndexed
- Added pushOn, like pushIn but it alters the original array.
- Added pushIn since
_.curry
doesn't allow us to doF.push(_, array)
.
- Curried
push
- Faster
matchAnyWord
- Always run duti in CI
- Use latest duti version
- Fix IE 11 erroring when using a deprecated function
- Add missing stack reference to
deprecate
. - Fix internal usage of deprecated functions.
- Lint and readme cleanup.
- 75% faster
matchallwords
.
- Add arrayToObject to array.
- Fix for diff functions to properly ignore things that didn't change.
- Remove old dangerfile.
- Use Circle 2.0 configuration.
- Add Duti to the repo.
- Added
Indexed
conversions(mapIndexed
,eachIndexed
,reduceIndexed
,mapValuesIndexed
) - Add
aspectSync
anddeprecate
- Deprecated the uncap conversions that don't follow the naming convention
- Add
unkeyBy
- Add
simpleDiff
andsimpleDiffArray
- Added
hasIn
,cascadeProp
andcascadePropKey
.
- Added release dates to change log file. Downgrade danger to version 0.17.0.
- Update danger to version 0.19.0
- Update webpack to version 3.0.0
- Update chai to version 4.1.0
- Add
autoLabel
,autoLabelOption
, andautoLabelOptions
. Also rearranged test files a bit.
- Fixed issue where concurrency aspect should throw Error using the string constructor. Also fixed failing unit tests.
- Add support for aspect
always
,name
, and bug fix for processing sample aspect. Also addedtapError
and new high level aspect,command
- Added
trimStrings
, and our new shiny logo on the README thanks to @giulianok
- Add
setOn
(mutable set)
- Add
error
aspect example
aspect
now supports asyncbefore
,after
, andonError
- Add
findApply
,isNotNil
,exists
,unlessExists
,unlessTruth
,getOrReturn
,alias
,cascade
,cascadeIn
,cascadeKey
,isMultiple
,append
,composeApply
,comply
- Add ramda style
ifElse
,where
, andunless
to a newlogic
section
- Update lensOf to use reduce instead of mapValues
- Add
callOrReturn
,each
, andmergeOn
- Made f.map uncapped
- Convert aspect to Promise instead of async/await and rip out babel-polyfill
- Pass original params to onError and after
- Include babel-polyfill in webpack build now that aspects have
async
functions
- Added
unflattenObject
and a deprecation warning aboutmapProp
in favor of lodash_.update
- Added
aspect
and the reusable examples onaspects
(logs
,errors
,status
, andconcurrency
), as well asthrows
- Added
views
- Added
lens
functionsfunctionLens
,objectLens
,fnToObj
,objToFn
,lensProp
,lensOf
,view
,set
,sets
,flip
,on
,off
- Added a
mapProp
.
- Added a noCap conversion for
mapValues
.
- Added
boundMethod
.
- Greenkeeper udpated the babel-loader and danger-js
- Added
cycle
- Circle CI now help us enforce CHANGELOG.md and package.json updates in any PR.
- Fix
testRegex
- Add
matchAllWords
- Added regex and postings based highlighting functions
postings
,postingsForWords
,highlightFromPostings
,highlight
- Added range manipulation funcitons
push
,mergeRanges
,insertAtIndex
makeRegex
curried implementation of the RegExp construction.makeAndTest
makes and tests a RegExp withmakeRegex
andtestRegex
matchAnyWord
takes a string and returns an array of matching words- Move testRegex and new regex related funcs to regex.js
- Add regex.spec.js
map
added to seamlessly map array and plain objects.deepMap
added to seamlessly map recursive arrays and plain objects. Also optionally allows mappings to any recursive algebraic data structure.- Versions 1.8.0-1.8.3 were assimilated by the borg.
compareDeep
is ok with ===, and it's now tested- Eslint, coverage and CI fixes
- Fix npm publish
- Add
defaultsOn
- Add
extendOn
Travis related CI stuff
- Add
pickIn
maybeCall
fixed, rest params added to get thefn
arguments
- Added Array Function
repeated
- Added String Functions
quote
parens
processQuotes
getUniqueWords
- Added
flattenObject
andsingleObjectR
- Split index to multiple files
- Changed filename to
futil-js
to match the current npm package name
- Changed package.json main entry point to reflect the built output
- Added unwind
- Added flowMap
- Initial Release