11// original file from:
22// https://github.com/yyx990803/circular-json-es6
33
4+ var isArray = Array . isArray ;
5+
46var dummy100 = require ( './data.json' ) ;
57var dummy50 = dummy100 . slice ( 0 , 50 )
68var dummy10 = dummy100 . slice ( 0 , 10 )
@@ -20,13 +22,14 @@ var jsan = require('jsan')
2022var cj6 = require ( 'circular-json-es6' )
2123var flatted = require ( '../cjs' )
2224var SC = require ( '@ungap/structured-clone/json' )
25+ var flattedView = require ( './flatted-view.mjs' ) . default
2326
2427function run ( name , fn , dummy ) {
2528 console . log (
2629 name + ' ' + (
2730 typeof dummy === 'string' ?
2831 dummy . length + ' chars' :
29- ( dummy . length || '' ) + ' objects'
32+ ( isArray ( dummy ) && typeof dummy [ 0 ] === 'number' ? ( dummy . length + ' bytes' ) : ( ( dummy . length || '' ) + ' objects' ) )
3033 ) + ' parsed ' + (
3134 bench ( fn , dummy ) / 1000
3235 ) . toFixed ( 2 ) + ' times per second'
@@ -72,6 +75,13 @@ run('Structured Clone', SC.parse, r)
7275run ( 'Structured Clone' , SC . stringify , dummy10 )
7376run ( 'Structured Clone' , SC . parse , r )
7477console . log ( '-----------------------------------' )
78+ run ( 'flatted-view' , flattedView . encode , dummy100 )
79+ run ( 'flatted-view' , flattedView . decode , r )
80+ run ( 'flatted-view' , flattedView . encode , dummy50 )
81+ run ( 'flatted-view' , flattedView . decode , r )
82+ run ( 'flatted-view' , flattedView . encode , dummy10 )
83+ run ( 'flatted-view' , flattedView . decode , r )
84+ console . log ( '-----------------------------------' )
7585console . log ( '50% same objects' )
7686dummy100 = dummy50 . concat ( dummy50 )
7787console . log ( '-----------------------------------' )
@@ -85,6 +95,8 @@ run('flatted', flatted.stringify, dummy100)
8595run ( 'flatted' , flatted . parse , r )
8696run ( 'Structured Clone' , SC . stringify , dummy100 )
8797run ( 'Structured Clone' , SC . parse , r )
98+ run ( 'flatted-view' , flattedView . encode , dummy100 )
99+ run ( 'flatted-view' , flattedView . decode , r )
88100console . log ( '-----------------------------------' )
89101console . log ( '90% same objects' )
90102dummy100 = [ ] . concat (
@@ -102,6 +114,8 @@ run('flatted', flatted.stringify, dummy100)
102114run ( 'flatted' , flatted . parse , r )
103115run ( 'Structured Clone' , SC . stringify , dummy100 )
104116run ( 'Structured Clone' , SC . parse , r )
117+ run ( 'flatted-view' , flattedView . encode , dummy100 )
118+ run ( 'flatted-view' , flattedView . decode , r )
105119console . log ( '-----------------------------------' )
106120console . log ( 'with circular' )
107121function makeCircularObject ( ) {
@@ -124,6 +138,8 @@ run('flatted', flatted.stringify, dummy100)
124138run ( 'flatted' , flatted . parse , r )
125139run ( 'Structured Clone' , SC . stringify , dummy100 )
126140run ( 'Structured Clone' , SC . parse , r )
141+ run ( 'flatted-view' , flattedView . encode , dummy100 )
142+ run ( 'flatted-view' , flattedView . decode , r )
127143console . log ( '-----------------------------------' )
128144console . log ( 'with circular 90% same' )
129145function makeCircularObject ( ) {
@@ -150,6 +166,8 @@ run('flatted', flatted.stringify, dummy100)
150166run ( 'flatted' , flatted . parse , r )
151167run ( 'Structured Clone' , SC . stringify , dummy100 )
152168run ( 'Structured Clone' , SC . parse , r )
169+ run ( 'flatted-view' , flattedView . encode , dummy100 )
170+ run ( 'flatted-view' , flattedView . decode , r )
153171// */
154172console . log ( '-----------------------------------' )
155173console . log ( 'Big real-world circular data' )
@@ -168,3 +186,5 @@ run('flatted', flatted.stringify, cirular)
168186run ( 'flatted' , flatted . parse , r )
169187run ( 'Structured Clone' , SC . stringify , cirular )
170188run ( 'Structured Clone' , SC . parse , r )
189+ run ( 'flatted-view' , flattedView . encode , cirular )
190+ run ( 'flatted-view' , flattedView . decode , r )
0 commit comments