Skip to content

Latest commit

 

History

History
1106 lines (962 loc) · 43.4 KB

CHANGELOG.md

File metadata and controls

1106 lines (962 loc) · 43.4 KB

Change Log for crocks

v0.12.4 -- September 22, 2019

Additions

  • Functions/Methods
    • isMap predicate function
    • Add bichain for the following types:
      • Either
      • Maybe
      • Result

Optimizations

  • Update curry to remove extra stack frames when currying.

Documentation

  • Add example for applyTo
  • Corrections to the project example

Pull Requests

v0.12.3 -- July 21, 2019

Additions

  • Functions/Methods
    • hasProps predicate
    • psi combinator
    • compose2 combinator
    • bichain pointfree
    • isBichain predicate
    • bichain instance function on Async

Documentation

  • Minor Spelling error corrections
  • Update to ap example on Identity

Pull Requests

v0.12.1 -- June 30, 2019

Additions

  • Functions/Methods
    • init Pointfree
    • last Pointfree
    • List/maybeToList Transformation
    • Maybe/maybeToArray Transformation

Pull Requests

v0.12.0 -- June 16, 2019

Fixes

  • Remove circular reference when using inspect with Either

Breaking

  • Move fanout into the Pair folder.
  • Move project into Tuple folder.
  • assoc will now throw when the key/index does not match the structure it is referencing. Positive Integer for Array, String for Object.

Additions

  • Functions/Methods
    • fantasy-land Filterable interface to List
    • setPath Helper
    • unsetPath Helper
    • tupleToArray Point-free
    • isDate Predicate
    • isFalse, isFalsy, isTrue and isTruthy Predicates
  • Deprecation of prop and propPath Functions. Original functions will be maintained until 1.0.0 release.
    • Replace helpers/assoc with helpers/setProp
    • Replace helpers/dissoc with helpers/unsetPath
    • Replace helpers/propOr with helpers/getPropOr
    • Replace helpers/propPathOr with helpers/getPathOr
    • Replace Maybe/prop with Maybe/getProp
    • Replace Maybe/propPath with Maybe/getPath

Modifications

  • Add Iterable support to head Helper Function
  • Have isEmpty work with Monoids

Documentation

  • Many minor corrections and link updates
  • Add examples for Logic Functions
  • Add Result Documentation
  • Updates to combinator Functions

Pull Requests

v0.11.1 -- November 4, 2018

Video Log

Additions

  • Functions/Methods
    • Add asyncToPromise natural transformation function

Documentation

  • Add Identity documentation
  • Add flattening examples for the following Natural Transformations:
    • [x]toMaybe
    • [x]toAsync
    • [x]toEither
    • writerToPair
  • Main page layout and wording modifications

Pull Requests

v0.11.0 -- October 28, 2018

Video Log

Bug Fix

  • When doing computations on a Async using fromPromise, errors where being swallowed. This has been fixed and Errors will now throw as expected.

Additions

  • Functions/Methods
    • Add converge combinator function
    • Add isIterable predicate function

Modifications

  • tryCatch now works with functions of n-arity.
  • Removed Specific Names of Types in pointfree function Errors when they worked on multiple types

Breaking

  • Changes to Const:
    • Now exports a Type Constructor that requires a TypeRep or JavaScript Type Constructor and will return an Instance Constructor, pointed to the provided Type
    • Removal of chain method on the Instance
    • Addition of empty to the Instance and TypeRep, when pointed to a Monoid (provides the empty of the Monoid)
    • of will now behave as the new empty when pointed to a Monoid, otherwise it is a TypeError.
    • concat will now map to the concat and perform concatenation when pointed to a Semigroup
    • ap has been changed to behave as concat when pointed to a Semigroup
  • Removed links to package specific in folder index pages:
    • crocks/helpers
      • branch --> Pair/branch
      • find --> Maybe/find
      • prop --> Maybe/prop
      • propPath --> Maybe/propPath
      • safe --> Maybe/safe
      • safeAfter --> Maybe/safeAfter
      • safeLift --> Maybe/safeLift
      • toPairs --> Pair/toPairs
      • tryCatch --> Result/tryCatch
    • crocks/pointfree
      • evalWith --> State/evalWith
      • execWith --> State/execWith
      • fst --> Pair/fst
      • log --> Writer/log
      • nmap --> Tuple/nmap
      • race --> Async/race
      • read --> Writer/read
      • snd --> Pair/snd
  • crocks/transofrmations
    • removed all

