Giter Site home page Giter Site logo

Add server.after hook in manifest about glue HOT 9 CLOSED

hapijs avatar hapijs commented on June 15, 2024
Add server.after hook in manifest

from glue.

Comments (9)

csrl avatar csrl commented on June 15, 2024

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.

from glue.

simon-p-r avatar simon-p-r commented on June 15, 2024

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!

from glue.

Marsup avatar Marsup commented on June 15, 2024

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.

from glue.

csrl avatar csrl commented on June 15, 2024

@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.

from glue.

simon-p-r avatar simon-p-r commented on June 15, 2024

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.

from glue.

csrl avatar csrl commented on June 15, 2024

@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)

from glue.

simon-p-r avatar simon-p-r commented on June 15, 2024

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.

from glue.

csrl avatar csrl commented on June 15, 2024

Could you provide code examples showing the configuration based use as you would like it?

from glue.

lock avatar lock commented on June 15, 2024

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.

from glue.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.