TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1import { customType, numeric, timestamp, text, jsonb } from 'drizzle-orm/pg-core';2import { sql } from 'drizzle-orm';34/** NUMERIC(18,4) mapped to JS number (values above 2^53 are not expected for collectibles). */5export const money = (name: string) =>6 numeric(name, { precision: 18, scale: 4, mode: 'number' });78export const ratio = (name: string) => numeric(name, { precision: 8, scale: 6, mode: 'number' });910export const ts = (name: string) => timestamp(name, { withTimezone: true, mode: 'date' });1112export const createdAt = () => ts('created_at').notNull().defaultNow();13export const updatedAt = () => ts('updated_at').notNull().defaultNow();1415export const tsvector = customType<{ data: string }>({16 dataType() {17 return 'tsvector';18 },19});2021export const textArray = (name: string) => text(name).array().notNull().default(sql`'{}'::text[]`);22export const jsonObject = <T extends Record<string, unknown>>(name: string) => jsonb(name).$type<T>().notNull().default(sql`'{}'::jsonb`);23export const jsonArray = <T>(name: string) => jsonb(name).$type<T[]>().notNull().default(sql`'[]'::jsonb`);24