@creately/jsonmix
Advanced tools
Comparing version 2.0.0 to 2.1.0
@@ -1,2 +0,5 @@ | ||
export declare type Factory<T> = ((data: any) => T | Promise<T>); | ||
export interface Observable<T> { | ||
subscribe: (next: (val: T) => any, error: (err: any) => any, complete: () => any) => any; | ||
} | ||
export declare type Factory<T> = ((data: any) => T | Promise<T> | Observable<T>); | ||
export declare type Constructor<T> = new () => T; | ||
@@ -3,0 +6,0 @@ export declare type Options<T> = { |
@@ -38,2 +38,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var isPromise = require("is-promise"); | ||
var isObservable = require("is-observable"); | ||
var JsonMix = /** @class */ (function () { | ||
@@ -143,3 +145,3 @@ /** | ||
return __awaiter(this, void 0, void 0, function () { | ||
var target, property; | ||
var target, result_1, property; | ||
return __generator(this, function (_a) { | ||
@@ -153,11 +155,26 @@ switch (_a.label) { | ||
target = new options.type(); | ||
return [3 /*break*/, 4]; | ||
return [3 /*break*/, 8]; | ||
case 1: | ||
if (!options.factory) return [3 /*break*/, 3]; | ||
return [4 /*yield*/, options.factory(data)]; | ||
if (!options.factory) return [3 /*break*/, 7]; | ||
result_1 = options.factory(data); | ||
if (!isObservable(result_1)) return [3 /*break*/, 3]; | ||
return [4 /*yield*/, new Promise(function (resolve, reject) { | ||
var currentValue; | ||
result_1.subscribe(function (val) { return (currentValue = val); }, function (err) { return reject(err); }, function () { return resolve(currentValue); }); | ||
})]; | ||
case 2: | ||
target = _a.sent(); | ||
return [3 /*break*/, 4]; | ||
case 3: return [2 /*return*/, data]; | ||
return [3 /*break*/, 6]; | ||
case 3: | ||
if (!isPromise(result_1)) return [3 /*break*/, 5]; | ||
return [4 /*yield*/, result_1]; | ||
case 4: | ||
target = _a.sent(); | ||
return [3 /*break*/, 6]; | ||
case 5: | ||
target = result_1; | ||
_a.label = 6; | ||
case 6: return [3 /*break*/, 8]; | ||
case 7: return [2 /*return*/, data]; | ||
case 8: | ||
for (property in data) { | ||
@@ -164,0 +181,0 @@ if (data.hasOwnProperty(property)) { |
{ | ||
"name": "@creately/jsonmix", | ||
"version": "2.0.0", | ||
"version": "2.1.0", | ||
"description": "Easy to use deserialisation from JSON into JavaScript Objects complete with functions", | ||
@@ -36,6 +36,11 @@ "main": "dist/index.js", | ||
"rimraf": "^2.6.2", | ||
"symbol-observable": "^1.0.4", | ||
"ts-loader": "^2.3.7", | ||
"typescript": "^2.6.1", | ||
"webpack": "^3.8.1" | ||
}, | ||
"dependencies": { | ||
"is-observable": "^1.0.0", | ||
"is-promise": "^2.1.0" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
18854
229
2
14
+ Addedis-observable@^1.0.0
+ Addedis-promise@^2.1.0
+ Addedis-observable@1.1.0(transitive)
+ Addedis-promise@2.2.2(transitive)
+ Addedsymbol-observable@1.2.0(transitive)