ForbesLindesay/atdatabases

Return type of `Queryable.query` is wrong when query is not `SELECT`

silane opened this issue · 0 comments

query(query: SQLQuery): Promise<any[]>;

Return type of Queryable.query is declared to be Promise<any[]> but this is correct only when in SELECT query and not INSERT or DELETE or something else. When INSERT, the returned value seems to be object like follows.

ResultSetHeader {
  fieldCount: 0,
  affectedRows: 0,
  insertId: 0,
  info: "Records: 0  Duplicates: 0  Warnings: 0",
  serverStatus: 2,
  warningStatus: 0
}

I'm getting TypeScript error when reading affectedRows, but it actually works at runtime.

スクリーンショット 2024-03-19 004352

Using @databases/mysql, but may be the same for other DBs.