- generate
d.ts
forx
- #269 - kalagin - add
d.ts
command before./build
- #269 - kalagin - convert monad/Instance.js to class to fix private name conflict with ts - #269 - kalagin
- Add
d.ts
files for all core functions and _internal - #241 - kalagin - Consolidate chat to this issue: #29
- more docs amendments for v2
- prepare core docs for v2
- add monad to dist
- include commit step in contributing
- improve transform string performance - #260
- eager API for tap - #258
- smaller package size with files in package.json - #259
- Transducer.tryCatch
- Refactor all transducer functionality into Transducer.js from
pipe
,map
,filter
, andflatMap
- Remove GeneratorFunction and AsyncGeneratorFunction functionality in
map
,filter
,flatMap
, andreduce
- Refactor reducer chaining functionality into AggregateReducer.js from
reduce
- Remove Duplex stream handling from
flatMap
- Remove binary handling from
flatMap
- Promises as arguments for all core functions
- Eager API for all core functions
- Automate benchmarks
- Remove the .sync property functions
- Remove the .withIndex property functions
- Deprecate map.own
fork
renamed toall
all
renamed toevery
any
renamed tosome
- new
dist-test
only validates syntax withrequire
- migrate
forEach
into core API. - refactor transducer functionality from
forEach
intoTransducer.forEach
- async performance improvements
_internal/arrayExtend
stops treating strings like arrays sotransform
creates arrays of strings as expected
- property value passed to set may be a resolver - #224
- rubico/x/isIn - counterpart to includes - #228 - lulldev
- rubico/x/maxBy - finds the item that is the max by a property denoted by path - #229
- eager map - #225
- eager filter - #226
- eager reduce - #227
- eager tryCatch - #222
- switchCase handles non-function values - #220
- eager pipe - #219
- new example type-to-search-wiki - #210 - lulldev
- require('rubico/global') imports the core rubico methods globally
- eq, gt, gte, lt, lte should return a boolean when both arguments are values (not functions) - #203 - lulldev
- not behaves like ! when passed a value (not function) - #204
- Mux.race - yield value after adding promise versus yielding before
- isDeepEqual takes functions as arguments, returning a partially applied function
- rubico/x/filterOut - the inverse of filter
- FlatMappingAsyncIterator account for indefinite buffer loading promises
- FlatMappingAsyncIterator don't await if async iterator is done already
- FlatMappingAsyncIterator use Promise.race over promiseAnyRejectOnce
- fix bug where FlatMappingAsyncIterator wasn't fully consuming the input async iterator
- fix bug where map and filter weren't recognizing async iterator and iterator objects
- distribute rest of the functions with .mjs extension as ESM
- distribute rubico.mjs and rubico.min.mjs as ESM
- map supplies key and reference to original value for sets
- filter supplies key and reference to original value for sets
- map supplies index/key and reference to original value for arrays, objects, and maps
- filter supplies index/key and reference to original value for arrays, objects, and maps
- reduce supplies index/key and reference to original value for arrays, objects, and maps
- reduce object performance improvements
- x/append - #190 - FredericHeem
- x/prepend - #190 - FredericHeem
- x/unless - #190 - FredericHeem
- fix syntax error on nullish defaultItem in defaultsDeep - #189 - FredericHeem
- x/when #188 - FredericHeem
- set and pick nested properties #187 - FredericHeem
- defaultsDeep handle undefined #186 - FredericHeem
- fix syntax issue with map filter iterators and async iterators
- stop supporting node 10
- x/callProp
- x/has
- x/includes
- fix omit throwing on nullish
- omit supports nested fields #181
- map.entries
- License (MIT) and Chat (Gitter) readme badges
- fix x/trace altering output
- patch transform - strings and binary correspond 1 character = 1 byte
- patch internal/binaryExtend - construct Buffers as per Node.js warning
- fix: tap.if handles promises in its executor
- and defers to
.and
if method is present - or defers to
.or
if method is present - not defers to
.not
if method is present - eq defers to
.eq
if method is present - gt defers to
.gt
if method is present - lt defers to
.lt
if method is present - gte defers to
.gte
if method is present - lte defers to
.lte
if method is present - eq compares by SameValueZero
- isDeepEqual compares by SameValueZero
- isObject checks for language type Object
- x/groupBy
- x/values
- fix: assign creates a new object on Promise
- new distribution setup
- x/differenceWith
- curry
- __
- thunkify
- always
- project structure reorganization around
_internal/
- new generated documentation format
- x/size rewrite + refresh benchmarks
- x/find works on all foldables
- x/forEach rewrite + benchmarks
- x/defaultsDeep rewrite + refresh benchmarks
- x/flatten rewrite + refresh benchmarks
- x/isDeepEqual rewrite + refresh benchmarks
- x/unionWith rewrite + refresh benchmarks
- better pipe performance
- fix: x/isDeepEqual was throwing for nullish
- map.own - LMulvey
- pipe.sync
- fix: Set and Map mapping
- fix: string mapping
- tap.if
- get rewrite + benchmarks
- pick rewrite + benchmarks
- omit rewrite + benchmarks
- not rewrite + benchmarks
- any rewrite + benchmarks
- all rewrite + benchmarks
- and rewrite + benchmarks
- or rewrite + benchmarks
- eq rewrite + benchmarks
- gt rewrite + benchmarks
- lt rewrite + benchmarks
- gte rewrite + benchmarks
- lte rewrite + benchmarks
- fix: flatMap async muxing
- flatMap rewrite + benchmarks
- improved tryCatch performance
- improved switchCase performance
- transform rewrite + benchmarks
- x/heapUsedInLoop - max and avg heap used in loop
- monad/Cancellable - make a function return cancellable Promises
- deprecated x/tracef
- x/trace(reducer) - lazy trace, good for adding custom formatting
- reduce rewrite + benchmarks
- tap accepts multiple arguments + more benchmarks
- filter.withIndex rewrite + benchmarks
- monad/BrokenPromise - a Promise that never comes back
- isEmpty stops throwing TypeErrors
- filter rewrite + benchmarks
- map.series rewrite + benchmarks
- map.pool rewrite + benchmarks
- map.withIndex rewrite + benchmarks
- fix a failing test; node10 AsyncIterator constructors were Objects
- map rewrite + benchmarks
- fork rewrite + benchmarks
- fork.series rewrite + benchmarks
- assign rewrite + benchmarks
- tap rewrite + benchmarks
- tryCatch rewrite + benchmarks
- switchCase rewrite + benchmarks
- switchCase supports even numbers of functions
- pipe rewrite + benchmarks
- x/uniq - export in x/index
- x/unionWith performance revamp + benchmarks
- x/uniq - Get unique values of a collection - FredericHeem
- monad/PossiblePromise - Possibly a promise
- monad/Instance - Type checking
- monad/Struct - Finite data structure
- monad/Mux - Multiplexing for Sequences of Sequences
- x/size - Get the size of a collection
- x/isFunction - Tell if Function
- x/timeInLoop.async - Like timeInLoop, but await all calls
- x/find performance revamp + benchmarks
- x/defaultsDeep performance revamp + benchmarks
- x/flatten performance revamp + benchmarks
- x/isDeepEqual performance revamp + benchmarks
- x/isEmpty performance revamp + benchmarks
- x/isEqual performance revamp + benchmarks
- x/isObject performance revamp + benchmarks
- x/isString performance revamp + benchmarks
- x/first performance revamp + benchmarks
- x/last performance revamp + benchmarks
- improve PossiblePromise.args stack trace
- fine tune PossiblePromise performance
- fine tune core performance
- x/defaultsDeep - enforce Array or Object inputs
- large rubico core refactor (~75% done) to PossiblePromise
- large rubico core documentation initiative (~75% done)
- rubico/x/index.js for comfier times with rubico/x
- benchmark groundwork (and, or, and switchCase)
- x/timeInLoop - measures time a function takes in a loop
- flatMap includes unflattenable elements instead of throwing
- tap no longer transduces; use map(tap) or x/forEach instead if you want to use tap in a transducer
- x/isEmpty - check if a collection is empty
- x/first - get first item from a collection
- x/last - get last item from a collection
- flatMap; map + flatten
- transform(f, init), reduce(f, init); init can be a function
- x/defaultsDeep - deeply assign defaults
- x/isDeepEqual - left deeply equals right? eager version of eq.deep
- x/find - get the first item in a collection that passes the test
- x/forEach - execute a function for each item of a collection, returning input
- x/is - directly checks the constructor
- x/isEqual - left strictly equals right? eager version of eq
- x/isObject - is object?
- x/isString - is string?
- x/pluck - create a new collection by getting a path from every item of an old collection
- x/unionWith - create a flattened unique array with uniques given by a binary predicate