Code that uses await here for a synchronous call:
export class MyDurableObject extends DurableObject {
async query() {
const rows = await this.ctx.storage.sql.exec("select 1");
return rows;
}
}ast-grep invocation (dry-run/lint):
ast-grep scan --rule .rules/synchronous-storage-sql-codemod.yaml ./path/to/codebase
# Outputs:
/src/await-example.ts:7:18: warning[no-await-storage-sql]: Remove await; storage.sql.* is synchronous.ast-grep invocation (rewrite/update):
ast-grep scan --rule .rules/synchronous-storage-sql-codemod.yaml -U ./path/to/codebaseafter:
export class MyDurableObject extends DurableObject {
async query() {
const rows = this.ctx.storage.sql.exec("select 1");
return rows;
}
}