File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed
javascript/ql/lib/semmle/javascript/frameworks Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -297,6 +297,35 @@ private module Sqlite {
297
297
}
298
298
}
299
299
300
+ /**
301
+ * Provides classes modeling the `better-sqlite3` package.
302
+ */
303
+ private module BetterSqlite3 {
304
+ /** Gets an expression that constructs or returns a better-sqlite3 database instance. */
305
+ API:: Node database ( ) {
306
+ result =
307
+ [
308
+ API:: moduleImport ( "better-sqlite3" ) .getMember ( "Database" ) ,
309
+ API:: moduleImport ( "better-sqlite3" ) .getReturn ( )
310
+ ]
311
+ }
312
+
313
+ /** A call to a better-sqlite3 query method. */
314
+ private class QueryCall extends DatabaseAccess , DataFlow:: MethodCallNode {
315
+ QueryCall ( ) {
316
+ this = database ( ) .getMember ( [ "exec" , "prepare" ] ) .getACall ( ) or
317
+ this = database ( ) .getMember ( "exec" ) .getReturn ( ) .getMember ( "prepare" ) .getACall ( )
318
+ }
319
+
320
+ override DataFlow:: Node getAQueryArgument ( ) { result = this .getArgument ( 0 ) }
321
+ }
322
+
323
+ /** An expression that is passed to the `query` method and hence interpreted as SQL. */
324
+ class QueryString extends SQL:: SqlString {
325
+ QueryString ( ) { this = any ( QueryCall qc ) .getAQueryArgument ( ) }
326
+ }
327
+ }
328
+
300
329
/**
301
330
* Provides classes modeling the `mssql` package.
302
331
*/
You can’t perform that action at this time.
0 commit comments