Closed simon-p-r closed 9 years ago
I'm not sure where you expect such a hook to exist. Every step currently has a hook.
-> compose() -> new Hapi.Server() -> preConnections() -> server.connection() -> prePlugins() -> server.register() -> callback()
Each step you have the ability to do what you want, and the server is passed in the callback. I see no place/need for a "server.after" hook.
That's a shame as I think it will give you greater external control via the manifest to configure servers, hapi's mantra is configuration over code!
server.after
comes after glue gave you the server back, you do have a chance to register it before starting the server. That said glue could give a sugar property to spare you that call.
@simon-p-r feel free to provide an example of what you mean, or a pull request. I do not imagine what it is you want. Thanks.
An example would be a server configured with some base features that users can write plugins for, my use case is I have a schema manager that can load schemas via plugins and after all plugins are loaded I call server.after to validate the schemas and can create database handles for them before hapi starts. However if I could pass function to manifest I can then configure based on different requirements. For example I may need to use a different database or no database at all.
@simon-p-r then as @Marsup said, you can just do:
glue.compose(manifest, function (err, server) {
server.after(afterHandler);
server.start();
});
If this was implemented in glue, then the above code would instead look like:
glue.compose(manifest, {preStart: afterHandler}, function (err, server) {
server.start();
});
Can you explain what the benefit is to add the preStart option to glue.compose? (preStart implemented as passing the associated function to server.after)
It just enables me to configure servers differently, I currently call server.after like you shown above however for testing it is better if I can compose based on configuration rather than code.
Could you provide code examples showing the configuration based use as you would like it?
This thread has been automatically locked due to inactivity. Please open a new issue for related bugs or questions following the new issue template instructions.
Whilst using glue I thought it might be good if there was a hook in the manifest for server.after like there is for preConnections and prePlugins.
Thanks Simon