* Transform object keys and encode values (e.g. for SQLite, date -> number)
(
values: Record<string, unknown>,
table: AnyTable,
generateDefault: boolean
)
| 173 | * Transform object keys and encode values (e.g. for SQLite, date -> number) |
| 174 | */ |
| 175 | function encodeValues( |
| 176 | values: Record<string, unknown>, |
| 177 | table: AnyTable, |
| 178 | generateDefault: boolean |
| 179 | ) { |
| 180 | const result: Record<string, unknown> = {}; |
| 181 | |
| 182 | for (const k in table.columns) { |
| 183 | const col = table.columns[k]; |
| 184 | let value = values[k]; |
| 185 | |
| 186 | if (generateDefault && value === undefined) { |
| 187 | // prefer generating them on runtime to avoid SQLite's problem with column default value being ignored when insert |
| 188 | value = col.generateDefaultValue(); |
| 189 | } |
| 190 | |
| 191 | if (value !== undefined) { |
| 192 | result[col.names.sql] = serialize(value, col, provider); |
| 193 | } |
| 194 | } |
| 195 | |
| 196 | return result; |
| 197 | } |
| 198 | |
| 199 | /** |
| 200 | * Transform object keys and decode values |
no test coverage detected