Socket
Socket
Sign inDemoInstall

mobservable

Package Overview
Dependencies
Maintainers
1
Versions
79
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mobservable - npm Package Compare versions

Comparing version 1.1.0 to 1.1.1

4

CHANGELOG.md

@@ -0,1 +1,5 @@

# 1.1.1
* `toJSON` now serializes object trees with cycles as well. If you know the object tree is acyclic, pass in `false` as second parameter for a performance gain.
# 1.1.0

@@ -2,0 +6,0 @@

2

lib/core.d.ts

@@ -22,3 +22,3 @@ import { Lambda, IObservableArray, IObservableValue, IContextInfoStruct, IArrayChange, IArraySplice, IObjectChange } from './interfaces';

export declare function extendObservable<A extends Object, B extends Object>(target: A, ...properties: B[]): A & B;
export declare function toJSON(source: any): any;
export declare function toJSON(source: any, detectCycles?: boolean, __alreadySeen?: [any, any][]): any;
export declare function getStrict(): boolean;

@@ -25,0 +25,0 @@ export declare function withStrict(newStrict: boolean, func: Lambda): void;

@@ -238,21 +238,38 @@ /**

}
function toJSON(source) {
function toJSON(source, detectCycles, __alreadySeen) {
if (detectCycles === void 0) { detectCycles = true; }
if (__alreadySeen === void 0) { __alreadySeen = null; }
function cache(value) {
if (detectCycles)
__alreadySeen.push([source, value]);
return value;
}
if (detectCycles && __alreadySeen === null)
__alreadySeen = [];
if (detectCycles && source !== null && typeof source === "object") {
for (var i = 0, l = __alreadySeen.length; i < l; i++)
if (__alreadySeen[i][0] === source)
return __alreadySeen[i][1];
}
if (!source)
return source;
if (Array.isArray(source) || source instanceof observablearray_1.ObservableArray)
return source.map(toJSON);
if (Array.isArray(source) || source instanceof observablearray_1.ObservableArray) {
var res = cache([]);
res.push.apply(res, source.map(function (value) { return toJSON(value, detectCycles, __alreadySeen); }));
return res;
}
if (source instanceof observablemap_1.ObservableMap) {
var res_1 = {};
source.forEach(function (value, key) { return res_1[key] = value; });
return res_1;
var res = cache({});
source.forEach(function (value, key) { return res[key] = toJSON(value, detectCycles, __alreadySeen); });
return res;
}
if (typeof source === "object" && utils_1.isPlainObject(source)) {
var res = {};
var res = cache({});
for (var key in source)
if (source.hasOwnProperty(key))
res[key] = toJSON(source[key]);
res[key] = toJSON(source[key], detectCycles, __alreadySeen);
return res;
}
if (isObservable(source) && source.$mobservable instanceof observablevalue_1.ObservableValue)
return source();
return toJSON(source(), detectCycles, __alreadySeen);
return source;

@@ -259,0 +276,0 @@ }

{
"name": "mobservable",
"version": "1.1.0",
"version": "1.1.1",
"description": "Observable data. Reactive functions. Simple code.",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc