package commontypes // TypeScriptTypeMap maps PostgreSQL types to TypeScript types var TypeScriptTypeMap = map[string]string{ // Integer types "integer": "number", "int": "number", "int4": "number", "smallint": "number", "int2": "number", "bigint": "number", "int8": "number", "serial": "number", "bigserial": "number", "smallserial": "number", // String types "text": "string", "varchar": "string", "char": "string", "character": "string", "citext": "string", "bpchar": "string", "uuid": "string", // Boolean "boolean": "boolean", "bool": "boolean", // Float types "real": "number", "float4": "number", "double precision": "number", "float8": "number", "numeric": "number", "decimal": "number", // Date/Time types "timestamp": "Date", "timestamp without time zone": "Date", "timestamp with time zone": "Date", "timestamptz": "Date", "date": "Date", "time": "Date", "time without time zone": "Date", "time with time zone": "Date", "timetz": "Date", // Binary "bytea": "Buffer", // JSON "json": "any", "jsonb": "any", // Array "array": "any[]", } // SQLToTypeScript converts SQL types to TypeScript types func SQLToTypeScript(sqlType string, nullable bool) string { baseType := ExtractBaseType(sqlType) tsType, ok := TypeScriptTypeMap[baseType] if !ok { tsType = "any" } // Handle nullable types if nullable { return tsType } return tsType + " | null" }