diff --git a/src/plugins/BaseObjectSerializer.js b/src/plugins/BaseObjectSerializer.js index 762dc48..1d791e3 100644 --- a/src/plugins/BaseObjectSerializer.js +++ b/src/plugins/BaseObjectSerializer.js @@ -63,7 +63,13 @@ class BaseObjectSerializer { } async PreserializeEachObjectProperty(o, closures) { const converted = new Map() - for (const key of Object.keys(o)) { + const getters = Object.entries(Object.getOwnPropertyDescriptors(Reflect.getPrototypeOf(o))) + .filter(([key, descriptor]) => typeof descriptor.get === 'function' && key !== '__proto__') + .map(([key]) => key) + const objectKeys = new Array() + objectKeys.push(...Object.keys(o)) + objectKeys.push(...getters) + for (const key of objectKeys) { const objKey = key converted.set( BaseObjectSerializer.CleanKey(key), diff --git a/src/plugins/BaseObjectSerializer.ts b/src/plugins/BaseObjectSerializer.ts index cec7e1d..c1f3e3e 100644 --- a/src/plugins/BaseObjectSerializer.ts +++ b/src/plugins/BaseObjectSerializer.ts @@ -78,7 +78,15 @@ export class BaseObjectSerializer { ): Promise> { const converted = new Map() - for (const key of Object.keys(o)) { + const getters = Object.entries(Object.getOwnPropertyDescriptors(Reflect.getPrototypeOf(o))) + .filter(([key, descriptor]) => typeof descriptor.get === 'function' && key !== '__proto__') + .map(([key]) => key) + + const objectKeys = new Array() + objectKeys.push(...Object.keys(o)) + objectKeys.push(...getters) + + for (const key of objectKeys) { const objKey = key as keyof object converted.set( BaseObjectSerializer.CleanKey(key),