Releases: KrisSiegel/msngr.js
Release 7.0.0
This release is a new major version due to some API deprecation / removal. Beyond that the API is effectively unchanged and should continue to work unless you used undocumented features that were just removed :)
Breaking changes
- Removed
msngr.asyncify
- Removed
msngr.safe
Misc changes
- Cleaned up dead code in build and testing scripts
msngr.min.js
size decrease from 11.7kb to 11.1kb- Changed
npm test
behavior to no longer rebuild (only runs tests) - Added
npm run clean
to clean the current build - Added
package-lock.json
for better, reproducible builds
Release 6.0.0
This release is a re-focusing on what makes msngr.js great. It removes the mache cache, the global configuration object and the universal networking to focus only on messaging and processing of messages. Additional, internal refactoring was also done to further shrink the filesize to a gzipped size of roughly 3kb.
Breaking changes
- Removed
msngr.mache
- Removed global config instance of mache
- Removed
msngr.net
- Removed
msngr.deDupeArray
Misc changes
- Refacored multiple files to consolidate logic and reduce file size further
Release 5.2.1
Mostly some house cleaning
Misc changes
- Removed Simex logo (it's defunct)
- Updated travis to target latest node release
- Reworked middleware into message source
- Updated dev dependencies
Release 5.2.0
Minor, non-breaking API additions
What's new?
- Updated middleware signature to add an additional parameter to the handler that includes the calling message object
Misc changes
- Changed build targets
- Tweaks to documentation
Release 5.1.0
Version 5.1.0 brings some minor improvements and changes
_What's new?_
- Added
msngr.parallel()
andmsngr.series()
. These are handy for asynchronous patterns and already existed, internally, to msngr.js. This simply exposes them but in a more simplified way.
_Misc changes_
msngr.is(Promise)
should now work in cases where Promise is pollyfilled.- Fixed issue in mache where calling
.data
property would set a transaction to the baseline dataset
Release 5.0.1
Minor readme changes
Release 5.0.0
Version 5.0 brings in some major changes, the first LTS version and huge improvements over previous versions.
_What's new?_
- A new way to validate is here!
msngr.is(input,...)
allows any amount of parameters to validate. The object returned withmsngr.is()
provides multiple ways to checking the type(s) of objects supplied through familiar properties. For instance:
msngr.is("My String").string; // Returns true
msngr.is(" ").empty; // Returns true
msngr.is(undefined).there; // Returns false
msngr.is("one", "another", "weee").string; // Returns true
- A new way to setup middleware now exists and replaces the previous options.
- A new
msngr.safe(obj, prop, default)
method was added for accessing deep properties, safely.
_Breaking changes_
- All previously used type, existence and empty checking methods are now removed in favor of the new
msngr.is()
way. msngr(msg).subscribers
has been renamed tomsngr(msg).handlers
to better reflect the msngr terminology.msngr(msg).options
has been axed in favor of the new middleware concept outlined in the above section.- Options have been removed entirely along with their specific implementations. This has been replaced by a middleware setup with currently no default middlewares.
msngr.merge()
now has different, better behavior. No longer tries to merge strings and has a very strict set of rules easy to see in the source code.msngr.copy()
was changed in a very similar way
_Misc changes_
- Highly revised documentation. This is still ongoing.
- Vastly refactored
Release 4.0.2
Fixed an issue with msngr.copy()
where values within arrays were not deep copied.
Release 4.0.1
This update brings an additional benchmark for mache and a bug fix where mache's getDeep()
would fail to return false boolean values.
Release 4.0.0
Version 4.0 brings along many performance improvements (20% faster! ha!), API changes, new features and some deprecations.
_What's new?_
msngr.uuid()
This method returns a valid UUID and was simply renamed from the originalmsngr.id()
which has now changed (see breaking changes below)msngr.asyncify()
This method takes a function that operates and returns a synchronous result and adds a .async() method on top of it so it can be used asynchronously.msngr.mache()
This creates a new merge cache. Data can be cached into it with all objects always being merged. It also provides a way to revert changes on an individual basis or it can be used in a transaction! Neat, huh?
_Breaking changes_
msngr.id()
no longer returns a UUID. Instead it returns a higher performance but unique ID. This is used mostly internally to msngr.msngr.warnings
is no longer a property. It was never used and I don't like the idea of adding logging inside of a library. Could revisit it in the future if there is any demands.msngr.config()
still exists but is now powered by amsngr.mache()
instance so its API has changed accordingly.
_Misc changes_
- Moved test resources to yet another dedicated folder (this time just
test
) - Upgraded all development dependencies to latest versions
- Removed documentation for
msngr.getDomPath()
; unless the element contains an ID this method is unreliable but I want to later improve upon it so for now it's considered part of the "private API" aka don't use it. - Re-ordered the files that are included in the build process and made them explicit instead of wildcards so I can explicitly tune them to the correct ordering.