core-functions
Advanced tools
Changelog
3.0.7
Changelog
3.0.6
engines.node
to >=6.10
intest/package.json
Changelog
3.0.5
any
module:
defined
& notDefined
functionsvalueOf
function removed from objects
moduleobjects
:
valueOf
function to any
modulevalueOf
function & delegated it to valueOf
in any
modulesorting
:
isUndefinedOrNull
function & replaced its usage with calls to notDefined
function from any
moduleisUndefinedOrNull
function & delegated it to notDefined
function from any
moduleChangelog
3.0.4
promises
module:
avoidUnhandledPromiseRejectionWarning
function to avoid unneeded Node 6.10.3 warningsChangelog
3.0.2
promises
module:
installCancel
utility function that installs a cancel
method on a cancellable, which combines any existing
cancel
method behaviour with the given new cancel function logicevery
and chain
functions to use new installCancel
utility function, which enables them to "extend"
the behaviour of their cancellables' cancel methods instead of just overwriting theminstallCancelTimeout
utility function that installs a cancelTimeout
method on a cancellable, which
combines any existing cancelTimeout
method behaviour with the given new cancelTimeout function logicdelay
function to use new installCancelTimeout
utility function, which enables it to "extend" the
behaviour of its cancellable's cancel method instead of just overwriting itchain
function to also pass any and all previous outcomes as an optional 4th argument to the given input
function f
, which enables an input function to use and/or react to previous outcomes in the chainDelayCancelledError
subclass of Errordelay
function to throw a new DelayCancelledError
when timeout triggers and mustResolve is false. Note
that this change is not entirely backward compatible, since it fixes the prior behaviour that was incorrectly
throwing a boolean with the triggered value as the "error"flatten
function to recursively reduce a given Promise or array of Promises (containing other promises
or arrays of promises) down to a single Promise (with any Success and/or Failure outcomes necessary)numbers
, objects
& app-errors
modules:
Number.parseInt(...)
with more reliable & consistent Number(...)
e.g. parseInt('1e+22') returns 1, while Number('1e+22') returns 1e+22;
e.g. parseInt('12B3') returns 12, while Number('12B3') returns NaNobjects
module:
copy
, copyNamedProperties
& merge
functions to the new copying
& merging
modulescopy
, copyNamedProperties
& merge
functions to simply delegate to their counterparts in the new copying
& merging
modules and marked the original functions as deprecatedisTypedArray
, getPropertyNames
, getPropertySymbols
, getPropertyKeys
, getPropertyDescriptors
,
getPropertyValueByKeys
, getPropertyDescriptorByKeys
, getPropertyValueByCompoundName
& getOwnPropertyNamesRecursively
functionsweak-map-copy
module to enable "copying" of WeakMap
instancesweak-set-copy
module to enable "copying" of WeakSet
instancescopying
module:
copy
& copyNamedProperties
functions copied from objects
modulecopy
function to also support copying of property descriptors and copying of
Symbols, Dates, Buffers, ArrayBuffers, TypedArrays, DataViews, Errors, RegExps, Maps, Sets, WeakMaps & WeakSetsdeepMapKeys
, deepMapValues
, deepSets
, onlyEnumerable
, onlyValues
, omitAccessors
, isCopyable
,
createCustomObject
& copyCustomContent
options to enable more extensive customisation of the copy
functionconfigureCopyContext
, isCopyableObject
, copyObject
, createObject
, createTypedArray
,
createDataView
, copyContent
, copyPropertyDescriptors
, copyPropertyValues
, copyPropertyDescriptor
,
copyPropertyValue
& copyDescriptor
supporting functionsmerging
module:
merge
function copied from objects
modulemerge
functionisMergeable
and onlyEnumerable
options to enable more extensive customisation of the merge
functionconfigureMergeContext
, isMergeableObject
, mergeObject
, resolveMergedObject
, mergeContent
,
areSimilarArrayLikes
, mergePropertyDescriptors
& mergePropertyValues
supporting functionstries
module:
simplify
, count
, countSuccess
, countFailure
& describeSuccessAndFailureCounts
static methodsflatten
& findFailure
static methodsChangelog
3.0.1
promises
module:
CancelledError
constructor unresolvedPromises
parameter to more generic unresolvedInputs
unresolvedInputs
property to CancelledError
class and kept unresolvedPromises
as an alias for itcompleted
property of CancelledError
class, which was incorrectly reporting completed as true when
no unresolved inputs or promises were providedchain
functionstrings
module:
cleanInspectedPromise
functiontype-defs
module:
Outcome
& Outcomes
type definitionscopy.sh
scriptChangelog
3.0.0
promises.js
module:
promises
module functions onto native Promise
classtry
function to NOT use Promise.all
when the given function returns an array of promises,
so that it instead preserves ALL of the executed function's returned promises, "wrapped" in a Promise.resolve
allOrOne
and every
functions to both accept any mixture of promise and/or non-promise
values, in order to bring their behaviour in line with that of the standard Promise.all
methodevery
function to ONLY accept an array of promises
(i.e. it no longer supports var args containing
promises) and added a new cancellable
parameter to enable the wait for every promise to complete to be short-
circuited at the earliest possible opportunity and the every
function will then instead return a rejected
CancelledError
from which the resolvedOutcomes
and unresolvedPromises
can be retrievedevery
function's returned resolutions from literal objects containing result
or error
properties
to use the new tries
modules's Success
, Failure
and Try
classes instead (NB: Success has a value
property,
and not a result
property, so this change is not backward-compatible)every
function to return an empty array when the first argument was not a promiseisPromise
function to isPromiseLike
& added new isPromise
function that ONLY returns true for native promisesisArrayOfPromises
function, which was no longer useful & would have had to change after isPromise
changedone
function to convert a single promise into a native Promise that resolves to a Success
or Failure
outcometoPromise
function to attempt to convert a promise-like into a native promise
one
functionevery
function to use it to ensure that the first promise in the chain becomes a native Promisetries.js
module:
Try
superclass and Success
and Failure
subclasses modelled after their same-named Scala counterpartsdates.js
module:
simpleISODateTimeRegex
& simpleISODateRegex
regular expressionsextendedISODateTimeRegex
& extendedISODateRegex
regular expressionsisSimpleISODateTimeLike
& isSimpleISODateLike
functionsisSimpleISODateTime
& isSimpleISODate
functionsisExtendedISODateTimeLike
& isExtendedISODateLike
functionsisExtendedISODateTime
& isExtendedISODate
functionstoSimpleISODateTime
& toSimpleISODate
functionstoDateTime
& toExtendedISODate
functionsisValidDate
functionsorting.js
module:
SortType
"enum" object to defined the types of sorting supportedcompareNumbers
, compareStrings
, compareBooleans
, compareDates
, compareIntegerLikes
&
compareUndefinedOrNull
compare functions to be used with Array sort
methodtoSortable
function, which resolves the appropriate sort type and compare function to use for a given array
of values intended to be sorted and also maps the values into an array of consistent, sortable types of valuessortSortable
function (primarily for testing), which simply sorts a "Sortable" object's sortableValues
using its compare
functionnumbers.js
module:
integerRegex
, numberRegex
, zeroRegex
, leadingZeroesRegex
& trailingZeroesRegex
regular expressionsisInteger
& isSafeInteger
functionsisNumberLike
, isIntegerLike
& isZeroLike
functionstoNumberLike
, toDecimalLike
, toDecimalLikeOrNaN
, toIntegerLike
, toIntegerLikeOrNaN
&
toNumberOrIntegerLike
functionsremoveLeadingZeroes
, removeTrailingZeroes
, zeroPadLeft
& removeSignIfZero
functionsnearlyEqual
function for testing numbers for approximate equalitystrings.js
module:
stringifyKeyValuePairs
functiontoLowerCase
functionstringify
function:
useToStringForErrors
, avoidToJSONMethods
& quoteStrings
parameters with a single, optional opts
parameter with optional avoidErrorToString
(NB: renamed and changed default behaviour to use toString() for
Errors), avoidToJSONMethods
and quoteStrings
properties.opts
object, which means this
API change is still backward-compatibleuseJSONStringify
, replacer
& space
opts properties to enable stringify
's behaviour to be
switched to simply use JSON.stringify
instead via its new opts
argumentobjects.js
module:
toKeyValuePairs
functionmerge
function:
replace
& deep
parameters with a single, optional opts
parameter with optional replace
& deep
propertiesopts
object, which means this
API change is still backward-compatiblecopy
function:
deep
parameter with a single, optional opts
parameter with an optional deep
propertydeep
boolean argument passed instead of a new opts
object, which
means this API change is still backward-compatiblecopyNamedProperties
function:
compact
, deep
& omitPropertyIfUndefined
parameters with a single, optional opts
parameter with
optional replace
, deep
& omitIfUndefined
propertiesopts
object, which means this
API change is still backward-compatibletype-defs
"module" to gather the various type definitions into one placetest/testing.js
Changelog
2.0.14
copyNamedProperties
function to objects.js
module