diff --git a/biome.json b/biome.json index e0f27e6..aa3c6ef 100644 --- a/biome.json +++ b/biome.json @@ -17,7 +17,8 @@ "noUnusedImports": "error", "noUnusedPrivateClassMembers": "error", "noUnusedVariables": "error", - "useHookAtTopLevel": "error" + "useHookAtTopLevel": "error", + "noConstantCondition": "warn" }, "nursery": { "noDuplicateCustomProperties": "error", @@ -36,20 +37,6 @@ "useFilenamingConvention": "error", "useForOf": "error", "useFragmentSyntax": "error", - "useNamingConvention": { - "level": "warn", - "options": { - "strictCase": false, - "conventions": [ - { - "selector": { - "kind": "objectLiteralMember" - }, - "formats": ["camelCase", "snake_case"] - } - ] - } - }, "useShorthandArrayType": "error", "useShorthandAssign": "error", "useSingleCaseStatement": "error" @@ -58,7 +45,8 @@ "noDuplicateAtImportRules": "error", "noEmptyBlock": "error", "useErrorMessage": "error", - "useAwait": "error" + "useAwait": "error", + "noExplicitAny": "warn" } } }, diff --git a/src/index.ts b/src/index.ts index 0d62637..d8a6a9e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -65,7 +65,7 @@ type SchemQlOptions = { type QueryFns = Record<'first' | 'firstOrThrow' | 'all', QueryFn>> type QueryFn = (sql: string, params?: TParams) => TQueryResult | Promise -type QueryExecutor = < +type QueryExecutor<_TMethod extends keyof QueryFns, DB> = < TQueryResult = unknown, TParams extends Record = Record, TParamsSchema extends z.ZodTypeAny | undefined = undefined, diff --git a/tests/index.test.ts b/tests/index.test.ts index e084709..984259f 100644 --- a/tests/index.test.ts +++ b/tests/index.test.ts @@ -11,7 +11,7 @@ const normalizeString = (str: string) => { const schemQlConfigured = new SchemQl({ queryFns: { all: (sql, params) => { - assert.strictEqual(sql, `SELECT * FROM users WHERE id = :id`) + assert.strictEqual(sql, 'SELECT * FROM users WHERE id = :id') assert.deepEqual(params, { id: 'uuid-1', }) @@ -50,7 +50,7 @@ describe('SchemQl - global options', () => { it('should return the expected result, using override queriesFn if provided', async () => { const results = await schemQlConfigured.all({ queryFn: (sql, params) => { - assert.strictEqual(sql, `SELECT * FROM users WHERE id = :id`) + assert.strictEqual(sql, 'SELECT * FROM users WHERE id = :id') assert.deepEqual(params, { id: 'uuid-1', }) @@ -90,7 +90,7 @@ const schemQlUnconfigured = new SchemQl({ }) describe('SchemQl - queryFn related', () => { - it('should throw an error if queryFn is missing', async () => { + it('should throw an error if queryFn is missing', () => { assert.rejects( async () => { await schemQlUnconfigured.all({})('SELECT * FROM users') @@ -104,9 +104,9 @@ describe('SchemQl - queryFn related', () => { it('should return the expected result with queryFn as a Promise', async () => { const results = await schemQlUnconfigured.all({ - queryFn: async (sql, params) => { - assert.strictEqual(sql, `SELECT * FROM users`) - return Promise.resolve([ + queryFn: async (sql, _params) => { + assert.strictEqual(sql, 'SELECT * FROM users') + return await Promise.resolve([ { id: 'uuid-1', email: 'john@doe.com', @@ -133,8 +133,8 @@ describe('SchemQl - queryFn related', () => { describe('SchemQl - resultSchema related', () => { it('should return the expected result, parsed by resultSchema if provided', async () => { const results = await schemQlUnconfigured.all({ - queryFn: (sql, params) => { - assert.strictEqual(sql, `SELECT * FROM users`) + queryFn: (sql, _params) => { + assert.strictEqual(sql, 'SELECT * FROM users') return [ { id: 'uuid-1', @@ -164,7 +164,7 @@ describe('SchemQl - paramsSchema related', () => { it('should return the expected result, params parsed by paramsSchema if provided', async () => { const result = await schemQlUnconfigured.first({ queryFn: (sql, params) => { - assert.strictEqual(sql, `SELECT * FROM users WHERE id = :id`) + assert.strictEqual(sql, 'SELECT * FROM users WHERE id = :id') assert.deepEqual(params, { id: '1' }) return { id: 'uuid-1', @@ -347,7 +347,7 @@ describe('SchemQl - sql literal advanced', () => { true, s.sql` WHERE - ${'@users.id-'} ${s.sqlRaw('next' === 'next' ? '>' : '<')} ${':cursor'} + ${'@users.id-'} ${s.sqlRaw(true ? '>' : '<')} ${':cursor'} ${s.sqlCond(true, s.sql`AND ${s.sqlCond(false, '1=1', '0=0')}`)} ` )}