Pull Requests

v0.10.2 -- October 20, 2018

Bug Fix

  • Allow only one reject/resolve in a single fork of an Async.

Additions

  • Functions/Methods
    • Add implies logic function
    • Add propSatisfies predicate function
    • Add propPathSatisfies predicate function
    • Add foldMap method to List
    • Add foldMap pointfree function for List and Array
    • Add setPath helper function
    • Add unsetPath helper function
  • Documentation
    • Add Either documentation

Pull Requests

v0.10.1 -- July 24, 2018

Bug Fix

  • Fix up regression on bimap with Pair from last release

Pull Requests

v0.10.0 -- July 24, 2018

Breaking

  • Moved merge to crocks/pointfree/merge from crocks/Pair/merge

Additions

  • Types
    • Tuple
  • Functions/Methods
    • Add nmap Pointfree Function
    • Add race method to Async type
    • Add rejectAfter and resolveAfter Async construction helper functions
    • Add race Pointfree Function
  • Documentation:
    • Add a Construction to all data types
    • Tuple Documentation

Modifications

  • Documentation
    • Async documentation corrections.
    • Arrow documentation corrections.
    • Correct spelling of Integer throughout all documentation.
    • Fix up colon notation on Predicate Functions
  • Functions
    • Modify Type Class based predicates to account for Fantasy-Land methods.
    • Modify Type Class based Pointfree Function to account for Fantasy-Land methods.
    • constant combinator is now curried.
    • update inspect to account for Symbol values

Pull Requests

v0.9.4 -- May 25, 2018

Additions

  • Documentation:
    • Const
    • Pair

Modifications

  • inspect now displays key/value pairs for objects.
  • Async cancel works for flows that reuse instances.
  • Function provided to the default Async constructor can now return a function to be called when cancelled.

Pull Requests

v0.9.3 -- April 19, 2018

Additions

  • Make the following Monoids Setoids by adding equals:
    • All
    • Any
    • Assign
    • First
    • Last
    • Max
    • Min
    • Prod
    • Sum

Documentation

  • Improve search when searching through docs section
  • Remove legacy documentation READMES in favor of single source in docs

Modifications

  • Make isSame curried.
  • Differentiate error reporting between fluent style methods and fantasy land methods for all ADTs

Pull Requests

v0.9.2 -- April 1, 2018

Additions

  • Helpers:
    • Maybe/safeAfter
    • Maybe/find

Modifications

  • Update documentation to favor JS Modules
  • sequence and traverse allow for either an Applicative TypeRep or an Apply returning function. (methods and pointfree functions)
  • sequence and traverse allow for use of the Array constructor as a TypeRep for Array

Bug fixes

  • Throw a crocks error instead of a standard JavaScript error when the data is null or undefined in the following:
    • pointfree/bimap
    • pointfree/coalesce
    • pointfree/cons
    • pointfree/head
    • pointfree/swap
    • pointfree/tail

Development Changes

  • Better Development experience on Windows
  • Updated linting rules:
    • Added eol-last
    • Added comma-dangle (never)
    • Added no-extra-parens
    • Added no-multiple-empty-lines (no more than 1)
  • Update git file to use unix newlines.

Pull Requests

v0.9.0 -- February 21, 2018

Breaking

  • Removed original applyTo combinator that was the A combinator.
  • Renamed reverseApply to applyTo for the T or thrush combinator.
  • Changed Sanctuary @@type on all types from a function () -> String to a String property on type constructors and instances.
  • Updated the following for a consistent experience for each:
    • predicates/hasProp
    • predicates/propEq
    • predicates/propPathEq
    • helpers/propOr
    • helpers/propPathOr
    • Maybe/prop
    • Maybe/propPath

