22 ArrayResult ,
33 ConflictUpsert ,
44 DefaultObject ,
5+ DefaultReturnObject ,
56 Delete ,
67 DeleteReturning ,
78 DeleteWithoutReturning ,
@@ -63,7 +64,9 @@ export class QueryBuilder<GenericResultWrapper> {
6364 } , `DROP TABLE ${ params . ifExists ? 'IF EXISTS' : '' } ${ params . tableName } ` )
6465 }
6566
66- fetchOne < GenericResult = DefaultObject > ( params : SelectOne ) : Query < OneResult < GenericResultWrapper , GenericResult > > {
67+ fetchOne < GenericResult = DefaultReturnObject > (
68+ params : SelectOne
69+ ) : Query < OneResult < GenericResultWrapper , GenericResult > > {
6770 return new Query (
6871 ( q : Query ) => {
6972 return this . execute ( q )
@@ -76,7 +79,9 @@ export class QueryBuilder<GenericResultWrapper> {
7679 )
7780 }
7881
79- fetchAll < GenericResult = DefaultObject > ( params : SelectAll ) : Query < ArrayResult < GenericResultWrapper , GenericResult > > {
82+ fetchAll < GenericResult = DefaultReturnObject > (
83+ params : SelectAll
84+ ) : Query < ArrayResult < GenericResultWrapper , GenericResult > > {
8085 return new Query (
8186 ( q : Query ) => {
8287 return this . execute ( q )
@@ -89,10 +94,14 @@ export class QueryBuilder<GenericResultWrapper> {
8994 )
9095 }
9196
92- raw < GenericResult = DefaultObject > ( params : RawQueryFetchOne ) : Query < OneResult < GenericResultWrapper , GenericResult > >
93- raw < GenericResult = DefaultObject > ( params : RawQueryFetchAll ) : Query < ArrayResult < GenericResultWrapper , GenericResult > >
94- raw < GenericResult = DefaultObject > ( params : RawQueryWithoutFetching ) : Query < GenericResultWrapper >
95- raw < GenericResult = DefaultObject > ( params : RawQuery ) : unknown {
97+ raw < GenericResult = DefaultReturnObject > (
98+ params : RawQueryFetchOne
99+ ) : Query < OneResult < GenericResultWrapper , GenericResult > >
100+ raw < GenericResult = DefaultReturnObject > (
101+ params : RawQueryFetchAll
102+ ) : Query < ArrayResult < GenericResultWrapper , GenericResult > >
103+ raw < GenericResult = DefaultReturnObject > ( params : RawQueryWithoutFetching ) : Query < GenericResultWrapper >
104+ raw < GenericResult = DefaultReturnObject > ( params : RawQuery ) : unknown {
96105 return new Query (
97106 ( q : Query ) => {
98107 return this . execute ( q )
@@ -103,10 +112,12 @@ export class QueryBuilder<GenericResultWrapper> {
103112 )
104113 }
105114
106- insert < GenericResult = DefaultObject > ( params : InsertOne ) : Query < OneResult < GenericResultWrapper , GenericResult > >
107- insert < GenericResult = DefaultObject > ( params : InsertMultiple ) : Query < ArrayResult < GenericResultWrapper , GenericResult > >
108- insert < GenericResult = DefaultObject > ( params : InsertWithoutReturning ) : Query < GenericResultWrapper >
109- insert < GenericResult = DefaultObject > ( params : Insert ) : unknown {
115+ insert < GenericResult = DefaultReturnObject > ( params : InsertOne ) : Query < OneResult < GenericResultWrapper , GenericResult > >
116+ insert < GenericResult = DefaultReturnObject > (
117+ params : InsertMultiple
118+ ) : Query < ArrayResult < GenericResultWrapper , GenericResult > >
119+ insert < GenericResult = DefaultReturnObject > ( params : InsertWithoutReturning ) : Query < GenericResultWrapper >
120+ insert < GenericResult = DefaultReturnObject > ( params : Insert ) : unknown {
110121 let args : any [ ] = [ ]
111122
112123 if ( typeof params . onConflict === 'object' ) {
@@ -146,11 +157,11 @@ export class QueryBuilder<GenericResultWrapper> {
146157 )
147158 }
148159
149- update < GenericResult = DefaultObject > (
160+ update < GenericResult = DefaultReturnObject > (
150161 params : UpdateReturning
151162 ) : Query < ArrayResult < GenericResultWrapper , GenericResult > >
152- update < GenericResult = DefaultObject > ( params : UpdateWithoutReturning ) : Query < GenericResultWrapper >
153- update < GenericResult = DefaultObject > ( params : Update ) : unknown {
163+ update < GenericResult = DefaultReturnObject > ( params : UpdateWithoutReturning ) : Query < GenericResultWrapper >
164+ update < GenericResult = DefaultReturnObject > ( params : Update ) : unknown {
154165 let args = this . _parse_arguments ( params . data )
155166
156167 if ( typeof params . where === 'object' && ! Array . isArray ( params . where ) && params . where ?. params ) {
@@ -167,11 +178,11 @@ export class QueryBuilder<GenericResultWrapper> {
167178 )
168179 }
169180
170- delete < GenericResult = DefaultObject > (
181+ delete < GenericResult = DefaultReturnObject > (
171182 params : DeleteReturning
172183 ) : Query < ArrayResult < GenericResultWrapper , GenericResult > >
173- delete < GenericResult = DefaultObject > ( params : DeleteWithoutReturning ) : Query < GenericResultWrapper >
174- delete < GenericResult = DefaultObject > ( params : Delete ) : unknown {
184+ delete < GenericResult = DefaultReturnObject > ( params : DeleteWithoutReturning ) : Query < GenericResultWrapper >
185+ delete < GenericResult = DefaultReturnObject > ( params : Delete ) : unknown {
175186 return new Query (
176187 ( q : Query ) => {
177188 return this . execute ( q )
@@ -184,7 +195,7 @@ export class QueryBuilder<GenericResultWrapper> {
184195 )
185196 }
186197
187- _parse_arguments ( row : Record < string , string | boolean | number | null | Raw > ) : Array < any > {
198+ _parse_arguments ( row : DefaultObject ) : Array < any > {
188199 // Raw parameters are placed directly in the query, and keeping them here would result in more parameters that are
189200 // expected in the query and could result in weird results or outright errors when using PostgreSQL
190201 return Object . values ( row ) . filter ( ( value ) => {
@@ -216,11 +227,18 @@ export class QueryBuilder<GenericResultWrapper> {
216227 _insert ( params : Insert ) : string {
217228 const rows = [ ]
218229
230+ let data : Array < DefaultObject >
219231 if ( ! Array . isArray ( params . data ) ) {
220- params . data = [ params . data ]
232+ data = [ params . data ]
233+ } else {
234+ data = params . data
235+ }
236+
237+ if ( ! data || ! data [ 0 ] || data . length === 0 ) {
238+ throw new Error ( 'Insert data is undefined' )
221239 }
222240
223- const columns = Object . keys ( params . data [ 0 ] ) . join ( ', ' )
241+ const columns = Object . keys ( data [ 0 ] ) . join ( ', ' )
224242 let index = 1
225243
226244 let orConflict = '' ,
@@ -243,7 +261,7 @@ export class QueryBuilder<GenericResultWrapper> {
243261 orConflict = this . _onConflict ( params . onConflict )
244262 }
245263
246- for ( const row of params . data ) {
264+ for ( const row of data ) {
247265 const values : Array < string > = [ ]
248266 Object . values ( row ) . forEach ( ( value ) => {
249267 if ( value instanceof Raw ) {
0 commit comments