@@ -14,16 +14,24 @@ module Hapi {
1414 // `server = new Hapi.Server()`
1515 this = DataFlow:: moduleMember ( "hapi" , "Server" ) .getAnInstantiation ( )
1616 or
17- // server = Glue.compose(manifest, composeOptions)
17+ // ` server = Glue.compose(manifest, composeOptions)`
1818 this = DataFlow:: moduleMember ( "@hapi/glue" , "compose" ) .getAnInvocation ( )
1919 or
20- // server inside a plugin
21- // TODO match `function (server, options)`
20+ // `register (server, options)`
2221 exists ( Function f |
2322 this .( DataFlow:: ParameterNode ) .getParameter ( ) = f .getParameter ( 0 ) and
23+ f .getName ( ) = "register" and
2424 f .getParameter ( 0 ) .getName ( ) = "server" and
2525 f .getParameter ( 1 ) .getName ( ) = "options"
2626 )
27+ or
28+ // `const after = function (server) {...};`
29+ // `server.dependency('name', after);`
30+ exists ( ServerDefinition server , DataFlow:: MethodCallNode call |
31+ call = server .ref ( ) .getAMethodCall ( ) and
32+ call .getMethodName ( ) = "dependency" and
33+ this = call .getArgument ( 1 ) .( DataFlow:: FunctionNode ) .getParameter ( 0 )
34+ )
2735 }
2836 }
2937
@@ -261,7 +269,7 @@ module Hapi {
261269 RouteHandlerCandidate ( ) {
262270 exists ( string request , string responseToolkit |
263271 ( request = "request" or request = "req" ) and
264- responseToolkit = "h" and
272+ responseToolkit = [ "h" , "hapi" ] and
265273 // heuristic: parameter names match the Hapi documentation
266274 astNode .getNumParameter ( ) = 2 and
267275 astNode .getParameter ( 0 ) .getName ( ) = request and
0 commit comments