File tree Expand file tree Collapse file tree
javascript/ql/lib/semmle/javascript/frameworks Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -297,6 +297,35 @@ private module Sqlite {
297297 }
298298}
299299
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+
300329/**
301330 * Provides classes modeling the `mssql` package.
302331 */
You can’t perform that action at this time.
0 commit comments