import { sql as _sql } from 'drizzle-orm'; import type { BooleanColumnInput, ColumnsConfig, DBConfigInput, DateColumnInput, JsonColumnInput, NumberColumnOpts, TableConfig, TextColumnOpts, } from '../core/types.js'; function createColumn>(type: S, schema: T) { return { type, /** * @internal */ schema, }; } export const column = { number: (opts: T = {} as T) => { return createColumn('number', opts) satisfies { type: 'number' }; }, boolean: (opts: T = {} as T) => { return createColumn('boolean', opts) satisfies { type: 'boolean' }; }, text: (opts: T = {} as T) => { return createColumn('text', opts) satisfies { type: 'text' }; }, date(opts: T = {} as T) { return createColumn('date', opts) satisfies { type: 'date' }; }, json(opts: T = {} as T) { return createColumn('json', opts) satisfies { type: 'json' }; }, }; export function defineTable(userConfig: TableConfig) { return userConfig; } export function defineDb(userConfig: DBConfigInput) { return userConfig; } // Exports a few common expressions export const NOW = _sql`CURRENT_TIMESTAMP`; export const TRUE = _sql`TRUE`; export const FALSE = _sql`FALSE`; export { sql, eq, gt, gte, lt, lte, ne, isNull, isNotNull, inArray, notInArray, exists, notExists, between, notBetween, like, ilike, notIlike, not, asc, desc, and, or, count, countDistinct, avg, avgDistinct, sum, sumDistinct, max, min, } from 'drizzle-orm'; export { alias } from 'drizzle-orm/sqlite-core'; export { isDbError } from './utils.js';