From cc1444022e45d3b0016a5e0d2d91506ba871e85f Mon Sep 17 00:00:00 2001 From: Afshin Hoseini Date: Sat, 28 Apr 2018 12:15:51 +0430 Subject: [PATCH] JsonMember's reviver and replacer - Implemented reviver and replacer functions for JsonMemberOptions --- js/typed-json.d.ts | 8 ++++++++ js/typed-json.js | 17 ++++++++++++----- js/typed-json.js.map | 2 +- src/tests/test.ts | 29 +++++++++++++++++++++++++++++ src/typed-json.ts | 29 ++++++++++++++++++++++++++++- 5 files changed, 78 insertions(+), 7 deletions(-) create mode 100644 src/tests/test.ts diff --git a/js/typed-json.d.ts b/js/typed-json.d.ts index e8b9bd0..12f6228 100644 --- a/js/typed-json.d.ts +++ b/js/typed-json.d.ts @@ -45,6 +45,10 @@ interface JsonObjectOptions { serializer?: (object: T) => any; /** A custom deserializer function transforming a JSON object to an instace. */ initializer?: (json: any) => T; + /** A function that transforms the JSON after serializing. */ + replacer?: (key: string, value: any) => any; + /** A function that transforms the JSON before deserializing. */ + reviver?: (key: any, value: any) => any; } /** * Specifies that the type is serializable to and deserializable from a JSON string. @@ -76,6 +80,10 @@ interface JsonMemberOptions { emitDefaultValue?: boolean; /** When set, type-hint is mandatory when deserializing. Set for properties with interface or abstract types/element-types. */ refersAbstractType?: boolean; + /** Will be invoked, with the deserialized value in order to let the member, revive it. */ + reviver?: (deserializedValue: any) => any; + /** Will be invoked, with the serialized value in order to let the member, replace it. */ + replacer?: (serializedValue: any) => any; } /** * Specifies that the property is part of the object when serializing. diff --git a/js/typed-json.js b/js/typed-json.js index d44c132..65ef61e 100644 --- a/js/typed-json.js +++ b/js/typed-json.js @@ -269,12 +269,12 @@ var Helpers; })(Helpers || (Helpers = {})); //#endregion //#region "Metadata" -var JsonMemberMetadata = /** @class */ (function () { +var JsonMemberMetadata = (function () { function JsonMemberMetadata() { } return JsonMemberMetadata; }()); -var JsonObjectMetadata = /** @class */ (function () { +var JsonObjectMetadata = (function () { function JsonObjectMetadata() { this._dataMembers = {}; this._knownTypes = []; @@ -708,7 +708,7 @@ function JsonMember(optionsOrTarget, propertyKey) { } } exports.JsonMember = JsonMember; -var Serializer = /** @class */ (function () { +var Serializer = (function () { function Serializer() { } Serializer.writeObject = function (object, settings) { @@ -777,7 +777,7 @@ var Serializer = /** @class */ (function () { objectMetadata.sortMembers(); Object.keys(objectMetadata.dataMembers).forEach(function (propertyKey) { var propertyMetadata = objectMetadata.dataMembers[propertyKey]; - json[propertyMetadata.name] = _this.writeToJsonObject(object[propertyKey], { + var temp = _this.writeToJsonObject(object[propertyKey], { elements: propertyMetadata.elements, emitDefault: propertyMetadata.emitDefaultValue, enableTypeHints: settings.enableTypeHints, @@ -786,6 +786,10 @@ var Serializer = /** @class */ (function () { requireTypeHints: settings.requireTypeHints, typeHintPropertyKey: settings.typeHintPropertyKey }); + if (propertyMetadata.replacer) { + temp = propertyMetadata.replacer(temp); + } + json[propertyMetadata.name] = temp; }); } else { @@ -805,7 +809,7 @@ var Serializer = /** @class */ (function () { }; return Serializer; }()); -var Deserializer = /** @class */ (function () { +var Deserializer = (function () { function Deserializer() { } /** @@ -973,6 +977,9 @@ var Deserializer = /** @class */ (function () { strictTypeHintMode: settings.strictTypeHintMode, typeHintPropertyKey: settings.typeHintPropertyKey }); + if (propertyMetadata.reviver) { + temp = propertyMetadata.reviver(temp); + } // Do not make undefined/null property assignments. if (Helpers.valueIsDefined(temp)) { object[propertyKey] = temp; diff --git a/js/typed-json.js.map b/js/typed-json.js.map index 0cc84c3..e6ce666 100644 --- a/js/typed-json.js.map +++ b/js/typed-json.js.map @@ -1 +1 @@ -{"version":3,"file":"typed-json.js","sourceRoot":"","sources":["../src/typed-json.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"typed-json.js","sourceRoot":"","sources":["../src/typed-json.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/tests/test.ts b/src/tests/test.ts new file mode 100644 index 0000000..ec0360d --- /dev/null +++ b/src/tests/test.ts @@ -0,0 +1,29 @@ +import {isEqual} from "./object-compare"; +import {JsonObject, JsonMember, TypedJSON} from "../typed-json"; + +@JsonObject +class Person { + @JsonMember({type : String}) + firstName: string; + + @JsonMember({type : String}) + lastName: string; + + @JsonMember({type : Number, reviver : value=> value + 5, replacer : value=> value * 10 }) + level : number + + + public getFullname() { + return this.firstName + " " + this.lastName; + } +} + + +var person = TypedJSON.parse('{ "firstName": "John", "lastName": "Doe", level : 20 }', Person); +var jsPerson = TypedJSON.stringify(person) + +console.log("Pesron Level: ",person.level) +console.log("jsPerson", jsPerson) + + + diff --git a/src/typed-json.ts b/src/typed-json.ts index 98ced8b..7bf4f69 100644 --- a/src/typed-json.ts +++ b/src/typed-json.ts @@ -315,6 +315,11 @@ class JsonMemberMetadata { public order: number; public forceEnableTypeHinting: boolean; + + /** Will be invoked, with the deserialized value in order to let the member, revive it. */ + reviver? : (deserializedValue : any)=>any + /** Will be invoked, with the serialized value in order to let the member, replace it. */ + replacer? : (serializedValue : any)=>any } class JsonObjectMetadata { @@ -567,6 +572,12 @@ interface JsonObjectOptions { /** A custom deserializer function transforming a JSON object to an instace. */ initializer?: (json: any) => T; + + /** A function that transforms the JSON after serializing. */ + replacer?: (key: string, value: any) => any; + + /** A function that transforms the JSON before deserializing. */ + reviver?: (key: any, value: any) => any; } /** @@ -687,6 +698,11 @@ interface JsonMemberOptions { /** When set, type-hint is mandatory when deserializing. Set for properties with interface or abstract types/element-types. */ refersAbstractType?: boolean; + + /** Will be invoked, with the deserialized value in order to let the member, revive it. */ + reviver? : (deserializedValue : any)=>any + /** Will be invoked, with the serialized value in order to let the member, replace it. */ + replacer? : (serializedValue : any)=>any } function jsonMemberTypeInit(metadata: JsonMemberMetadata, propertyName: string, warnArray = false) { @@ -961,7 +977,7 @@ abstract class Serializer { Object.keys(objectMetadata.dataMembers).forEach(propertyKey => { var propertyMetadata = objectMetadata.dataMembers[propertyKey]; - json[propertyMetadata.name] = this.writeToJsonObject(object[propertyKey], { + let temp = this.writeToJsonObject(object[propertyKey], { elements: propertyMetadata.elements, emitDefault: propertyMetadata.emitDefaultValue, enableTypeHints: settings.enableTypeHints, @@ -970,6 +986,12 @@ abstract class Serializer { requireTypeHints: settings.requireTypeHints, typeHintPropertyKey: settings.typeHintPropertyKey }); + + if(propertyMetadata.replacer) { + temp = propertyMetadata.replacer(temp) + } + + json[propertyMetadata.name] = temp }); } else { // Serialize all own properties. @@ -1187,6 +1209,11 @@ abstract class Deserializer { typeHintPropertyKey: settings.typeHintPropertyKey }); + if (propertyMetadata.reviver) { + + temp = propertyMetadata.reviver(temp) + } + // Do not make undefined/null property assignments. if (Helpers.valueIsDefined(temp)) { object[propertyKey] = temp;