Skip to content

Commit b1b46a0

Browse files
committed
fix(builder): fix preCompile return type
1 parent 1243e78 commit b1b46a0

File tree

4 files changed

+18
-6
lines changed

4 files changed

+18
-6
lines changed

packages/sqlite-builder/src/builder.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import type { Compilable, CompiledQuery, KyselyPlugin, LogEvent, QueryResult, RawBuilder, Sql, Transaction } from 'kysely'
22
import { Kysely, sql } from 'kysely'
33
import { SqliteSerializePlugin } from 'kysely-plugin-serialize'
4-
import { parseTableMap, preCompile, runCreateTable } from './util'
4+
import { parseTableMap, preCompile, runCreateTable } from './utils'
55
import type { AvailableBuilder, Logger, SqliteBuilderOption, Table } from './types'
66
import { Stack } from './stack'
7-
import type { QueryBuilderOutput } from './util'
7+
import type { QueryBuilderOutput } from './utils'
88

99
const enum DBStatus {
1010
'needDrop',
@@ -118,7 +118,7 @@ export class SqliteBuilder<DB extends Record<string, any>> {
118118

119119
public preCompile<O>(
120120
queryBuilder: (db: Kysely<DB> | Transaction<DB>) => QueryBuilderOutput<Compilable<O>>,
121-
): ReturnType<typeof preCompile> {
121+
): ReturnType<typeof preCompile<DB, O>> {
122122
return preCompile(this.kysely, queryBuilder)
123123
}
124124

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export * from './builder'
22
export * from './types'
3-
export { createTimeTrigger, parseTableMap, runCreateTable, preCompile } from './util'
3+
export { createTimeTrigger, parseTableMap, runCreateTable, preCompile } from './utils'
File renamed without changes.

test/builder.test.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { Generated } from 'kysely'
22
import { SqliteDialect } from 'kysely'
33
import Database from 'better-sqlite3'
44
import { beforeAll, describe, expect, test } from 'vitest'
5-
import { SqliteBuilder, preCompile } from '../packages/sqlite-builder/src'
5+
import { SqliteBuilder } from '../packages/sqlite-builder/src'
66

77
interface DB {
88
test: TestTable
@@ -71,10 +71,22 @@ describe('test builder', async () => {
7171
expect(parameters).toStrictEqual(['{"name":"1"}'])
7272
})
7373
test('preCompile', async () => {
74-
const fn = preCompile(db.kysely, db => db.selectFrom('test').selectAll())
74+
const fn = db.preCompile(db => db.selectFrom('test').selectAll())
7575
.setParam<{ person: { name: string } }>((qb, param) => qb.where('person', '=', param('person')))
76+
77+
const start = performance.now()
78+
7679
const { parameters, sql } = fn({ person: { name: '1' } })
7780
expect(sql).toBe('select * from "test" where "person" = ?')
7881
expect(parameters).toStrictEqual(['{"name":"1"}'])
82+
83+
const start2 = performance.now()
84+
console.log('no compiled:', `${(start2 - start).toFixed(2)}ms`)
85+
86+
const { parameters: p1, sql: s1 } = fn({ person: { name: 'test' } })
87+
expect(s1).toBe('select * from "test" where "person" = ?')
88+
expect(p1).toStrictEqual(['{"name":"test"}'])
89+
90+
console.log(' compiled:', `${(performance.now() - start2).toFixed(2)}ms`)
7991
})
8092
})

0 commit comments

Comments
 (0)