Socket
Socket
Sign inDemoInstall

typeson

Package Overview
Dependencies
Maintainers
1
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typeson - npm Package Compare versions

Comparing version 3.0.3 to 3.1.0

2

dist/typeson.js

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

!function(r,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Typeson=t():r.Typeson=t()}(this,function(){return function(r){function t(n){if(e[n])return e[n].exports;var o=e[n]={exports:{},id:n,loaded:!1};return r[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var e={};return t.m=r,t.c=e,t.p="",t(0)}([function(r,t){function e(r){var t=[],e={},u=this.types={};this.stringify=function(r,t,e){return JSON.stringify(c(r),t,e)},this.parse=function(r,t){return f(JSON.parse(r,t))};var c=this.encapsulate=function(n){function i(r,t,e){var n=typeof t;if(n in{string:1,"boolean":1,number:1,undefined:1})return"number"===n&&(isNaN(t)||t===-(1/0)||t===1/0)?u(r,t):t;if(null==t)return t;if(e){var a=f.indexOf(t);if(!(0>a))return c[r]="#","#"+s[a];e===!0&&(f.push(t),s.push(r))}var p=t.constructor===Object?t:u(r,t);if(p!==t)return p;if(null==t)return t;var v;if(t.constructor===Object)v={};else{if(t.constructor!==Array)return t;v=new Array(t.length)}return o(t).forEach(function(n){var o=i(r+(r?".":"")+n,t[n],e);void 0!==o&&(v[n]=o)}),v}function u(r,n){for(var o=t.length;o--;)if(t[o].test(n)){var u=t[o].type;if(e[u]){var f=c[r];c[r]=f?[u].concat(f):u}return i(r,t[o].replace(n),a&&"readonly")}return n}var c={},f=[],s=[],a=r&&"cyclic"in r?r.cyclic:!0,p=i("",n,a);if(o(c).length){if(p.constructor!==Object||p.$types)return{$:p,$types:{$:c}};p.$types=c}return p},f=this.revive=function(r){function t(r,f,s){if(!c||"$types"!==r){var a=u[r];if(f&&(f.constructor===Object||f.constructor===Array)){var p=i(f)?new Array(f.length):{};o(f).forEach(function(e){var n=t(r+(r?".":"")+e,f[e],s||p);void 0!==n&&(p[e]=n)}),f=p}return a?"#"===a?n(s,f.substr(1)):[].concat(a).reduce(function(r,t){var n=e[t];if(!n)throw new Error("Unregistered type: "+t);return n(r)},f):f}}var u=r.$types,c=!0;return u?(u.$&&u.$.constructor===Object&&(r=r.$,u=u.$,c=!1),t("",r)):r};this.register=function(r){return[].concat(r).forEach(function n(r){return i(r)?r.map(n):void(r&&o(r).forEach(function(n){var o=r[n],i=t.filter(function(r){return r.type===n});i.length&&(t.splice(t.indexOf(i[0]),1),delete e[n],delete u[n]),o&&(t.push({type:n,test:o[0],replace:o[1]}),o[2]&&(e[n]=o[2]),u[n]=o)}))}),this}}function n(r,t){if(""===t)return r;var e=t.indexOf(".");if(-1!==e){var o=r[t.substr(0,e)];return void 0===o?void 0:n(o,t.substr(e+1))}return r[t]}var o=Object.keys,i=Array.isArray;r.exports=e}])});
!function(r,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Typeson=t():r.Typeson=t()}(this,function(){return function(r){function t(n){if(e[n])return e[n].exports;var o=e[n]={exports:{},id:n,loaded:!1};return r[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var e={};return t.m=r,t.c=e,t.p="",t(0)}([function(r,t){function e(r){var t=[],e={},c=this.types={};this.stringify=function(r,t,e){return JSON.stringify(f(r),t,e)},this.parse=function(r,t){return s(JSON.parse(r,t))};var f=this.encapsulate=function(n){function o(r,t,e){var n=typeof t;if(n in{string:1,"boolean":1,number:1,undefined:1})return"number"===n&&(isNaN(t)||t===-(1/0)||t===1/0)?u(r,t):t;if(null==t)return t;if(e){var a=f.indexOf(t);if(!(0>a))return c[r]="#","#"+s[a];e===!0&&(f.push(t),s.push(r))}var p=t.constructor===Object?t:u(r,t);if(p!==t)return p;if(null==t)return t;var y;if(t.constructor===Object)y={};else{if(t.constructor!==Array)return t;y=new Array(t.length)}return i(t).forEach(function(n){var i=o(r+(r?".":"")+n,t[n],e);void 0!==i&&(y[n]=i)}),y}function u(r,n){for(var i=t.length;i--;)if(t[i].test(n)){var u=t[i].type;if(e[u]){var f=c[r];c[r]=f?[u].concat(f):u}return o(r,t[i].replace(n),a&&"readonly")}return n}var c={},f=[],s=[],a=r&&"cyclic"in r?r.cyclic:!0,p=o("",n,a);if(i(c).length){if(p.constructor!==Object||p.$types)return{$:p,$types:{$:c}};p.$types=c}return p},s=this.revive=function(r){function t(r,f,s){if(!c||"$types"!==r){var a=n[r];if(f&&(f.constructor===Object||f.constructor===Array)){var p=u(f)?new Array(f.length):{};i(f).forEach(function(e){var n=t(r+(r?".":"")+e,f[e],s||p);void 0!==n&&(p[e]=n)}),f=p}return a?"#"===a?o(s,f.substr(1)):[].concat(a).reduce(function(r,t){var n=e[t];if(!n)throw new Error("Unregistered type: "+t);return n(r)},f):f}}var n=r.$types,c=!0;return n?(n.$&&n.$.constructor===Object&&(r=r.$,n=n.$,c=!1),t("",r)):r};this.register=function(r){return[].concat(r).forEach(function o(r){return u(r)?r.map(o):void(r&&i(r).forEach(function(o){var i=r[o],u=t.filter(function(r){return r.type===o});if(u.length&&(t.splice(t.indexOf(u[0]),1),delete e[o],delete c[o]),i){if("function"==typeof i){var f=i;i=[function(r){return r.constructor===f},function(r){return n({},r)},function(r){return n(Object.create(f.prototype),r)}]}t.push({type:o,test:i[0],replace:i[1]}),i[2]&&(e[o]=i[2]),c[o]=i}}))}),this}}function n(r,t){return i(t).map(function(e){r[e]=t[e]}),r}function o(r,t){if(""===t)return r;var e=t.indexOf(".");if(-1!==e){var n=r[t.substr(0,e)];return void 0===n?void 0:o(n,t.substr(e+1))}return r[t]}var i=Object.keys,u=Array.isArray;r.exports=e}])});
{
"name": "typeson",
"version": "3.0.3",
"version": "3.1.0",
"description": "Preserves types over JSON, BSON or socket.io",

@@ -5,0 +5,0 @@ "main": "typeson.js",

@@ -269,3 +269,13 @@ var Typeson = require('./typeson');

var back = typeson.parse(tson);
assert (back.buf === back.bar.data.buffer);
assert (back.buf === back.bar.data.buffer, "The buffers point to same object");
}, function shouldSupportRegisteringAClassWithoutReplacerOrReviver() {
function MyClass() {}
var TSON = new Typeson().register({MyClass: MyClass});
var x = new MyClass();
x.hello = "world";
var tson = TSON.stringify(x);
console.log(tson);
var back = TSON.parse(tson);
assert (back instanceof MyClass, "Should revive to a MyClass instance.");
assert (back.hello === "world", "Should have all properties there.");
}]);

@@ -183,2 +183,11 @@ var keys = Object.keys,

if (spec) {
if (typeof spec === 'function') {
// Support registering just a class without replacer/reviver
var Class = spec;
spec = [
function(x){return x.constructor === Class;},
function(x){return assign({}, x)},
function(x){return assign(Object.create(Class.prototype), x)}
];
}
replacers.push({

@@ -198,2 +207,7 @@ type: typeId,

function assign(t,s) {
keys(s).map(function(k){t[k]=s[k];});
return t;
}
/** getByKeyPath() utility */

@@ -200,0 +214,0 @@ function getByKeyPath (obj, keyPath) {

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