Skip to content

Commit 9e83e7f

Browse files
authoredApr 5, 2021
feat: adds raw property to error and debug parameters (porsager#167)
* feat: adds `raw` property to error and debug parameters Fixes porsager#140 * fix(types): adds `null` as additional type to `Parameter.raw` and `Parameter.value`
1 parent a6394c1 commit 9e83e7f

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed
 

‎lib/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -525,14 +525,15 @@ function Postgres(a, b) {
525525

526526
function getType(x) {
527527
if (x == null)
528-
return { type: 0, value: x }
528+
return { type: 0, value: x, raw: x }
529529

530530
const value = x.type ? x.value : x
531531
, type = x.type || inferType(value)
532532

533533
return {
534534
type,
535-
value: (options.serializers[type] || types.string.serialize)(value)
535+
value: (options.serializers[type] || types.string.serialize)(value),
536+
raw: x
536537
}
537538
}
538539
}

‎tests/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1075,11 +1075,16 @@ t('Error contains query string', async() => [
10751075
(await sql`selec 1`.catch(err => err.query))
10761076
])
10771077

1078-
t('Error contains query parameters', async() => [
1078+
t('Error contains query serialized parameters', async() => [
10791079
'1',
10801080
(await sql`selec ${ 1 }`.catch(err => err.parameters[0].value))
10811081
])
10821082

1083+
t('Error contains query raw parameters', async() => [
1084+
1,
1085+
(await sql`selec ${ 1 }`.catch(err => err.parameters[0].raw))
1086+
])
1087+
10831088
t('Query string is not enumerable', async() => {
10841089
const sql = postgres({ ...options, debug: false })
10851090
return [

‎types/index.d.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,13 @@ declare namespace postgres {
175175
*/
176176
type: number;
177177
/**
178-
* Value to serialize
178+
* Serialized value
179179
*/
180-
value: T;
180+
value: string | null;
181+
/**
182+
* Raw value to serialize
183+
*/
184+
raw: T | null;
181185
}
182186

183187
interface ArrayParameter<T extends SerializableParameter[] = SerializableParameter[]> extends Parameter<T | T[]> {

0 commit comments

Comments
 (0)