@@ -42,6 +42,10 @@ export class SqliteBuilder<DB extends Record<string, any>> {
42
42
private logger ?: DBLogger
43
43
private serializer = defaultSerializer
44
44
45
+ /**
46
+ * sqlite builder
47
+ * @param options options
48
+ */
45
49
constructor ( options : SqliteBuilderOptions ) {
46
50
const {
47
51
dialect,
@@ -123,6 +127,7 @@ export class SqliteBuilder<DB extends Record<string, any>> {
123
127
124
128
private logError ( e : unknown , errorMsg ?: string ) {
125
129
errorMsg && this . logger ?. error ( errorMsg , e instanceof Error ? e : undefined )
130
+ return undefined
126
131
}
127
132
128
133
/**
@@ -139,12 +144,10 @@ export class SqliteBuilder<DB extends Record<string, any>> {
139
144
. execute ( async ( trx ) => {
140
145
this . trx = trx
141
146
this . logger ?. debug ( 'run in transaction' )
142
- const result = await fn ( trx )
143
- return result
147
+ return await fn ( trx )
144
148
} )
145
149
} catch ( e ) {
146
- this . logError ( e , errorMsg )
147
- return undefined
150
+ return this . logError ( e , errorMsg )
148
151
} finally {
149
152
this . trx = undefined
150
153
}
@@ -155,16 +158,14 @@ export class SqliteBuilder<DB extends Record<string, any>> {
155
158
this . logger ?. debug ( `run in savepoint:${ this . trxCount } ` )
156
159
157
160
try {
158
- // @ts -expect-error _db assert Transaction
159
- const result = await fn ( _db )
161
+ const result = await fn ( _db as Transaction < DB > )
160
162
await sp . release ( )
161
163
this . trxCount --
162
164
return result
163
165
} catch ( e ) {
164
166
await sp . rollback ( )
165
- this . logError ( e , errorMsg )
166
167
this . trxCount --
167
- return undefined
168
+ return this . logError ( e , errorMsg )
168
169
}
169
170
}
170
171
@@ -174,38 +175,28 @@ export class SqliteBuilder<DB extends Record<string, any>> {
174
175
*/
175
176
public async execute < O > (
176
177
fn : ( db : Kysely < DB > | Transaction < DB > ) => AvailableBuilder < DB , O > ,
177
- errorMsg ?: string ,
178
178
) : Promise < Simplify < O > [ ] | undefined > {
179
- try {
180
- return await fn ( this . getDB ( ) ) . execute ( )
181
- } catch ( e ) {
182
- this . logError ( e , errorMsg )
183
- return undefined
184
- }
179
+ return await fn ( this . getDB ( ) ) . execute ( )
185
180
}
186
181
187
182
/**
188
183
* execute and return first result,
189
184
* auto detect transaction, auto catch error
185
+ *
186
+ * if is select, auto append `.limit(1)`
190
187
*/
191
188
public async executeTakeFirst < O > (
192
189
fn : ( db : Kysely < DB > | Transaction < DB > ) => AvailableBuilder < DB , O > ,
193
- errorMsg ?: string ,
194
190
) : Promise < Simplify < O > | undefined > {
195
- try {
196
- let _sql = fn ( this . getDB ( ) )
197
- if ( isSelectQueryBuilder ( _sql ) ) {
198
- _sql = _sql . limit ( 1 )
199
- }
200
- return await _sql . executeTakeFirstOrThrow ( )
201
- } catch ( e ) {
202
- this . logError ( e , errorMsg )
203
- return undefined
191
+ let _sql = fn ( this . getDB ( ) )
192
+ if ( isSelectQueryBuilder ( _sql ) ) {
193
+ _sql = _sql . limit ( 1 )
204
194
}
195
+ return await _sql . executeTakeFirstOrThrow ( )
205
196
}
206
197
207
198
/**
208
- * precompile query, call it later
199
+ * precompile query, call it with different params later
209
200
*
210
201
* used for better performance, details: {@link precompileQuery}
211
202
*/
@@ -222,14 +213,8 @@ export class SqliteBuilder<DB extends Record<string, any>> {
222
213
*/
223
214
public async executeCompiled < O > (
224
215
query : CompiledQuery < O > ,
225
- errorMsg ?: string ,
226
- ) : Promise < QueryResult < O > | undefined > {
227
- try {
228
- return await this . getDB ( ) . executeQuery ( query )
229
- } catch ( e ) {
230
- this . logError ( e , errorMsg )
231
- return undefined
232
- }
216
+ ) : Promise < QueryResult < O > > {
217
+ return await this . getDB ( ) . executeQuery ( query )
233
218
}
234
219
235
220
/**
@@ -238,9 +223,8 @@ export class SqliteBuilder<DB extends Record<string, any>> {
238
223
*/
239
224
public async executeCompiledTakeList < O > (
240
225
query : CompiledQuery < O > ,
241
- errorMsg ?: string ,
242
- ) : Promise < O [ ] | undefined > {
243
- const ret = await this . executeCompiled ( query , errorMsg )
226
+ ) : Promise < O [ ] > {
227
+ const ret = await this . executeCompiled ( query )
244
228
return ret ?. rows
245
229
}
246
230
@@ -250,16 +234,10 @@ export class SqliteBuilder<DB extends Record<string, any>> {
250
234
*/
251
235
public async raw < O = unknown > (
252
236
rawSql : RawBuilder < O > | string ,
253
- errorMsg ?: string ,
254
- ) : Promise < QueryResult < O | unknown > | undefined > {
255
- try {
256
- return typeof rawSql === 'string'
257
- ? await this . getDB ( ) . executeQuery ( CompiledQuery . raw ( rawSql ) )
258
- : await rawSql . execute ( this . getDB ( ) )
259
- } catch ( e ) {
260
- this . logError ( e , errorMsg )
261
- return undefined
262
- }
237
+ ) : Promise < QueryResult < O | unknown > > {
238
+ return typeof rawSql === 'string'
239
+ ? await this . getDB ( ) . executeQuery ( CompiledQuery . raw ( rawSql ) )
240
+ : await rawSql . execute ( this . getDB ( ) )
263
241
}
264
242
265
243
/**
0 commit comments