Each will now do the following:

  • For predicates, failure cases result in a false.
  • For helpers, failure case will return the default value provided.
  • for Maybe functions failure case results in a Nothing
  • Act as identity when an empty array is passed in (all path based functions)
  • Throws unless String or Integer is provided for key names or in a key path.
  • Throws if empty String is found in a key name or key path.
  • Allows anything as the "data" but will default to a failure case if null, undefined or NaN is passed in. All other types traverse as normal.
  • Will exit with a failure on path functions if null, undefined or NaN values are encountered during a traversal. (ex, [ 'a', 'b' ] on { a: null })

Additions

  • Predicates:
    • hasPropPath

Pull Requests

v0.8.6 -- February 18, 2018

Additions

  • READMES:
    • Max
    • Min
  • Predicates:
    • propEq
    • propPathEq
  • Methods:
    • sequence to Pair
    • traverse to Pair
    • reduceRight to List
    • Add fantasy-land methods except for traverse and ap

Bug fixes

  • Stop traversing in propPathOr when default is an Object matching the path.

Pull Requests

v0.8.5 -- February 14, 2018

Additions

  • READMES:
    • First
    • Last
    • Async
  • Helpers:
    • liftN
  • Methods:
    • @@type to all types
    • toString to all types
    • reduceRight to List
    • Add fantasy-land methods except for traverse and ap

Bug fixes

  • Change composition order on Traversables to allow from proper application

Pull Requests

v0.8.4 -- January 17, 2018

Additions

  • READMES:
    • Assign
    • Endo
    • Maybe
    • Prod
    • Sum

Bug fixes

  • Traversable types can now accept Array as its Applicative

Pull Requests

v0.8.3 -- January 4, 2018

Additions

  • Github Pages Documentation
  • READMES:
    • State
  • All ADTs:
    • Add constructor property to all ADT instances.

Bug fixes

  • Correct spelling from 'returing' to 'returning' for a majority of the errors

Pull Requests

v0.8.2 -- December 22, 2017

Additions

  • READMES:
    • Equiv
    • Pred
    • Reader
    • ReaderT
  • Crocks:
    • Equiv
    • ReaderT
  • Helpers:
    • propOr
    • propPathOr

Bug fixes

  • propPath would throw when it encountered NaN or null values in the path

Pull Requests

v0.8.1 -- November 14, 2017

Additions

  • Helpers:
    • mapProps

Bug fixes

  • runWith on State did not report an error unless one of the methods were called. Now it throws if the result is not a Pair for all calls to runWith
  • Update path on branch helper on README to point to location in Pair

Pull Requests

v0.8.0 -- November 09, 2017

Breaking

  • Changes value pointfree and instance methods to valueOf.
  • All Setoids now compare Object types by value.
    • Const
    • Either
    • Identity
    • List
    • Maybe
    • Pair
    • Result
    • Writer
  • read method on Writer instance now returns a Monoid m => Pair m a instead of an Object with { log, value }.

Additions

  • READMES:
    • All
    • Any
    • Arrow
  • Predicates
    • isSame
  • Pointfree
    • equals

Bug fixes

  • propPath and prop would throw then passed undefined, null or NaN. Now they do not.

Optimizations

  • Just use the native es6 rest operator instead of slicing arguments.
  • Optimized isSameType function.

Pull Requests

v0.7.1 -- August 28, 2017

Additions

  • Crocks
    • Pair.toArray
  • Helpers:
    • mapReduce
  • Transforms
    • Pair/writerToPair

Optimizations

  • General cleanup and better specs for All, Any, Arrow and Pair

Pull Requests

v0.7.0 -- July 28, 2017

