diff --git a/src/client.ts b/src/client.ts index a80a80d..5234183 100644 --- a/src/client.ts +++ b/src/client.ts @@ -189,10 +189,17 @@ export class SQLocal { }; sql = async >( - queryTemplate: TemplateStringsArray, + queryTemplate: TemplateStringsArray | string, ...params: unknown[] ): Promise => { - const statement = sqlTag(queryTemplate, ...params); + let statement: Statement; + + if (typeof queryTemplate === 'string') { + statement = { sql: queryTemplate, params }; + } else { + statement = sqlTag(queryTemplate, ...params); + } + const resultRecords = await this.execAndConvert(statement); return resultRecords; }; diff --git a/test/sql.test.ts b/test/sql.test.ts index 113eb4e..b80b6aa 100644 --- a/test/sql.test.ts +++ b/test/sql.test.ts @@ -44,6 +44,10 @@ describe('sql', () => { const select2 = await sql`SELECT name FROM groceries ORDER BY id DESC`; expect(select2).toEqual([{ name: 'white rice' }, { name: 'bread' }]); + + const sqlStr = 'SELECT name FROM groceries WHERE id = ?'; + const select3 = await sql(sqlStr, 1); + expect(select3).toEqual([{ name: 'bread' }]); }); it('should be cross-origin isolated', () => {