Skip to content

Releases: KrisSiegel/msngr.js

Release 7.0.0

11 Jan 10:13
c173dd2
Compare
Choose a tag to compare

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

28 Jul 10:15
Compare
Choose a tag to compare

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

16 Jun 07:05
Compare
Choose a tag to compare

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

19 May 05:49
Compare
Choose a tag to compare

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

12 Dec 07:49
Compare
Choose a tag to compare

Version 5.1.0 brings some minor improvements and changes

_What's new?_

  • Added msngr.parallel() and msngr.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

28 Aug 08:19
Compare
Choose a tag to compare

Minor readme changes

Release 5.0.0

20 Aug 11:28
Compare
Choose a tag to compare

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 with msngr.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 to msngr(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

20 May 21:20
Compare
Choose a tag to compare

Fixed an issue with msngr.copy() where values within arrays were not deep copied.

Release 4.0.1

23 Mar 05:19
Compare
Choose a tag to compare

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

09 Mar 04:51
Compare
Choose a tag to compare

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 original msngr.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 a msngr.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.