@financialforcedev/orizuru
Version:
Streamlined communication between Heroku dynos / other worker processes
159 lines (105 loc) • 5.19 kB
Markdown
# @financialforcedev/orizuru
## 9.3.2
### OTHER CHANGES
- Use the Docker image from Orizuru-Transport-RabbitMQ for the system tests
- Add Docker scripts to the package.json that:
- Build the orizuru-transport-rabbitmq--rabbitmq service
- Start the orizuru-transport-rabbitmq--rabbitmq service
- Cleanup the created container and image
- Start the service then run the system tests
- Remove the RabbitMQ service from the Travis configuration
- Amalgamate the change log files
## 9.3.1
- Rework and complete documentation
- Convert to using Jest for testing
## 9.3.0
- Updated IHandler, IPublisher and IServer interfaces to extend EventEmitter
- Added support for ErrorRequestHandler as middleware
## 9.2.0
- Update typescript configuration to target es2017
## 9.1.0
- Export the RequestHandler from express
- Export the ResponseWriter type
- Update the IServer, IPublisher and IHandler types to include the missing functions
- Update the lodash imports and use es2017 functions where appropriate
- Update tests for changes to sinon
- Remove fs-extra dependency
- Remove the npmignore file and update the package.json to package the correct files
- Remove the properties files
## 9.0.1
- Update all dependencies to latest versions
- Remove all references to `new Buffer()`
- Use `Buffer.from()` instead to remove deprecation warnings
## 9.0.0
- The `addRoute` method can now add synchronous APIs
- Set the `synchronous` property to `true` in the route options to do this
- All incoming messages are still validated against the [Apache Avro](https://avro.apache.org/docs/current/) schema but are not published to a message queue
- The validated request is stored in the body property of the request
- Synchronous request logic should be added to the `responseWriter` property
- The routing mechanism for Orizuru has been updated so that each endpoint now uses a different express router
- Orizuru now expects a class for the transport layer
- Each server, publisher and handler should have a different transport instance
- The configuration for the transport can be provided in the constructor
- Updated ITransport interface
- Removed Orizuru.Transport.IConnect interface
- Addition of helper methods for `listen`, `close`, `set` and `use` to the Orizuru `Server`
- By default, `close` also closes the transport layer
- By default, `listen` starts the server listening for connections specified in the `Options`
- All Orizuru `Handler` and `Publisher` instances must now be initialised by calling the `init()` function. This initialises the connection
- The `getPublisher` and `getServer` functions have been replaced with property getters
- Added `Orizuru.Message` interface to the `IOrizuruMessage`
- This acts as the base interface for all messages sent by Orizuru
- Events have now been converted to use symbols
- Add system tests to test core functionality
- Addition of RabbitMQ docker image using the same version as Travis CI
- System test coverage is now included in Travis builds
- Add nyc.opts file to clean up the package.json
- Fix a regression where the context Avro schema could contain anonymous types
- Documentation is now generated using the master branch for definition links
## 8.0.2
### FIXES
- Default the event name to the schema name when publishing a message
## 8.0.1
### FIXES
- Make sure that messages can be published if the context is empty
## 8.0.0
### BREAKING CHANGES
- Use generic types for the IOrizuruMessage
- This will cause compile time errors even though there are no functional changes
### NEW FEATURES
- Add use and set functions to the server
- Export static function from express in the index
## 7.1.1
### FIXES
- Update all validators to allow for transport objects created by constructors other than Object
## 7.1.0
### NEW FEATURES
- Allow for transport objects created by constructors other than Object
## 7.0.0
### OTHER CHANGES
- Conversion to Typescript
## 6.1.1
### OTHER CHANGES
- Fix security advisories
- Relax versioning
## 6.1.0
### NEW FEATURES
- Allow customisation of the mapping from Avro schema namespace to URL path
## 6.0.1
### FIXES
- Make the subscribe handler wrapper async, and await the inner handler
## 6.0.0
### BREAKING CHANGES
- The server `addRoute` method has been updated to add each route separately
- The server `addGet` method has been removed
- The `addRoute` allows you to specify the method as part of the route configuration
- The `Server`, `Publisher` and `Handler` now extend `EventEmitter`
- Any cases of `Server.emitter`, `Publisher.emitter` and `Handler.emitter` should be changed to reference the instance
### NEW FEATURES
- Added the `npm init-project` command.
- This command should be called before running any of the examples. It makes a local copy of the `run.properties` and `test.properties` files
### OTHER CHANGES
- The transport schema has been updated to an [Apache Avro](https://avro.apache.org/docs/current/) schema (`.avsc`) file
- Updated the JS documentation to use the Minami theme
- Removed the jsbeautifyrc file
- We now use the beautify file specified in the eslint-config package