Breaking

  • Restructure entire folder structure into a src folder with folders for each type. Functions that construct types are now housed in their respective types folder. All general functions that work many types are still in their old folders combinators, helpers, logic, pointfree and predicates. All transformation functions have been moved into the folder of the type that they transform into (i.e. resultToEither is in the folder Either). This is the first step to moving to a monorepo format.
  • Reader.ask now takes either a Function or no arguments. If a function is provided it will map the environment through the function. No arguments behaves like identity.
  • Removed State.gets and updated State.get to take either a Function or no arguments. Passing a Function will apply the state to that function an update the value to match the result. No arguments behaves like identity matching the value to the state.
  • Allow for Star to be fixed to a specific Monad. Instead of using Star to construct a Star, it now takes a Monad constructor returning the consumer a constructor specific for that type of Monad.
  • Update Result.alt to accumulate Errs if the Result wraps a Semigroup, much like Result.ap, it will concat the Semigroups together.

Additions

  • Crocks:
    • Star.id

Bug fixes

  • All code is now compiled through buble, which means that it clears up all of the errors we were experiencing with Safari and in some instances uglifyJS. The code published to npm will now be standard es5.

Optimizations

  • Have all functions used by the library that are available on the public API do no type checks when called by other library functions.

Pull Requests

v0.6.1 -- July 04, 2017

Additions

  • Crocks API:
    • Pair.extend
  • Monoids:
    • First
    • Last
  • Pointfree
    • extend
  • Predicates
    • isAlternative
    • isBifunctor
    • isContravariant
    • isPlus
    • isProfunctor
    • isExtend
  • Transforms
    • eitherToFirst
    • eitherToLast
    • firstToAsync
    • firstToEither
    • firstToLast
    • firstToMaybe
    • firstToResult
    • lastToAsync
    • lastToEither
    • lastToFirst
    • lastToMaybe
    • lastToResult
    • maybeToFirst
    • maybeToLast
    • resultToFirst
    • resultToLast

Non-Breaking

  • Add internal functions for typeclass determination
  • Add @@implements function on all types for typeclass determination

Pull Requests

v0.6.0 -- May 21, 2017

Breaking

  • Remove curryN in favor of nAry
  • Replace concat and empty with compose and id on Arrow
  • Replace concat with compose on Star

Additions

  • Helper Functions:
    • binary
    • composeK
    • composeS
    • dissoc
    • nAry
    • partial
    • pipeK
    • pipeS
    • unary
    • unit
  • Pointfree
    • empty
  • Predicates
    • isCategory
    • isSemigroupoid

Non-Breaking

  • Small optimization on all pipe and compose functions.

Pull Requests

v0.5.0 -- May 4, 2017

Breaking

  • Rename hasKey to hasProp
  • Allow ap pointfree to accept Array
  • Allow chain pointfree to accept Array
  • Restrict concat pointfree to Semigroups of the same type
  • Restrict liftA* functions to Applys of the same type
  • Update isApply predicate to report true for Array
  • Update isChain predicate to report true for Array
  • Allow filter pointfree to accept Object
  • Allow reject pointfree to accept Object
  • Change tryCatch to return a Result instead of Either
  • Remove parent name when inspecting Either
  • Remove parent name when inspecting Maybe
  • Remove parent name when inspecting Result

Additions

  • Helper Functions:
    • assign
    • assoc
    • defaultProps
    • defaultTo
    • fromPairs
    • objOf
    • omit
    • pick
    • toPairs
  • Predicates
    • isChain

Pull Requests

v0.4.1 -- Mar. 12, 2017

Additions

  • Crocks:
    • Result
  • Crock Instance Functions:
    • List fold
  • Helper Functions:
    • composeP
    • pipeP
  • Monoids:
    • Endo
  • Pointfree Functions:
    • fold
  • Predicate Functions:
    • isPromise
  • Transformation Functions:
    • eitherToResult
    • maybeToResult
    • resultToAsync
    • resultToEither
    • resultToMaybe

Bug fixes

  • Lock Pred down to returning Boolean values as defined.

Pull Requests

v0.4.0 -- Feb. 26, 2017

Additions

  • Crock Instance Functions:
    • Either concat
    • Identity concat
    • Maybe concat

Breaking

  • Remove of and value from Pair.
  • Allow isSameType to compare JS type constructors to JS values and value types to other value types.

Pull Requests

v0.3.1 -- Feb. 19, 2017

Additions

  • Crock Instance Functions:
    • List reject
  • Pointfree Functions
    • reject

