@@ -201,12 +201,52 @@ export class SQLiteBoolean<T extends ColumnBaseConfig<'boolean', 'SQLiteBoolean'
201201 }
202202}
203203
204+ export type SQLiteIntegerBigIntBuilderInitial < TName extends string > = SQLiteIntegerBigIntBuilder < {
205+ name : TName ;
206+ dataType : 'bigint' ;
207+ columnType : 'SQLiteIntegerBigInt' ;
208+ data : bigint ;
209+ driverParam : string ;
210+ enumValues : undefined ;
211+ } > ;
212+
213+ export class SQLiteIntegerBigIntBuilder < T extends ColumnBuilderBaseConfig < 'bigint' , 'SQLiteIntegerBigInt' > >
214+ extends SQLiteBaseIntegerBuilder < T >
215+ {
216+ static override readonly [ entityKind ] : string = 'SQLiteIntegerBigIntBuilder' ;
217+
218+ constructor ( name : T [ 'name' ] ) {
219+ super ( name , 'bigint' , 'SQLiteIntegerBigInt' ) ;
220+ }
221+
222+ /** @internal */
223+ override build < TTableName extends string > (
224+ table : AnySQLiteTable < { name : TTableName } > ,
225+ ) : SQLiteIntegerBigInt < MakeColumnConfig < T , TTableName > > {
226+ return new SQLiteIntegerBigInt < MakeColumnConfig < T , TTableName > > (
227+ table ,
228+ this . config as ColumnBuilderRuntimeConfig < any , any > ,
229+ ) ;
230+ }
231+ }
232+
233+ export class SQLiteIntegerBigInt < T extends ColumnBaseConfig < 'bigint' , 'SQLiteIntegerBigInt' > >
234+ extends SQLiteBaseInteger < T >
235+ {
236+ static override readonly [ entityKind ] : string = 'SQLiteIntegerBigInt' ;
237+
238+ override mapFromDriverValue = BigInt ;
239+
240+ override mapToDriverValue = String ;
241+ }
242+
204243export interface IntegerConfig <
205- TMode extends 'number' | 'timestamp' | 'timestamp_ms' | 'boolean' =
244+ TMode extends 'number' | 'timestamp' | 'timestamp_ms' | 'boolean' | 'bigint' =
206245 | 'number'
207246 | 'timestamp'
208247 | 'timestamp_ms'
209- | 'boolean' ,
248+ | 'boolean'
249+ | 'bigint' ,
210250> {
211251 mode : TMode ;
212252}
@@ -216,12 +256,14 @@ export function integer<TMode extends IntegerConfig['mode']>(
216256 config ?: IntegerConfig < TMode > ,
217257) : Or < Equal < TMode , 'timestamp' > , Equal < TMode , 'timestamp_ms' > > extends true ? SQLiteTimestampBuilderInitial < '' >
218258 : Equal < TMode , 'boolean' > extends true ? SQLiteBooleanBuilderInitial < '' >
259+ : Equal < TMode , 'bigint' > extends true ? SQLiteIntegerBigIntBuilderInitial < '' >
219260 : SQLiteIntegerBuilderInitial < '' > ;
220261export function integer < TName extends string , TMode extends IntegerConfig [ 'mode' ] > (
221262 name : TName ,
222263 config ?: IntegerConfig < TMode > ,
223264) : Or < Equal < TMode , 'timestamp' > , Equal < TMode , 'timestamp_ms' > > extends true ? SQLiteTimestampBuilderInitial < TName >
224265 : Equal < TMode , 'boolean' > extends true ? SQLiteBooleanBuilderInitial < TName >
266+ : Equal < TMode , 'bigint' > extends true ? SQLiteIntegerBigIntBuilderInitial < TName >
225267 : SQLiteIntegerBuilderInitial < TName > ;
226268export function integer ( a ?: string | IntegerConfig , b ?: IntegerConfig ) {
227269 const { name, config } = getColumnNameAndConfig < IntegerConfig | undefined > ( a , b ) ;
@@ -231,6 +273,9 @@ export function integer(a?: string | IntegerConfig, b?: IntegerConfig) {
231273 if ( config ?. mode === 'boolean' ) {
232274 return new SQLiteBooleanBuilder ( name , config . mode ) ;
233275 }
276+ if ( config ?. mode === 'bigint' ) {
277+ return new SQLiteIntegerBigIntBuilder ( name ) ;
278+ }
234279 return new SQLiteIntegerBuilder ( name ) ;
235280}
236281
0 commit comments