From 37c80ce82a5c0ec1942360221dd510ebc3b3e97c Mon Sep 17 00:00:00 2001 From: Anirudh Date: Thu, 27 Feb 2020 01:08:38 +0530 Subject: [PATCH 1/2] Add data field in serialization errors --- lib/Serializer.js | 4 ++-- lib/errors.d.ts | 6 ++++-- lib/errors.js | 10 ++++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/Serializer.js b/lib/Serializer.js index 1ff00e057..aa9d1065b 100644 --- a/lib/Serializer.js +++ b/lib/Serializer.js @@ -15,7 +15,7 @@ class Serializer { try { var json = JSON.stringify(object) } catch (err) { - throw new SerializationError(err.message) + throw new SerializationError(err.message, object) } return json } @@ -25,7 +25,7 @@ class Serializer { try { var object = sjson.parse(json) } catch (err) { - throw new DeserializationError(err.message) + throw new DeserializationError(err.message, json) } return object } diff --git a/lib/errors.d.ts b/lib/errors.d.ts index f9f122ac2..051ca1f1c 100644 --- a/lib/errors.d.ts +++ b/lib/errors.d.ts @@ -33,13 +33,15 @@ export declare class NoLivingConnectionsError extends ElasticsearchClientError { export declare class SerializationError extends ElasticsearchClientError { name: string; message: string; - constructor(message: string); + data: object; + constructor(message: string, data: object); } export declare class DeserializationError extends ElasticsearchClientError { name: string; message: string; - constructor(message: string); + data: object; + constructor(message: string, data: object); } export declare class ConfigurationError extends ElasticsearchClientError { diff --git a/lib/errors.js b/lib/errors.js index 27abb9794..2ea302fa1 100644 --- a/lib/errors.js +++ b/lib/errors.js @@ -42,20 +42,22 @@ class NoLivingConnectionsError extends ElasticsearchClientError { } class SerializationError extends ElasticsearchClientError { - constructor (message) { - super(message) + constructor (message, data) { + super(message, data) Error.captureStackTrace(this, SerializationError) this.name = 'SerializationError' this.message = message || 'Serialization Error' + this.data = data } } class DeserializationError extends ElasticsearchClientError { - constructor (message) { - super(message) + constructor (message, data) { + super(message, data) Error.captureStackTrace(this, DeserializationError) this.name = 'DeserializationError' this.message = message || 'Deserialization Error' + this.data = data } } From ce32fb36af1cad6456e1227cdd6d09632e66892c Mon Sep 17 00:00:00 2001 From: Anirudh Date: Tue, 17 Mar 2020 17:07:20 +0530 Subject: [PATCH 2/2] Add test for data field in serialization errors --- lib/errors.d.ts | 4 ++-- test/unit/errors.test.js | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/errors.d.ts b/lib/errors.d.ts index 051ca1f1c..1c6735ae3 100644 --- a/lib/errors.d.ts +++ b/lib/errors.d.ts @@ -40,8 +40,8 @@ export declare class SerializationError extends ElasticsearchClientError { export declare class DeserializationError extends ElasticsearchClientError { name: string; message: string; - data: object; - constructor(message: string, data: object); + data: string; + constructor(message: string, data: string); } export declare class ConfigurationError extends ElasticsearchClientError { diff --git a/test/unit/errors.test.js b/test/unit/errors.test.js index 5c7001e70..6798daaac 100644 --- a/test/unit/errors.test.js +++ b/test/unit/errors.test.js @@ -44,6 +44,7 @@ test('SerializationError', t => { t.true(err instanceof Error) t.true(err instanceof errors.ElasticsearchClientError) t.false(err.hasOwnProperty('meta')) + t.true(err.hasOwnProperty('data')) t.end() }) @@ -52,6 +53,7 @@ test('DeserializationError', t => { t.true(err instanceof Error) t.true(err instanceof errors.ElasticsearchClientError) t.false(err.hasOwnProperty('meta')) + t.true(err.hasOwnProperty('data')) t.end() })