Non-Breaking

  • Clean up README a bit.
  • DRY up the Pred/predicate functions to use the new predOrFunc internal function.

Pull Requests

v0.3.0 -- Feb. 18, 2017

Breaking

  • Move the following from helpers folder into new logic folder:
    • ifElse
    • not
    • unless
    • when
  • Removed value from Either instances
  • Removed maybe from Maybe instances
  • Move Async.rejected to Async.Rejected
  • List constructor will now accept any value. If it is an array is makes a List with the same elements.

Additions

  • Crock Constructor Functions:
    • List fromArray
    • Maybe zero
    • Async Resolved
  • Crock Instance Functions:
    • Async alt
    • Either alt
    • List toArray
    • Maybe alt
    • Maybe zero
  • Logic Functions:
    • and
    • or
  • Pointfree Functions
    • alt
  • Predicate Functions
    • isAlt
  • Transformation Functions:
    • arrayToList
    • listToArray

Non-Breaking

  • Clean up signatures on README.
  • Add gitter badge to README.
  • Add CHANGELOG to the mix

Pull Requests

v0.2.3 -- Feb. 4, 2017

Additions

  • Crock Instance Functions:
    • Arrow both
    • Star both
  • Pointfree Functions:
    • both
    • Arrow.both instance
    • Star.both instance
  • Predicate Functions:
    • isSameType
  • Transformation Functions:
    • eitherToAsync
    • eitherToMaybe
    • maybeToAsync
    • maybeToEither

Non-Breaking

  • Add coverage folder to npmignore
  • Better coverage configuration.
  • Fix up some signatures
  • Add npm badge to README
  • remove isType internal function
  • Another pass at 🌽sistant Error messaging.
  • Fix up the IO chain instance errors.

Pull Requests

v0.2.2 -- Jan. 29, 2017

Non-Breaking

  • Configure Coveralls for better coverage reports
  • Fix 🪲 with isFoldable check in mreduce.

Pull Requests

v0.2.1 -- Jan. 29, 2017

Additions

  • Helper Functions:
    • prop
    • propPath
    • safeLift
  • Predicate Functions:
    • hasKey
    • isDefined
    • isFoldable

Non-Breaking

  • Update some copyright dates for newer files.
  • Add fromNode and all to Async constructor
  • Add Coveralls integration

Pull Requests

v0.2.0 -- Jan. 21, 2017

Breaking

  • Rename Funcs folder to Helpers
  • Remove inspect function from public API
  • Move inspect into internal folder.
  • Change first and secondpointfree to accept Functions as well as Arrow and Star.
  • Change first and second on Arrow to not take any arguments and instead apply its inner function.

Additions

  • Crocks:
    • Async
  • Helper Functions:
    • fanout
    • not
    • once
    • tap
  • Internal functions:
    • move all predicate functions from internal and into a new predicates folder
  • Predicate Functions:
    • isApplicative
    • isApply
    • isArray
    • isBoolean
    • isEmpty
    • isFunction
    • isFunctor
    • isInteger
    • isMonad
    • isMonoid
    • isNil
    • isNumber
    • isObject
    • isSemigroup
    • isSetoid
    • isString
    • isTraversable

Non-Breaking

  • README updates
  • Allow Pred to be accepted on the following predicate functions:
    • ifElse
    • safe
    • unless
    • when
    • filter
    • List.filter
  • Allow pointfree traverse and sequence to work with Arrays.
  • Add first and second to Star
  • Add linting and Travis integration

Pull Requests

v0.1.1 -- Jan. 9, 2017

Additions

  • Crocks:
    • Pred
    • Star
    • State
  • Helper Functions:
    • curryN
    • ifElse
    • safe
    • tryCatch
    • unless
    • when
  • Internal functions:
    • isFunctor
    • isUndefOrNull -> isNil
  • Pointfree functions:
    • evalWith
    • execWith

Non-Breaking

  • README updates
  • Allow Pred to be accepted on the following predicate functions:
    • ifElse
    • safe
    • unless
    • when
    • filter
    • List.filter

Pull Requests