ts-json-serializer
Advanced tools
Comparing version 1.1.0 to 1.2.0
@@ -7,2 +7,6 @@ # Change Log | ||
## [1.2.0] | ||
#### Added | ||
- Possibility to serialize / deserialize `null`. | ||
## [1.1.0] | ||
@@ -28,3 +32,4 @@ #### Added | ||
[Unreleased]: https://github.com/buehler/ts-json-serializer/compare/v1.1.0...master | ||
[Unreleased]: https://github.com/buehler/ts-json-serializer/compare/v1.2.0...master | ||
[1.2.0]: https://github.com/buehler/ts-json-serializer/compare/v1.1.0...v1.2.0 | ||
[1.1.0]: https://github.com/buehler/ts-json-serializer/compare/v1.0.1...v1.1.0 | ||
@@ -31,0 +36,0 @@ [1.0.1]: https://github.com/buehler/ts-json-serializer/compare/v1.0.0...v1.0.1 |
@@ -54,1 +54,11 @@ /** | ||
} | ||
/** | ||
* Error that is thrown when an input to deserialize or serialize is undefined. | ||
* | ||
* @export | ||
* @class UndefinedInputError | ||
*/ | ||
export declare class UndefinedInputError { | ||
message: string; | ||
constructor(functionname: string); | ||
} |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
/** | ||
@@ -72,1 +73,14 @@ * Error that is thrown when a class has a constructor with parameters. So you need to provide a factory | ||
exports.ReferenceObjectNotFoundError = ReferenceObjectNotFoundError; | ||
/** | ||
* Error that is thrown when an input to deserialize or serialize is undefined. | ||
* | ||
* @export | ||
* @class UndefinedInputError | ||
*/ | ||
var UndefinedInputError = (function () { | ||
function UndefinedInputError(functionname) { | ||
this.message = "The input of your '" + functionname + "' call was undefined.\n Undefined can't be serlialized or deserialized."; | ||
} | ||
return UndefinedInputError; | ||
}()); | ||
exports.UndefinedInputError = UndefinedInputError; |
@@ -5,2 +5,3 @@ "use strict"; | ||
} | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
require("reflect-metadata"); | ||
@@ -7,0 +8,0 @@ __export(require("./Serializable")); |
{ | ||
"name": "ts-json-serializer", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Object serialization made easy with decorators.", | ||
@@ -13,3 +13,3 @@ "main": "index.js", | ||
"predevelop": "npm run clean", | ||
"develop": "tsc -p ./tsconfig/develop.json", | ||
"develop": "tsc -p .", | ||
"prebuild": "npm run clean", | ||
@@ -50,2 +50,3 @@ "build": "tsc -p ./tsconfig/build.json" | ||
"dependencies": { | ||
"coveralls": "^2.11.9", | ||
"reflect-metadata": "^0.1.9", | ||
@@ -52,0 +53,0 @@ "tslib": "^1.5.0" |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var errors_1 = require("./errors"); | ||
@@ -3,0 +4,0 @@ /** |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var SerializableType_1 = require("./SerializableType"); | ||
@@ -3,0 +4,0 @@ var Resolver_1 = require("./Resolver"); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
/** | ||
@@ -3,0 +4,0 @@ * Instance of a serializable type. Contains the necessary information for the system to serialize |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var errors_1 = require("./errors"); | ||
@@ -53,6 +54,9 @@ var Resolver_1 = require("./Resolver"); | ||
var _this = this; | ||
if (objectOrArray === undefined) { | ||
throw new errors_1.UndefinedInputError('serialize'); | ||
} | ||
this.references = {}; | ||
var serialized; | ||
if (objectOrArray.constructor === Array) { | ||
serialized = objectOrArray.map(function (o) { return _this.serializeObject(o); }); | ||
if (objectOrArray !== null && objectOrArray.constructor === Array) { | ||
serialized = objectOrArray.filter(function (o) { return o !== undefined; }).map(function (o) { return _this.serializeObject(o); }); | ||
} | ||
@@ -76,6 +80,9 @@ else { | ||
var _this = this; | ||
if (json === undefined) { | ||
throw new errors_1.UndefinedInputError('deserialize'); | ||
} | ||
this.references = {}; | ||
var parsed = JSON.parse(json); | ||
var deserialized; | ||
if (parsed.constructor === Array) { | ||
if (parsed !== null && parsed.constructor === Array) { | ||
deserialized = parsed.map(function (o) { return _this.deserializeObject(o); }); | ||
@@ -101,4 +108,10 @@ } | ||
var _this = this; | ||
if (obj.constructor === Date) { | ||
if (obj === null) { | ||
return { | ||
__type: 'null', | ||
__value: null | ||
}; | ||
} | ||
else if (obj.constructor === Date) { | ||
return { | ||
__type: 'Date', | ||
@@ -164,2 +177,4 @@ __value: obj | ||
switch (obj.__type) { | ||
case 'null': | ||
return null; | ||
case 'Date': | ||
@@ -207,2 +222,5 @@ return new Date(obj.__value); | ||
TsSerializer.prototype.resolveReferences = function (obj) { | ||
if (obj === null) { | ||
return; | ||
} | ||
for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) { | ||
@@ -209,0 +227,0 @@ var property = _a[_i]; |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
NPM Shrinkwrap
Supply chain riskPackage contains a shrinkwrap file. This may allow the package to bypass normal install procedures.
Found 1 instance in 1 package
90475
23
0
3
768
1
+ Addedcoveralls@^2.11.9
+ Addedansi-regex@2.1.1(transitive)
+ Addedansi-styles@2.2.1(transitive)
+ Addedargparse@1.0.10(transitive)
+ Addedasn1@0.2.6(transitive)
+ Addedassert-plus@0.2.01.0.0(transitive)
+ Addedasynckit@0.4.0(transitive)
+ Addedaws-sign2@0.6.0(transitive)
+ Addedaws4@1.12.0(transitive)
+ Addedbcrypt-pbkdf@1.0.2(transitive)
+ Addedboom@2.10.1(transitive)
+ Addedcaseless@0.11.0(transitive)
+ Addedchalk@1.1.3(transitive)
+ Addedcombined-stream@1.0.8(transitive)
+ Addedcommander@2.20.3(transitive)
+ Addedcore-util-is@1.0.2(transitive)
+ Addedcoveralls@2.13.3(transitive)
+ Addedcryptiles@2.0.5(transitive)
+ Addeddashdash@1.14.1(transitive)
+ Addeddelayed-stream@1.0.0(transitive)
+ Addedecc-jsbn@0.1.2(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedesprima@2.7.3(transitive)
+ Addedextend@3.0.2(transitive)
+ Addedextsprintf@1.3.0(transitive)
+ Addedforever-agent@0.6.1(transitive)
+ Addedform-data@2.1.4(transitive)
+ Addedgenerate-function@2.3.1(transitive)
+ Addedgenerate-object-property@1.2.0(transitive)
+ Addedgetpass@0.1.7(transitive)
+ Addedhar-validator@2.0.6(transitive)
+ Addedhas-ansi@2.0.0(transitive)
+ Addedhawk@3.1.3(transitive)
+ Addedhoek@2.16.3(transitive)
+ Addedhttp-signature@1.1.1(transitive)
+ Addedis-my-ip-valid@1.0.1(transitive)
+ Addedis-my-json-valid@2.20.6(transitive)
+ Addedis-property@1.0.2(transitive)
+ Addedis-typedarray@1.0.0(transitive)
+ Addedisstream@0.1.2(transitive)
+ Addedjs-yaml@3.6.1(transitive)
+ Addedjsbn@0.1.1(transitive)
+ Addedjson-schema@0.4.0(transitive)
+ Addedjson-stringify-safe@5.0.1(transitive)
+ Addedjsonpointer@5.0.1(transitive)
+ Addedjsprim@1.4.2(transitive)
+ Addedlcov-parse@0.0.10(transitive)
+ Addedlog-driver@1.2.5(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addedminimist@1.2.0(transitive)
+ Addedoauth-sign@0.8.2(transitive)
+ Addedpinkie@2.0.4(transitive)
+ Addedpinkie-promise@2.0.1(transitive)
+ Addedpunycode@1.4.1(transitive)
+ Addedqs@6.3.3(transitive)
+ Addedrequest@2.79.0(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsntp@1.0.9(transitive)
+ Addedsprintf-js@1.0.3(transitive)
+ Addedsshpk@1.18.0(transitive)
+ Addedstringstream@0.0.6(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedsupports-color@2.0.0(transitive)
+ Addedtough-cookie@2.3.4(transitive)
+ Addedtunnel-agent@0.4.3(transitive)
+ Addedtweetnacl@0.14.5(transitive)
+ Addeduuid@3.4.0(transitive)
+ Addedverror@1.10.0(transitive)
+ Addedxtend@4.0.2(transitive)