@@ -38,11 +38,22 @@ string getAStandardLoggerMethodName() {
3838 */
3939private module Console {
4040 /**
41- * Gets a data flow source node for the console library .
41+ * An API entrypoint for the global ` console` variable .
4242 */
43- private DataFlow:: SourceNode console ( ) {
44- result = DataFlow:: moduleImport ( "console" ) or
45- result = DataFlow:: globalVarRef ( "console" )
43+ private class ConsoleGlobalEntry extends API:: EntryPoint {
44+ ConsoleGlobalEntry ( ) { this = "ConsoleGlobalEntry" }
45+
46+ override DataFlow:: SourceNode getAUse ( ) { result = DataFlow:: globalVarRef ( "console" ) }
47+
48+ override DataFlow:: Node getARhs ( ) { none ( ) }
49+ }
50+
51+ /**
52+ * Gets a api node for the console library.
53+ */
54+ private API:: Node console ( ) {
55+ result = API:: moduleImport ( "console" ) or
56+ result = API:: root ( ) .getASuccessor ( any ( ConsoleGlobalEntry e ) )
4657 }
4758
4859 /**
@@ -56,7 +67,7 @@ private module Console {
5667 name = getAStandardLoggerMethodName ( ) or
5768 name = "assert"
5869 ) and
59- this = console ( ) .getAMemberCall ( name )
70+ this = console ( ) .getMember ( name ) . getACall ( )
6071 }
6172
6273 override DataFlow:: Node getAMessageComponent ( ) {
@@ -85,7 +96,7 @@ private module Loglevel {
8596 */
8697 class LoglevelLoggerCall extends LoggerCall {
8798 LoglevelLoggerCall ( ) {
88- this = DataFlow :: moduleMember ( "loglevel" , getAStandardLoggerMethodName ( ) ) .getACall ( )
99+ this = API :: moduleImport ( "loglevel" ) . getMember ( getAStandardLoggerMethodName ( ) ) .getACall ( )
89100 }
90101
91102 override DataFlow:: Node getAMessageComponent ( ) { result = getAnArgument ( ) }
@@ -102,9 +113,11 @@ private module Winston {
102113 class WinstonLoggerCall extends LoggerCall , DataFlow:: MethodCallNode {
103114 WinstonLoggerCall ( ) {
104115 this =
105- DataFlow:: moduleMember ( "winston" , "createLogger" )
116+ API:: moduleImport ( "winston" )
117+ .getMember ( "createLogger" )
118+ .getReturn ( )
119+ .getMember ( getAStandardLoggerMethodName ( ) )
106120 .getACall ( )
107- .getAMethodCall ( getAStandardLoggerMethodName ( ) )
108121 }
109122
110123 override DataFlow:: Node getAMessageComponent ( ) {
@@ -125,9 +138,11 @@ private module log4js {
125138 class Log4jsLoggerCall extends LoggerCall {
126139 Log4jsLoggerCall ( ) {
127140 this =
128- DataFlow:: moduleMember ( "log4js" , "getLogger" )
141+ API:: moduleImport ( "log4js" )
142+ .getMember ( "getLogger" )
143+ .getReturn ( )
144+ .getMember ( getAStandardLoggerMethodName ( ) )
129145 .getACall ( )
130- .getAMethodCall ( getAStandardLoggerMethodName ( ) )
131146 }
132147
133148 override DataFlow:: Node getAMessageComponent ( ) { result = getAnArgument ( ) }
@@ -145,7 +160,7 @@ private module Npmlog {
145160 string name ;
146161
147162 Npmlog ( ) {
148- this = DataFlow :: moduleMember ( "npmlog" , name ) .getACall ( ) and
163+ this = API :: moduleImport ( "npmlog" ) . getMember ( name ) .getACall ( ) and
149164 name = getAStandardLoggerMethodName ( )
150165 }
151166
@@ -170,8 +185,8 @@ private module Fancylog {
170185 */
171186 class Fancylog extends LoggerCall {
172187 Fancylog ( ) {
173- this = DataFlow :: moduleMember ( "fancy-log" , getAStandardLoggerMethodName ( ) ) .getACall ( ) or
174- this = DataFlow :: moduleImport ( "fancy-log" ) .getACall ( )
188+ this = API :: moduleImport ( "fancy-log" ) . getMember ( getAStandardLoggerMethodName ( ) ) .getACall ( ) or
189+ this = API :: moduleImport ( "fancy-log" ) .getACall ( )
175190 }
176191
177192 override DataFlow:: Node getAMessageComponent ( ) { result = getAnArgument ( ) }
0 commit comments