From 56202e169c7d3a70265fc6e0493db0cf5259ef3e Mon Sep 17 00:00:00 2001 From: Andreas Aeschlimann Date: Tue, 12 Feb 2019 19:27:44 +0100 Subject: [PATCH] Updated supporting files --- .../json-convert-decorators.js | 22 +- .../json-convert-decorators.js.map | 2 +- src/json2typescript/json-convert.d.ts | 80 ++--- src/json2typescript/json-convert.js | 275 ++++++++++++------ src/json2typescript/json-convert.js.map | 2 +- 5 files changed, 241 insertions(+), 140 deletions(-) diff --git a/src/json2typescript/json-convert-decorators.js b/src/json2typescript/json-convert-decorators.js index 274103d..b1119a3 100644 --- a/src/json2typescript/json-convert-decorators.js +++ b/src/json2typescript/json-convert-decorators.js @@ -56,7 +56,7 @@ function JsonObject(target) { // Decorator was @JsonObject(123) default: throw new Error("Fatal error in JsonConvert. " + - "It's mandatory to pass a string as parameter in the @JsonObject decorator.\n\n" + + "It is mandatory to pass a string as parameter in the @JsonObject decorator.\n\n" + "Use either @JsonObject or @JsonObject(classId) where classId is a string.\n\n"); } } @@ -95,7 +95,7 @@ function JsonProperty() { case 1: if (params[0] === undefined) throw new Error("Fatal error in JsonConvert. " + - "It's not allowed to explicitly pass \"undefined\" as first parameter in the @JsonProperty decorator.\n\n" + + "It is not allowed to explicitly pass \"undefined\" as first parameter in the @JsonProperty decorator.\n\n" + "\tClass property: \n" + "\t\t" + classPropertyName + "\n\n" + "Leave the decorator parameters empty if you do not wish to pass the first parameter.\n\n"); @@ -104,13 +104,13 @@ function JsonProperty() { case 2: if (params[0] === undefined) throw new Error("Fatal error in JsonConvert. " + - "It's not allowed to explicitly pass \"undefined\" as first parameter in the @JsonProperty decorator.\n\n" + + "It is not allowed to explicitly pass \"undefined\" as first parameter in the @JsonProperty decorator.\n\n" + "\tClass property: \n" + "\t\t" + classPropertyName + "\n\n" + "Leave the decorator parameters empty if you do not wish to pass the first parameter.\n\n"); if (params[1] === undefined) throw new Error("Fatal error in JsonConvert. " + - "It's not allowed to explicitly pass \"undefined\" as second parameter in the @JsonProperty decorator.\n\n" + + "It is not allowed to explicitly pass \"undefined\" as second parameter in the @JsonProperty decorator.\n\n" + "\tClass property: \n" + "\t\t" + classPropertyName + "\n\n" + "Use \"Any\" to allow any type. You can import this class from \"json2typescript\".\n\n"); @@ -120,13 +120,13 @@ function JsonProperty() { case 3: if (params[0] === undefined) throw new Error("Fatal error in JsonConvert. " + - "It's not allowed to explicitly pass \"undefined\" as first parameter in the @JsonProperty decorator.\n\n" + + "It is not allowed to explicitly pass \"undefined\" as first parameter in the @JsonProperty decorator.\n\n" + "\tClass property: \n" + "\t\t" + classPropertyName + "\n\n" + "Leave the decorator parameters empty if you do not wish to pass the first parameter.\n\n"); if (params[1] === undefined) throw new Error("Fatal error in JsonConvert. " + - "It's not allowed to explicitly pass \"undefined\" as second parameter in the @JsonProperty decorator.\n\n" + + "It is not allowed to explicitly pass \"undefined\" as second parameter in the @JsonProperty decorator.\n\n" + "\tClass property: \n" + "\t\t" + classPropertyName + "\n\n" + "Use \"Any\" to allow any type. You can import this class from \"json2typescript\".\n\n"); @@ -152,7 +152,15 @@ function JsonProperty() { jsonPropertyMappingOptions.expectedJsonType = conversionOption; } // Save the mapping info - target[json_convert_options_1.Settings.MAPPING_PROPERTY][json_convert_options_1.Settings.CLASS_IDENTIFIER + "." + classPropertyName] = jsonPropertyMappingOptions; + if (typeof (target[json_convert_options_1.Settings.MAPPING_PROPERTY][json_convert_options_1.Settings.CLASS_IDENTIFIER + "." + classPropertyName]) === "undefined") { + target[json_convert_options_1.Settings.MAPPING_PROPERTY][json_convert_options_1.Settings.CLASS_IDENTIFIER + "." + classPropertyName] = jsonPropertyMappingOptions; + } + else { + throw new Error("Fatal error in JsonConvert. " + + "It is not allowed to add multiple decorators for the same property.\n\n" + + "\tClass property: \n" + + "\t\t" + classPropertyName + "\n\n"); + } }; } exports.JsonProperty = JsonProperty; diff --git a/src/json2typescript/json-convert-decorators.js.map b/src/json2typescript/json-convert-decorators.js.map index 05c3a4f..a072f7c 100644 --- a/src/json2typescript/json-convert-decorators.js.map +++ b/src/json2typescript/json-convert-decorators.js.map @@ -1 +1 @@ -{"version":3,"file":"json-convert-decorators.js","sourceRoot":"","sources":["json-convert-decorators.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"json-convert-decorators.js","sourceRoot":"","sources":["json-convert-decorators.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/json2typescript/json-convert.d.ts b/src/json2typescript/json-convert.d.ts index 2ec6049..9df0adf 100644 --- a/src/json2typescript/json-convert.d.ts +++ b/src/json2typescript/json-convert.d.ts @@ -85,24 +85,24 @@ export declare class JsonConvert { * Determines the rule of how JSON properties shall be matched with class properties during deserialization. * * You may assign the following values: - * - CASE_STRICT: JSON properties need to match exactly the names in the decorators - * - CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive + * - PropertyMatchingRule.CASE_STRICT: JSON properties need to match exactly the names in the decorators + * - PropertyMatchingRule.CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive */ private _propertyMatchingRule; /** * Determines the rule of how JSON properties shall be matched with class properties during deserialization. * * You may assign the following values: - * - CASE_STRICT: JSON properties need to match exactly the names in the decorators - * - CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive + * - PropertyMatchingRule.CASE_STRICT: JSON properties need to match exactly the names in the decorators + * - PropertyMatchingRule.CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive * @returns {number} */ /** - * Determines the rule of how JSON properties shall be matched with class properties during deserialization. + * Determines the rule of how JSON properties shall be matched with class properties during deserialization. * * You may assign the following values: - * - CASE_STRICT: JSON properties need to match exactly the names in the decorators - * - CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive + * - PropertyMatchingRule.CASE_STRICT: JSON properties need to match exactly the names in the decorators + * - PropertyMatchingRule.CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive * @param value */ propertyMatchingRule: number; @@ -122,88 +122,88 @@ export declare class JsonConvert { * * @param data object or array of objects * - * @returns {any} the JSON object + * @returns the JSON object * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ - serialize(data: any): any; + serialize(data: T | T[]): any | any[]; /** * Tries to serialize a TypeScript object to a JSON object. * * @param instance TypeScript instance * - * @returns {any} the JSON object + * @returns the JSON object * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ - serializeObject(instance: any): any; + serializeObject(instance: T): any; /** * Tries to serialize a TypeScript array to a JSON array. * * @param instanceArray array of TypeScript instances * - * @returns {any[]} the JSON array + * @returns the JSON array * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ - serializeArray(instanceArray: any[]): any[]; + serializeArray(instanceArray: T[]): any[]; /** * Tries to deserialize given JSON to a TypeScript object or array of objects. * * @param json the JSON as object or array * @param classReference the class reference * - * @returns {any} the deserialized data (TypeScript instance or array of TypeScript instances) + * @returns the deserialized data (TypeScript instance or array of TypeScript instances) * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ - deserialize(json: any, classReference: { - new (): any; - }): any; + deserialize(json: any, classReference: { + new (): T; + }): T | T[]; /** * Tries to deserialize a JSON object to a TypeScript object. * * @param jsonObject the JSON object * @param classReference the class reference * - * @returns {any} the deserialized TypeScript instance + * @returns the deserialized TypeScript instance * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ - deserializeObject(jsonObject: any, classReference: { - new (): any; - }): any; + deserializeObject(jsonObject: any, classReference: { + new (): T; + }): T; /** * Tries to deserialize a JSON array to a TypeScript array. * * @param jsonArray the JSON array * @param classReference the object class * - * @returns {any[]} the deserialized array of TypeScript instances + * @returns the deserialized array of TypeScript instances * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ - deserializeArray(jsonArray: any[], classReference: { - new (): any; - }): any[]; + deserializeArray(jsonArray: any[], classReference: { + new (): T; + }): T[]; /** * Tries to find the JSON mapping for a given class property and finally assign the value. * @@ -211,7 +211,7 @@ export declare class JsonConvert { * @param classPropertyName the property name * @param json the JSON object * - * @throws throws an expection in case of failure + * @throws throws an Error in case of failure */ private serializeObject_loopProperty; /** @@ -221,7 +221,7 @@ export declare class JsonConvert { * @param classPropertyName the property name * @param json the JSON object * - * @throws throws an expection in case of failure + * @throws throws an Error in case of failure */ private deserializeObject_loopProperty; /** @@ -243,9 +243,21 @@ export declare class JsonConvert { * * @returns returns the resulted mapped property * - * @throws throws an expection in case of failure + * @throws an error in case of failure */ private verifyProperty; + /** + * Gets the value of an object for a given value. + * If the object does not have the specific key, an Error is thrown. + * + * @param data + * @param key + * + * @returns returns the value + * + * @throws an Error in case of the key was not found in the object + */ + private getObjectValue; /** * Returns a string representation of the expected json type. * diff --git a/src/json2typescript/json-convert.js b/src/json2typescript/json-convert.js index cc800a7..3f64e95 100644 --- a/src/json2typescript/json-convert.js +++ b/src/json2typescript/json-convert.js @@ -54,8 +54,8 @@ var JsonConvert = /** @class */ (function () { * Determines the rule of how JSON properties shall be matched with class properties during deserialization. * * You may assign the following values: - * - CASE_STRICT: JSON properties need to match exactly the names in the decorators - * - CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive + * - PropertyMatchingRule.CASE_STRICT: JSON properties need to match exactly the names in the decorators + * - PropertyMatchingRule.CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive */ this._propertyMatchingRule = json_convert_enums_1.PropertyMatchingRule.CASE_STRICT; if (operationMode !== undefined && operationMode in json_convert_enums_1.OperationMode) @@ -154,19 +154,19 @@ var JsonConvert = /** @class */ (function () { * Determines the rule of how JSON properties shall be matched with class properties during deserialization. * * You may assign the following values: - * - CASE_STRICT: JSON properties need to match exactly the names in the decorators - * - CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive + * - PropertyMatchingRule.CASE_STRICT: JSON properties need to match exactly the names in the decorators + * - PropertyMatchingRule.CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive * @returns {number} */ get: function () { return this._propertyMatchingRule; }, /** - * Determines the rule of how JSON properties shall be matched with class properties during deserialization. + * Determines the rule of how JSON properties shall be matched with class properties during deserialization. * * You may assign the following values: - * - CASE_STRICT: JSON properties need to match exactly the names in the decorators - * - CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive + * - PropertyMatchingRule.CASE_STRICT: JSON properties need to match exactly the names in the decorators + * - PropertyMatchingRule.CASE_INSENSITIVE: JSON properties need to match names in the decorators, but names they are not case sensitive * @param value */ set: function (value) { @@ -184,39 +184,28 @@ var JsonConvert = /** @class */ (function () { * * @param data object or array of objects * - * @returns {any} the JSON object + * @returns the JSON object * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ JsonConvert.prototype.serialize = function (data) { - if (data === undefined) { - if (this.valueCheckingMode === json_convert_enums_1.ValueCheckingMode.DISALLOW_NULL) { - throw new Error("Fatal error in JsonConvert. " + - "Passed parameter json in JsonConvert.serialize() is undefined. You have specified to disallow null values."); - } - else { - return null; - } + if (this.operationMode === json_convert_enums_1.OperationMode.DISABLE) { + return data; } - else if (data === null) { - if (this.valueCheckingMode === json_convert_enums_1.ValueCheckingMode.DISALLOW_NULL) { - throw new Error("Fatal error in JsonConvert. " + - "Passed parameter json in JsonConvert.serialize() is undefined. You have specified to disallow null values."); - } - else { - return null; - } + // Call the appropriate method depending on the type + if (data instanceof Array) { + return this.serializeArray(data); + } + else if (typeof data === "object") { // careful: an array is an object in TypeScript! + return this.serializeObject(data); } - else if (data) { - if (data.constructor === Array) - return this.serializeArray(data); - if (typeof data === "object") - return this.serializeObject(data); // must be last due to the fact that an array is an object in TypeScript! + else { throw new Error("Fatal error in JsonConvert. " + - "Passed parameter json in JsonConvert.serialize() is not in valid format (object or array)."); + "Passed parameter data in JsonConvert.serialize() is not in valid format (object or array)." + + "\n"); } }; /** @@ -224,21 +213,39 @@ var JsonConvert = /** @class */ (function () { * * @param instance TypeScript instance * - * @returns {any} the JSON object + * @returns the JSON object * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ JsonConvert.prototype.serializeObject = function (instance) { - if (typeof (instance) !== "object" || instance instanceof Array) { - throw new Error("Fatal error in JsonConvert. " + - "Passed parameter jsonArray in JsonConvert.serializeObject() is not of type object."); - } if (this.operationMode === json_convert_enums_1.OperationMode.DISABLE) { return instance; } + // Check if the passed type is allowed + if (instance === undefined) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter instance in JsonConvert.serializeObject() is undefined. This is not a valid JSON format." + + "\n"); + } + else if (instance === null) { + if (this.valueCheckingMode === json_convert_enums_1.ValueCheckingMode.DISALLOW_NULL) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter instance in JsonConvert.serializeObject() is undefined. You have specified to disallow null values." + + "\n"); + } + else { + return instance; + } + } + else if (typeof (instance) !== "object" || instance instanceof Array) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter instance in JsonConvert.serializeObject() is not of type object." + + "\n"); + } + // Now serialize and return the plain object if (this.operationMode === json_convert_enums_1.OperationMode.LOGGING) { console.log("----------"); console.log("Receiving JavaScript instance:"); @@ -262,21 +269,39 @@ var JsonConvert = /** @class */ (function () { * * @param instanceArray array of TypeScript instances * - * @returns {any[]} the JSON array + * @returns the JSON array * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ JsonConvert.prototype.serializeArray = function (instanceArray) { - if (typeof (instanceArray) !== "object" || instanceArray instanceof Array === false) { - throw new Error("Fatal error in JsonConvert. " + - "Passed parameter jsonArray in JsonConvert.serializeArray() is not of type array."); - } if (this.operationMode === json_convert_enums_1.OperationMode.DISABLE) { return instanceArray; } + // Check if the passed type is allowed + if (instanceArray === undefined) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter instanceArray in JsonConvert.serializeArray() is undefined. This is not a valid JSON format." + + "\n"); + } + else if (instanceArray === null) { + if (this.valueCheckingMode === json_convert_enums_1.ValueCheckingMode.DISALLOW_NULL) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter instanceArray in JsonConvert.serializeArray() is undefined. You have specified to disallow null values." + + "\n"); + } + else { + return instanceArray; + } + } + else if (typeof (instanceArray) !== "object" || instanceArray instanceof Array === false) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter instanceArray in JsonConvert.serializeArray() is not of type array." + + "\n"); + } + // Now serialize and return the plain object if (this.operationMode === json_convert_enums_1.OperationMode.LOGGING) { console.log("----------"); console.log("Receiving JavaScript array:"); @@ -284,8 +309,8 @@ var JsonConvert = /** @class */ (function () { } var jsonArray = []; // Loop through all array elements - for (var _i = 0, instanceArray_1 = instanceArray; _i < instanceArray_1.length; _i++) { - var classInstance = instanceArray_1[_i]; + for (var _i = 0, _a = instanceArray; _i < _a.length; _i++) { + var classInstance = _a[_i]; jsonArray.push(this.serializeObject(classInstance)); } if (this.operationMode === json_convert_enums_1.OperationMode.LOGGING) { @@ -301,58 +326,69 @@ var JsonConvert = /** @class */ (function () { * @param json the JSON as object or array * @param classReference the class reference * - * @returns {any} the deserialized data (TypeScript instance or array of TypeScript instances) + * @returns the deserialized data (TypeScript instance or array of TypeScript instances) * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ JsonConvert.prototype.deserialize = function (json, classReference) { - if (json === undefined) { - throw new Error("Fatal error in JsonConvert. " + - "Passed parameter json in JsonConvert.deserialize() is undefined. This is not a valid JSON format."); + if (this.operationMode === json_convert_enums_1.OperationMode.DISABLE) { + return json; } - else if (json === null) { - if (this.valueCheckingMode === json_convert_enums_1.ValueCheckingMode.DISALLOW_NULL) { - throw new Error("Fatal error in JsonConvert. " + - "Passed parameter json in JsonConvert.deserialize() is undefined. You have specified to disallow null values."); - } - else { - return null; - } + // Call the appropriate method depending on the type + if (json instanceof Array) { + return this.deserializeArray(json, classReference); + } + else if (typeof json === "object") { // careful: an array is an object in TypeScript! + return this.deserializeObject(json, classReference); } - else if (json) { - if (json.constructor === Array) - return this.deserializeArray(json, classReference); - if (typeof json === "object") - return this.deserializeObject(json, classReference); // must be last due to the fact that an array is an object in TypeScript! + else { throw new Error("Fatal error in JsonConvert. " + - "Passed parameter json in JsonConvert.deserialize() is not in valid JSON format (object or array)."); + "Passed parameter json in JsonConvert.deserialize() is not in valid JSON format (object or array)." + + "\n"); } }; - ; /** * Tries to deserialize a JSON object to a TypeScript object. * * @param jsonObject the JSON object * @param classReference the class reference * - * @returns {any} the deserialized TypeScript instance + * @returns the deserialized TypeScript instance * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ JsonConvert.prototype.deserializeObject = function (jsonObject, classReference) { - if (typeof (jsonObject) !== "object" || jsonObject instanceof Array) { - throw new Error("Fatal error in JsonConvert. " + - "Passed parameter jsonObject in JsonConvert.deserializeObject() is not of type object."); - } if (this.operationMode === json_convert_enums_1.OperationMode.DISABLE) { return jsonObject; } + // Check if the passed type is allowed + if (jsonObject === undefined) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter jsonObject in JsonConvert.deserializeObject() is undefined. This is not a valid JSON format." + + "\n"); + } + else if (jsonObject === null) { + if (this.valueCheckingMode === json_convert_enums_1.ValueCheckingMode.DISALLOW_NULL) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter jsonObject in JsonConvert.deserializeObject() is undefined. You have specified to disallow null values." + + "\n"); + } + else { + return jsonObject; + } + } + else if (typeof (jsonObject) !== "object" || jsonObject instanceof Array) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter jsonObject in JsonConvert.deserializeObject() is not of type object." + + "\n"); + } + // Now deserialize and return the instance if (this.operationMode === json_convert_enums_1.OperationMode.LOGGING) { console.log("----------"); console.log("Receiving JSON object:"); @@ -377,18 +413,39 @@ var JsonConvert = /** @class */ (function () { * @param jsonArray the JSON array * @param classReference the object class * - * @returns {any[]} the deserialized array of TypeScript instances + * @returns the deserialized array of TypeScript instances * - * @throws an exception in case of failure + * @throws an Error in case of failure * * @author Andreas Aeschlimann, DHlab, University of Basel, Switzerland * @see https://www.npmjs.com/package/json2typescript full documentation */ JsonConvert.prototype.deserializeArray = function (jsonArray, classReference) { - if (typeof (jsonArray) !== "object" || jsonArray instanceof Array === false) { + if (this.operationMode === json_convert_enums_1.OperationMode.DISABLE) { + return jsonArray; + } + // Check if the passed type is allowed + if (jsonArray === undefined) { throw new Error("Fatal error in JsonConvert. " + - "Passed parameter jsonArray in JsonConvert.deserializeArray() is not of type array."); + "Passed parameter jsonArray in JsonConvert.deserializeObject() is undefined. This is not a valid JSON format." + + "\n"); } + else if (jsonArray === null) { + if (this.valueCheckingMode === json_convert_enums_1.ValueCheckingMode.DISALLOW_NULL) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter jsonArray in JsonConvert.deserializeObject() is undefined. You have specified to disallow null values." + + "\n"); + } + else { + return jsonArray; + } + } + else if (typeof (jsonArray) !== "object" || jsonArray instanceof Array === false) { + throw new Error("Fatal error in JsonConvert. " + + "Passed parameter jsonArray in JsonConvert.deserializeArray() is not of type array." + + "\n"); + } + // Now deserialize and return the array if (this.operationMode === json_convert_enums_1.OperationMode.DISABLE) { return jsonArray; } @@ -420,7 +477,7 @@ var JsonConvert = /** @class */ (function () { * @param classPropertyName the property name * @param json the JSON object * - * @throws throws an expection in case of failure + * @throws throws an Error in case of failure */ JsonConvert.prototype.serializeObject_loopProperty = function (instance, classPropertyName, json) { // Check if a JSON-object mapping is possible for a property @@ -429,7 +486,7 @@ var JsonConvert = /** @class */ (function () { return; } // Get expected and real values - var jsonKey = mappingOptions.jsonPropertyName; + var jsonPropertyName = mappingOptions.jsonPropertyName; var expectedJsonType = mappingOptions.expectedJsonType; var isOptional = mappingOptions.isOptional; var customConverter = mappingOptions.customConverter; @@ -441,11 +498,12 @@ var JsonConvert = /** @class */ (function () { throw new Error("Fatal error in JsonConvert. " + "Failed to map the JavaScript instance of class \"" + instance[json_convert_options_1.Settings.CLASS_IDENTIFIER] + "\" to JSON because the defined class property \"" + classPropertyName + "\" does not exist or is not defined:\n\n" + "\tClass property: \n\t\t" + classPropertyName + "\n\n" + - "\tJSON property: \n\t\t" + jsonKey + "\n\n"); + "\tJSON property: \n\t\t" + jsonPropertyName + "\n\n"); } // Map the property try { - json[jsonKey] = customConverter !== null ? customConverter.serialize(classInstancePropertyValue) : this.verifyProperty(expectedJsonType, classInstancePropertyValue, true); + // Each class property might have multiple decorators - only use the JSON property name as defined in the first one + json[jsonPropertyName] = customConverter !== null ? customConverter.serialize(classInstancePropertyValue) : this.verifyProperty(expectedJsonType, classInstancePropertyValue, true); } catch (e) { throw new Error("Fatal error in JsonConvert. " + @@ -454,7 +512,7 @@ var JsonConvert = /** @class */ (function () { "\tClass property value: \n\t\t" + classInstancePropertyValue + "\n\n" + "\tExpected type: \n\t\t" + this.getExpectedType(expectedJsonType) + "\n\n" + "\tRuntime type: \n\t\t" + this.getTrueType(classInstancePropertyValue) + "\n\n" + - "\tJSON property: \n\t\t" + jsonKey + "\n\n" + + "\tJSON property: \n\t\t" + jsonPropertyName + "\n\n" + e.message + "\n"); } }; @@ -465,7 +523,7 @@ var JsonConvert = /** @class */ (function () { * @param classPropertyName the property name * @param json the JSON object * - * @throws throws an expection in case of failure + * @throws throws an Error in case of failure */ JsonConvert.prototype.deserializeObject_loopProperty = function (instance, classPropertyName, json) { var mappingOptions = this.getClassPropertyMappingOptions(instance, classPropertyName); @@ -473,28 +531,23 @@ var JsonConvert = /** @class */ (function () { return; } // Get expected and real values - var jsonKey = mappingOptions.jsonPropertyName; + var jsonPropertyName = mappingOptions.jsonPropertyName; var expectedJsonType = mappingOptions.expectedJsonType; var isOptional = mappingOptions.isOptional; var customConverter = mappingOptions.customConverter; - var jsonValue = json[jsonKey]; - // Try to find other key in case insensitive mode - if (typeof (jsonValue) === "undefined" && this.propertyMatchingRule === json_convert_enums_1.PropertyMatchingRule.CASE_INSENSITIVE) { - // Make a key mapping for the json object so that jsonKeys[lowerCaseKey] = originalKey - var jsonKeys = Object.keys(json).reduce(function (keys, key) { - keys[key.toLowerCase()] = key; - return keys; - }, {}); - jsonValue = json[jsonKeys[jsonKey.toLowerCase()]]; + var jsonValue = undefined; + try { + jsonValue = this.getObjectValue(json, jsonPropertyName); } + catch (_a) { } // Check if the json value exists if (typeof (jsonValue) === "undefined") { if (isOptional) return; throw new Error("Fatal error in JsonConvert. " + - "Failed to map the JSON object to the class \"" + instance[json_convert_options_1.Settings.CLASS_IDENTIFIER] + "\" because the defined JSON property \"" + jsonKey + "\" does not exist:\n\n" + + "Failed to map the JSON object to the class \"" + instance[json_convert_options_1.Settings.CLASS_IDENTIFIER] + "\" because the defined JSON property \"" + jsonPropertyName + "\" does not exist:\n\n" + "\tClass property: \n\t\t" + classPropertyName + "\n\n" + - "\tJSON property: \n\t\t" + jsonKey + "\n\n"); + "\tJSON property: \n\t\t" + jsonPropertyName + "\n\n"); } // Map the property try { @@ -502,13 +555,13 @@ var JsonConvert = /** @class */ (function () { } catch (e) { throw new Error("Fatal error in JsonConvert. " + - "Failed to map the JSON object to the JavaScript class \"" + instance[json_convert_options_1.Settings.CLASS_IDENTIFIER] + "\" because of a type error.\n\n" + + "Failed to map the JSON object to the class \"" + instance[json_convert_options_1.Settings.CLASS_IDENTIFIER] + "\" because of a type error.\n\n" + "\tClass property: \n\t\t" + classPropertyName + "\n\n" + "\tExpected type: \n\t\t" + this.getExpectedType(expectedJsonType) + "\n\n" + - "\tJSON property: \n\t\t" + jsonKey + "\n\n" + + "\tJSON property: \n\t\t" + jsonPropertyName + "\n\n" + "\tJSON type: \n\t\t" + this.getJsonType(jsonValue) + "\n\n" + "\tJSON value: \n\t\t" + JSON.stringify(jsonValue) + "\n\n" + - e.message + "\n\n"); + e.message + "\n"); } }; //////////////////// @@ -549,7 +602,7 @@ var JsonConvert = /** @class */ (function () { * * @returns returns the resulted mapped property * - * @throws throws an expection in case of failure + * @throws an error in case of failure */ JsonConvert.prototype.verifyProperty = function (expectedJsonType, value, serialize) { // Map immediately if we don't care about the type @@ -669,6 +722,34 @@ var JsonConvert = /** @class */ (function () { // All other attempts are fatal throw new Error("\tReason: Mapping failed because of an unknown error."); }; + /** + * Gets the value of an object for a given value. + * If the object does not have the specific key, an Error is thrown. + * + * @param data + * @param key + * + * @returns returns the value + * + * @throws an Error in case of the key was not found in the object + */ + JsonConvert.prototype.getObjectValue = function (data, key) { + // If we do not care about the case of the key, ad + if (this.propertyMatchingRule === json_convert_enums_1.PropertyMatchingRule.CASE_INSENSITIVE) { + // Create a mapping of the keys: keys[lowercase]=normalcase + var keyMapping = Object.keys(data).reduce(function (keys, key) { + keys[key.toLowerCase()] = key; + return keys; + }, {}); + // Define the new key + key = keyMapping[key.toLowerCase()]; + } + // Throw an error if the key is not in the object + if (key in data === false) { + throw new Error(); + } + return data[key]; + }; /////////////////////////// // JSON2TYPESCRIPT TYPES // /////////////////////////// diff --git a/src/json2typescript/json-convert.js.map b/src/json2typescript/json-convert.js.map index 67af85b..dc379e9 100644 --- a/src/json2typescript/json-convert.js.map +++ b/src/json2typescript/json-convert.js.map @@ -1 +1 @@ -{"version":3,"file":"json-convert.js","sourceRoot":"","sources":["json-convert.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"json-convert.js","sourceRoot":"","sources":["json-convert.ts"],"names":[],"mappings":"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"} \ No newline at end of file