Skip to content

Commit 3925769

Browse files
Fixed minor bugs, renamed variables
1 parent 8dc0ddd commit 3925769

10 files changed

+261
-176
lines changed

src/json2typescript/json-convert-decorators.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,33 +31,41 @@ exports.JsonObject = JsonObject;
3131
*
3232
* If you decide to use a custom converter, make sure this class implements the interface JsonCustomConvert from this package.
3333
*
34-
* @param jsonProperty the key in the expected JSON object
34+
* @param jsonPropertyName optional param (default: classPropertyName) the property name in the expected JSON object
3535
* @param conversionOption optional param (default: undefined), should be either the expected type (String|Boolean|Number|etc) or a custom converter class implementing JsonCustomConvert
3636
* @param isOptional optional param (default: false), if true, the json property does not have to be present in the object
3737
*
3838
* @returns {(target:any, key:string)=>void}
3939
*/
40-
function JsonProperty(jsonProperty, conversionOption, isOptional) {
41-
return function (target, classProperty) {
40+
function JsonProperty(jsonPropertyName, conversionOption, isOptional) {
41+
return function (target, classPropertyName) {
4242
if (typeof (target[json_convert_options_1.Settings.MAPPING_PROPERTY]) === "undefined") {
4343
target[json_convert_options_1.Settings.MAPPING_PROPERTY] = [];
4444
}
45+
if (typeof (jsonPropertyName) === "undefined") {
46+
jsonPropertyName = classPropertyName;
47+
}
4548
if (typeof (isOptional) === "undefined") {
4649
isOptional = false;
4750
}
51+
if (classPropertyName === "version") {
52+
//console.error(target.hasOwnProperty(classPropertyName));
53+
//target[classPropertyName] = "null";
54+
//console.error(target[classPropertyName]);
55+
}
4856
var jsonPropertyMappingOptions = new json_convert_options_1.MappingOptions();
49-
jsonPropertyMappingOptions.classProperty = classProperty;
50-
jsonPropertyMappingOptions.jsonProperty = jsonProperty;
57+
jsonPropertyMappingOptions.classPropertyName = classPropertyName;
58+
jsonPropertyMappingOptions.jsonPropertyName = jsonPropertyName;
5159
jsonPropertyMappingOptions.isOptional = isOptional ? isOptional : false;
5260
// Check if conversionOption is a type or a custom converter.
5361
if (typeof (conversionOption) !== "undefined" && typeof (conversionOption[json_convert_options_1.Settings.MAPPER_PROPERTY]) !== "undefined") {
5462
jsonPropertyMappingOptions.customConverter = new conversionOption();
5563
}
5664
else {
57-
jsonPropertyMappingOptions.expectedType = conversionOption;
65+
jsonPropertyMappingOptions.expectedJsonType = conversionOption;
5866
}
5967
// Save the mapping info
60-
target[json_convert_options_1.Settings.MAPPING_PROPERTY][classProperty] = jsonPropertyMappingOptions;
68+
target[json_convert_options_1.Settings.MAPPING_PROPERTY][classPropertyName] = jsonPropertyMappingOptions;
6169
};
6270
}
6371
exports.JsonProperty = JsonProperty;

src/json2typescript/json-convert-decorators.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,38 +30,48 @@ export function JsonObject(target: any) {
3030
*
3131
* If you decide to use a custom converter, make sure this class implements the interface JsonCustomConvert from this package.
3232
*
33-
* @param jsonProperty the key in the expected JSON object
33+
* @param jsonPropertyName optional param (default: classPropertyName) the property name in the expected JSON object
3434
* @param conversionOption optional param (default: undefined), should be either the expected type (String|Boolean|Number|etc) or a custom converter class implementing JsonCustomConvert
3535
* @param isOptional optional param (default: false), if true, the json property does not have to be present in the object
3636
*
3737
* @returns {(target:any, key:string)=>void}
3838
*/
39-
export function JsonProperty(jsonProperty: string, conversionOption?: any, isOptional?: boolean): any {
39+
export function JsonProperty(jsonPropertyName?: string, conversionOption?: any, isOptional?: boolean): any {
4040

41-
return function (target: any, classProperty: string): void {
41+
return function (target: any, classPropertyName: string): void {
4242

4343
if (typeof(target[Settings.MAPPING_PROPERTY]) === "undefined") {
4444
target[Settings.MAPPING_PROPERTY] = [];
4545
}
4646

47+
if (typeof(jsonPropertyName) === "undefined") {
48+
jsonPropertyName = classPropertyName;
49+
}
50+
4751
if (typeof(isOptional) === "undefined") {
4852
isOptional = false;
4953
}
5054

55+
if (classPropertyName === "version") {
56+
//console.error(target.hasOwnProperty(classPropertyName));
57+
//target[classPropertyName] = "null";
58+
//console.error(target[classPropertyName]);
59+
}
60+
5161
let jsonPropertyMappingOptions = new MappingOptions();
52-
jsonPropertyMappingOptions.classProperty = classProperty;
53-
jsonPropertyMappingOptions.jsonProperty = jsonProperty;
62+
jsonPropertyMappingOptions.classPropertyName = classPropertyName;
63+
jsonPropertyMappingOptions.jsonPropertyName = jsonPropertyName;
5464
jsonPropertyMappingOptions.isOptional = isOptional ? isOptional : false;
5565

5666
// Check if conversionOption is a type or a custom converter.
5767
if (typeof(conversionOption) !== "undefined" && typeof(conversionOption[Settings.MAPPER_PROPERTY]) !== "undefined") {
5868
jsonPropertyMappingOptions.customConverter = new conversionOption();
5969
} else {
60-
jsonPropertyMappingOptions.expectedType = conversionOption;
70+
jsonPropertyMappingOptions.expectedJsonType = conversionOption;
6171
}
6272

6373
// Save the mapping info
64-
target[Settings.MAPPING_PROPERTY][classProperty] = jsonPropertyMappingOptions;
74+
target[Settings.MAPPING_PROPERTY][classPropertyName] = jsonPropertyMappingOptions;
6575

6676
}
6777

src/json2typescript/json-convert-options.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ exports.Settings = Settings;
1717
*/
1818
var MappingOptions = (function () {
1919
function MappingOptions() {
20-
this.classProperty = "";
21-
this.jsonProperty = "";
22-
this.expectedType = undefined;
20+
this.classPropertyName = "";
21+
this.jsonPropertyName = "";
22+
this.expectedJsonType = undefined;
2323
this.isOptional = false;
2424
this.customConverter = null;
2525
}

src/json2typescript/json-convert-options.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ export class Settings {
1010
* Internal mapping options for a property.
1111
*/
1212
export class MappingOptions {
13-
classProperty: string = "";
14-
jsonProperty: string = "";
15-
expectedType: string = undefined;
13+
classPropertyName: string = "";
14+
jsonPropertyName: string = "";
15+
expectedJsonType: string = undefined;
1616
isOptional: boolean = false;
1717
customConverter: any = null;
1818
}

0 commit comments

Comments
 (0)