Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@eveble/messaging

eveble12MIT1.0.0

Messaging infrastructure for Eveble applications

eveble, modular, architecture, dependencies, dependency, injection, di, ioc, inversion of control, messaging, api, command bus, event bus, messaging, bus, command, event

readme

Eveble Messaging CircleCI

Messaging infrastructure for Eveble applications.

Table of Contents

Installation

Using yarn:

yarn install @eveble/messaging

Testing

Using yarn:

yarn test

License

The MIT License (MIT)

Copyright for portions of Eveble/messaging are held by: Code Adventure, 2015 as part of https://github.com/meteor-space/messaging All other copyright for Eveble/messaging are held by: Eveble, 2019

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

changelog

Changelog

1.0.0

Features

  • Added OneToOneHandlingMixin that allows to register handlers for type(1):handler(1) relation. (PR 12)
  • Added OneToManyHandlingMixin that allows to register handlers for type(1):handlers(n) relation(with support for concurrent handling) (PR 12)
  • Refactored version decorator to: use hookable decorator api (PR 11)
  • Added async/await support on CommandBus (PR 11)
  • Added async/await support on EventBus (PR 11)
  • Added async/await support on CommandHandlingMixin (PR 11)
  • Added async/await support on EventHandlingMixin (PR 11)
  • Extracted error messages from Serializer, EJSONExtension, serializable decorator - as class errors extending SerializationError (PR 10)
  • Version related errors messages are now class errors extending VersioningError (PR 10)
  • Replaced HandlerMapping with Registrable (PR 10)

Fixes

  • Fix issue with invalid constructor name on dynamic class creation at Serializer define (PR 12)
  • Returns decorated target on serializable decorator (PR 11)

Improvements

  • Implemented OneToOneHandlingMixin on CommandBus (PR 12)
  • Implemented OneToManyHandlingMixin on EventBus (PR 12)
  • Implemented OneToOneHandlingMixin on CommandHandlingMixin (PR 12)
  • Implemented OneToManyHandlingMixin on EventHandlingMixin (PR 12)
  • Added timestamp and metadata essentials properties to Message with additional metadata related methods (PR 11)
  • Added resolveTypeOrReturn helper that allows you to return type or type name(if type can't be resolved) from passed sources (PR 11)
  • Added support for essential fields to Serializer define method (PR 11)
  • Added support for automatic application of version decorator upon registering new type on Serializer (PR 11)
  • Added ValueObjectError (PR 10)
  • Updated Serializable to use new Struct definition (PR 10)
  • Serialization now uses Map for underlying type container (PR 10)
  • Most errors, requiring a specific type values now shows invalid argument by using @eveble/matchist library Identifier to describe received invalid argument as String (PR 10)
  • Changed package imports to use named imports for each module instead of default (PR 10)
  • Updated SerializableError to use new Struct definition (PR 10)
  • Added colorized(by chalk) console warning message while running Serializer in overriding mode (PR 10)
  • Refactored Guid to use new Struct definition (PR 10)
  • Normalized error messages and required arguments (PR 10)

Changes

  • Added chai-as-promised 7.1.1
  • Added @babel/runtime 7.5.4
  • Added @babel/plugin-transform-runtime 7.5.0
  • Added chalk 2.4.2
  • Added @jalik/deep-extend 1.1.2

Chores

  • Updated @eveble/base to version 3.0.0
  • Updated @eveble/matchist to version 1.3.0
  • Updated @eveble/testing-helpers to version 0.2.2

Removed

  • Removed request related components (PR 10)
  • Removed request hooks related components (PR 10)
  • Removed attachables related components (PR 10)
  • Removed Handler (PR 12)
  • Removed HandlingMixin (PR 12)

0.3.0

Features

Serializer

  • Added Serializer modes(default and override) in which it decides how to register custom type - by adding or overriding it on extension. This solves issues with registering already existing types on each test refresh in Mocha --watch mode do to singleton nature of Serializer and ensurement that each custom type can be registered only once(by throwing error like: 'YourNamepsace.YourCustomType' is already added as custom type). Thus prohibiting developer from refreshing test and forcing him to re-run tests via command. Ensure to switch Serializer mode early on (via --file ./test/myfile.js) in command or mocha.opts by checking if Mocha is running in --watch mode (PR 8)

0.2.1

Chores

  • Updated sinon to version 7.3.0
  • Updated decache to version 4.5.1
  • Updated eslint to version 5.15.3
  • Updated rollup-plugin-node-resolve to version 4.0.1
  • Updated rollup-plugin-commonjs to version 9.2.1
  • Updated rollup to version 1.7.2
  • Updated @babel/register to version 7.4.0
  • Updated @babel/preset-env to version 7.4.2
  • Updated @babel/plugin-proposal-decorators to version 7.4.0
  • Updated @babel/plugin-proposal-class-properties to version 7.4.0
  • Updated @babel/core to version 7.4.0
  • Updated @eveble/matchist to version 0.3.2
  • Updated @eveble/base to version 0.2.1
  • Removed old CircleCI configuration

Fixes

  • Removed rollup-plugin-terser do to issues with debugging on consumer level
  • Fixed interchangeable use of matchist api to be consistent in favor of match(vs ensure)

0.2.0

Chores

  • Updated CircleCI config for version 2
  • Updated package definition (PR 1)
  • Updated building workflow (PR 2)
  • Added linting (PR 3)

0.1.0

Initial release