From cfe3e653642584c5ab8779c4232253723e21d6ff Mon Sep 17 00:00:00 2001 From: Sergii Date: Mon, 29 Mar 2021 12:27:20 +0300 Subject: [PATCH] feat: adds `raw` property to error and debug parameters Fixes #140 --- lib/index.js | 5 +++-- tests/index.js | 7 ++++++- types/index.d.ts | 8 ++++++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/index.js b/lib/index.js index e95b12b8..84c1854c 100644 --- a/lib/index.js +++ b/lib/index.js @@ -525,14 +525,15 @@ function Postgres(a, b) { function getType(x) { if (x == null) - return { type: 0, value: x } + return { type: 0, value: x, raw: x } const value = x.type ? x.value : x , type = x.type || inferType(value) return { type, - value: (options.serializers[type] || types.string.serialize)(value) + value: (options.serializers[type] || types.string.serialize)(value), + raw: x } } } diff --git a/tests/index.js b/tests/index.js index ac2f1b2e..6fefd78b 100644 --- a/tests/index.js +++ b/tests/index.js @@ -1075,11 +1075,16 @@ t('Error contains query string', async() => [ (await sql`selec 1`.catch(err => err.query)) ]) -t('Error contains query parameters', async() => [ +t('Error contains query serialized parameters', async() => [ '1', (await sql`selec ${ 1 }`.catch(err => err.parameters[0].value)) ]) +t('Error contains query raw parameters', async() => [ + 1, + (await sql`selec ${ 1 }`.catch(err => err.parameters[0].raw)) +]) + t('Query string is not enumerable', async() => { const sql = postgres({ ...options, debug: false }) return [ diff --git a/types/index.d.ts b/types/index.d.ts index 8e3e5d15..1b96b442 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -175,9 +175,13 @@ declare namespace postgres { */ type: number; /** - * Value to serialize + * Serialized value */ - value: T; + value: string; + /** + * Raw value to serialize + */ + raw: T; } interface ArrayParameter extends Parameter {