moleculerjs/moleculer

Hot reload doesn't work correctly when middleware is changed

Opened this issue · 0 comments

In version 0.15-beta1 when adding a custom middleware hot reload has issues - when middleware is changed all services get re-registered.

Current Behavior

Editing a middleware file re-registers services

Expected Behavior

Services don't multiply :)

Steps to Reproduce

  1. Initialize a project with greeter etc
  2. Add a custom middleware
  3. Call greeter from repl -> get one response from service
  4. Edit middleware file, wait for hot reload
  5. Call greeter from repl -> get two responses from service
  6. Edit again middleware again
  7. Call greeter from repl -> get three responses from service
    image

Reproduce code snippet

Middleware code:

`module.exports = function ExampleMiddleware(broker) {
const enabled = broker.options.hotReload; // or whatever

return {
	name: "HotRebuild",

	localAction(next, action) {
		return function (ctx) {
			console.log("Example example");

			return next(ctx);
		};
	},
};

};
`

Context

Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions.

  • Moleculer version: v0.15-beta1
  • NodeJS version: v18
  • Operating System: Windows 10