Skip to content
This repository has been archived by the owner on Jan 15, 2021. It is now read-only.

[Hapi] Support roadmap #110

Open
atrauzzi opened this issue May 18, 2017 · 7 comments
Open

[Hapi] Support roadmap #110

atrauzzi opened this issue May 18, 2017 · 7 comments
Milestone

Comments

@atrauzzi
Copy link

atrauzzi commented May 18, 2017

Hapi is fairly popular and has really good mindshare. Would be a shame to not be able to use this with it!

  • Support injecting the glimpse interface whenever inert is used to serve html
@avanderhoorn avanderhoorn changed the title Add support for node edition to work with hapi [Hapi] Support roadmap May 18, 2017
@avanderhoorn
Copy link
Member

We have been having a discussion around HAPI support here - #95. As of release of 0.20.9, we should be working with Hapi now... the only thing that you won't get is middleware insights. Its possible that we can light middleware but we are trying to understand more about what Hapi users would find really useful. Do you have any thoughts of what would be most valuable?

@atrauzzi
Copy link
Author

Ah yes, so it does appear to be working, I was making the mistake of not initializing glimpse before my first hapi import. That's one item that I might suggest be improved if possible, I'll open a separate ticket for it.

Specific to hapi though, I'll spend some time with things although I suspect if you run down the feature list of what hapi as a framework offers, there may be more worth surfacing.

@atrauzzi
Copy link
Author

As a follow-on, I'll edit my opening comment for this ticket with a list of things I come up with as I encounter them.

@jchoi2x
Copy link

jchoi2x commented May 19, 2017

Super excited to see Glimpse show love to the node.js community. I can see Glimpse being a super-useful tool during development just like it is in ASP.net. Thank you to the Glimpse team.


  • Support tracing server-methods (and the hapi.js plugins that registered them) executed when request is made to hapi.js
  • Support showing metadata of plugins used in hapi.js server such as name, version, dependencies, plugin-level options, server-methods registered, server-decorations added, properties exposed via server.expose, routes registered, and handlers registered by plugin.
  • Show log data emitted by "logging-events" of hapi.js server when request sent to a route.

@avanderhoorn
Copy link
Member

This is great! Thanks @kizzlebot @atrauzzi

@jchoi2x
Copy link

jchoi2x commented May 24, 2017

I'm really dying to see full hapi.js support w/ @glimpse/glimpse. I think hapi.js's configuration-based approach along with it's plugin-registration system would allow glimpse to display a serious amount of useful information if glimpse can instrument the methods defined on the hapi.js server instance.

I don't know how glimpse works w/ exactly but perhaps the following information can help with progress? Sorry if I seem arrogant, inconsiderate, or impatient regarding this issue. I just see a lot of potential using glimpse w/ hapi.js versus express.js, mostly because hapi.js has a lot more metadata to work with than express.js.

  • Support tracing server-methods calls added by plugins
    • Server-methods are added via
      server.method({name: String, method: Function, options: Object})
  • Support showing metadata of plugins used in hapi.js server such as name, version, dependencies, plugin-level options, server-methods registered, server-decorations added, properties exposed via server.expose, routes registered, and handlers registered by plugin.
    • Each hapi.js plugin exports an object with
// pkgName.js hapi.js plugin
const internals = module.exports = {};
internals.register = (server, options, next) => { ... }
internals.register.attributes = {
  name: 'pkgName',
  version: '0.0.1',
  dependencies: ['blipp']
}

// Plugins are "registered" w/ server instance via
server.register({ 
  register: require('pkgName'),
  options: { ... }
})
  • Show log data emitted by "logging-events" of hapi.js server when request sent to a route.
    • hapi.js server instance has a server.on(evtName, callback) that can add listeners for logging events

@mike-kaufman mike-kaufman added this to the Backlog milestone May 31, 2017
@AdriVanHoudt
Copy link

I don't know how Glimpse does tracing but just general info about mysql, redis, ... query timing with query info would be very useful.
I guess if you do some patching you could do plugin initialization timings as well.
Just in general whatever you expose of express, expose the same thing from hapi. Not sure if there is a list somewhere, I could help map the express stuff to hapi if you want.
And ofc the things stated above are 👌

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants