Skip to content

Commit 86e4462

Browse files
committed
Build TeleportJS
1 parent e7169d6 commit 86e4462

File tree

3 files changed

+185
-35
lines changed

3 files changed

+185
-35
lines changed

cjs/index.js

Lines changed: 91 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
1-
var TJS = (function (Primitive, primitive) {
1+
var TeleportJS = (function (Primitive, primitive) {
22

33
var REF_KEY_PREFIX = '_';
44
var REF_SEPARATOR = ';';
55
var SINGLE_REF = REF_KEY_PREFIX + '0';
66
var REF_PREFIX = {
7-
undefined: 'u',
8-
number: 'n',
9-
bigint: 'b',
10-
symbol: 's',
11-
RegExp: 'R',
12-
Map: 'M',
13-
Set: 'S'
7+
undefined: 'u',
8+
number: 'n',
9+
bigint: 'b',
10+
symbol: 's',
11+
RegExp: 'R',
12+
Map: 'M',
13+
Set: 'S',
14+
Int8Array: 'A',
15+
Uint8Array: 'B',
16+
Uint8ClampedArray: 'C',
17+
Int16Array: 'D',
18+
Uint16Array: 'E',
19+
Int32Array: 'F',
20+
Uint32Array: 'G',
21+
Float32Array: 'H',
22+
Float64Array: 'I'
1423
};
1524

1625
/*!
@@ -19,7 +28,7 @@ var TJS = (function (Primitive, primitive) {
1928
* Copyright (c) 2018, Andrea Giammarchi, @WebReflection
2029
*/
2130

22-
var TJS = {
31+
var TeleportJS = {
2332

2433
parse: function parse(text, reviver) {
2534
var input = JSON.parse(text, Primitives).map(primitives);
@@ -81,7 +90,7 @@ var TJS = (function (Primitive, primitive) {
8190

8291
};
8392

84-
return TJS;
93+
return TeleportJS;
8594

8695
function noop(key, value) {
8796
return value;
@@ -108,10 +117,37 @@ var TJS = (function (Primitive, primitive) {
108117
refs[index] = new RegExp(parts[1], parts[2]);
109118
break;
110119
case REF_PREFIX.Map:
111-
refs[index] = new Map(TJS.parse(value));
120+
refs[index] = new Map(TeleportJS.parse(value));
112121
break;
113122
case REF_PREFIX.Set:
114-
refs[index] = new Set(TJS.parse(value));
123+
refs[index] = new Set(TeleportJS.parse(value));
124+
break;
125+
case REF_PREFIX.Int8Array:
126+
refs[index] = new Int8Array(JSON.parse(value));
127+
break;
128+
case REF_PREFIX.Uint8Array:
129+
refs[index] = new Uint8Array(JSON.parse(value));
130+
break;
131+
case REF_PREFIX.Uint8ClampedArray:
132+
refs[index] = new Uint8ClampedArray(JSON.parse(value));
133+
break;
134+
case REF_PREFIX.Int16Array:
135+
refs[index] = new Int16Array(JSON.parse(value));
136+
break;
137+
case REF_PREFIX.Uint16Array:
138+
refs[index] = new Uint16Array(JSON.parse(value));
139+
break;
140+
case REF_PREFIX.Int32Array:
141+
refs[index] = new Int32Array(JSON.parse(value));
142+
break;
143+
case REF_PREFIX.Uint32Array:
144+
refs[index] = new Uint32Array(JSON.parse(value));
145+
break;
146+
case REF_PREFIX.Float32Array:
147+
refs[index] = new Float32Array(JSON.parse(value));
148+
break;
149+
case REF_PREFIX.Float64Array:
150+
refs[index] = new Float64Array(JSON.parse(value));
115151
break;
116152
}
117153

@@ -177,22 +213,61 @@ var TJS = (function (Primitive, primitive) {
177213
after = REF_PREFIX.symbol + REF_SEPARATOR + description.substring(7, description.length - 1);
178214
break;
179215
case 'object':
180-
if (value instanceof RegExp) {
216+
if (value === null) {
217+
break;
218+
}
219+
else if (value instanceof RegExp) {
181220
after = REF_PREFIX.RegExp + REF_SEPARATOR + Primitive(value);
182221
}
183222
else if (value instanceof Map) {
184223
var m = [];
185224
for (var i of value.entries()) {
186225
m.push(i);
187226
}
188-
after = REF_PREFIX.Map + REF_SEPARATOR + TJS.stringify(m);
227+
after = REF_PREFIX.Map + REF_SEPARATOR + TeleportJS.stringify(m);
189228
}
190229
else if (value instanceof Set) {
191230
var s = [];
192231
for (var i of value.values()) {
193232
s.push(i);
194233
}
195-
after = REF_PREFIX.Set + REF_SEPARATOR + TJS.stringify(s);
234+
after = REF_PREFIX.Set + REF_SEPARATOR + TeleportJS.stringify(s);
235+
}
236+
else if (value instanceof Int8Array) {
237+
after = REF_PREFIX.Int8Array + REF_SEPARATOR +
238+
JSON.stringify(Array.apply([], value));
239+
}
240+
else if (value instanceof Uint8Array) {
241+
after = REF_PREFIX.Uint8Array + REF_SEPARATOR +
242+
JSON.stringify(Array.apply([], value));
243+
}
244+
else if (value instanceof Uint8ClampedArray) {
245+
after = REF_PREFIX.Uint8ClampedArray + REF_SEPARATOR +
246+
JSON.stringify(Array.apply([], value));
247+
}
248+
else if (value instanceof Int16Array) {
249+
after = REF_PREFIX.Int16Array + REF_SEPARATOR +
250+
JSON.stringify(Array.apply([], value));
251+
}
252+
else if (value instanceof Uint16Array) {
253+
after = REF_PREFIX.Uint16Array + REF_SEPARATOR +
254+
JSON.stringify(Array.apply([], value));
255+
}
256+
else if (value instanceof Int32Array) {
257+
after = REF_PREFIX.Int32Array + REF_SEPARATOR +
258+
JSON.stringify(Array.apply([], value));
259+
}
260+
else if (value instanceof Uint32Array) {
261+
after = REF_PREFIX.Uint32Array + REF_SEPARATOR +
262+
JSON.stringify(Array.apply([], value));
263+
}
264+
else if (value instanceof Float32Array) {
265+
after = REF_PREFIX.Float32Array + REF_SEPARATOR +
266+
JSON.stringify(Array.apply([], value));
267+
}
268+
else if (value instanceof Float64Array) {
269+
after = REF_PREFIX.Float64Array + REF_SEPARATOR +
270+
JSON.stringify(Array.apply([], value));
196271
}
197272
break;
198273
}
@@ -225,4 +300,4 @@ var TJS = (function (Primitive, primitive) {
225300
}
226301

227302
}(String, 'string'));
228-
module.exports = TJS;
303+
module.exports = TeleportJS;

esm/index.js

Lines changed: 93 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
1-
var TJS = (function (Primitive, primitive) {
1+
var TeleportJS = (function (Primitive, primitive) {
22

33
var REF_KEY_PREFIX = '_';
44
var REF_SEPARATOR = ';';
55
var SINGLE_REF = REF_KEY_PREFIX + '0';
66
var REF_PREFIX = {
7-
undefined: 'u',
8-
number: 'n',
9-
bigint: 'b',
10-
symbol: 's',
11-
RegExp: 'R',
12-
Map: 'M',
13-
Set: 'S'
7+
undefined: 'u',
8+
number: 'n',
9+
bigint: 'b',
10+
symbol: 's',
11+
RegExp: 'R',
12+
Map: 'M',
13+
Set: 'S',
14+
Int8Array: 'A',
15+
Uint8Array: 'B',
16+
Uint8ClampedArray: 'C',
17+
Int16Array: 'D',
18+
Uint16Array: 'E',
19+
Int32Array: 'F',
20+
Uint32Array: 'G',
21+
Float32Array: 'H',
22+
Float64Array: 'I'
1423
};
1524

1625
/*!
@@ -19,7 +28,7 @@ var TJS = (function (Primitive, primitive) {
1928
* Copyright (c) 2018, Andrea Giammarchi, @WebReflection
2029
*/
2130

22-
var TJS = {
31+
var TeleportJS = {
2332

2433
parse: function parse(text, reviver) {
2534
var input = JSON.parse(text, Primitives).map(primitives);
@@ -81,7 +90,7 @@ var TJS = (function (Primitive, primitive) {
8190

8291
};
8392

84-
return TJS;
93+
return TeleportJS;
8594

8695
function noop(key, value) {
8796
return value;
@@ -108,10 +117,37 @@ var TJS = (function (Primitive, primitive) {
108117
refs[index] = new RegExp(parts[1], parts[2]);
109118
break;
110119
case REF_PREFIX.Map:
111-
refs[index] = new Map(TJS.parse(value));
120+
refs[index] = new Map(TeleportJS.parse(value));
112121
break;
113122
case REF_PREFIX.Set:
114-
refs[index] = new Set(TJS.parse(value));
123+
refs[index] = new Set(TeleportJS.parse(value));
124+
break;
125+
case REF_PREFIX.Int8Array:
126+
refs[index] = new Int8Array(JSON.parse(value));
127+
break;
128+
case REF_PREFIX.Uint8Array:
129+
refs[index] = new Uint8Array(JSON.parse(value));
130+
break;
131+
case REF_PREFIX.Uint8ClampedArray:
132+
refs[index] = new Uint8ClampedArray(JSON.parse(value));
133+
break;
134+
case REF_PREFIX.Int16Array:
135+
refs[index] = new Int16Array(JSON.parse(value));
136+
break;
137+
case REF_PREFIX.Uint16Array:
138+
refs[index] = new Uint16Array(JSON.parse(value));
139+
break;
140+
case REF_PREFIX.Int32Array:
141+
refs[index] = new Int32Array(JSON.parse(value));
142+
break;
143+
case REF_PREFIX.Uint32Array:
144+
refs[index] = new Uint32Array(JSON.parse(value));
145+
break;
146+
case REF_PREFIX.Float32Array:
147+
refs[index] = new Float32Array(JSON.parse(value));
148+
break;
149+
case REF_PREFIX.Float64Array:
150+
refs[index] = new Float64Array(JSON.parse(value));
115151
break;
116152
}
117153

@@ -177,22 +213,61 @@ var TJS = (function (Primitive, primitive) {
177213
after = REF_PREFIX.symbol + REF_SEPARATOR + description.substring(7, description.length - 1);
178214
break;
179215
case 'object':
180-
if (value instanceof RegExp) {
216+
if (value === null) {
217+
break;
218+
}
219+
else if (value instanceof RegExp) {
181220
after = REF_PREFIX.RegExp + REF_SEPARATOR + Primitive(value);
182221
}
183222
else if (value instanceof Map) {
184223
var m = [];
185224
for (var i of value.entries()) {
186225
m.push(i);
187226
}
188-
after = REF_PREFIX.Map + REF_SEPARATOR + TJS.stringify(m);
227+
after = REF_PREFIX.Map + REF_SEPARATOR + TeleportJS.stringify(m);
189228
}
190229
else if (value instanceof Set) {
191230
var s = [];
192231
for (var i of value.values()) {
193232
s.push(i);
194233
}
195-
after = REF_PREFIX.Set + REF_SEPARATOR + TJS.stringify(s);
234+
after = REF_PREFIX.Set + REF_SEPARATOR + TeleportJS.stringify(s);
235+
}
236+
else if (value instanceof Int8Array) {
237+
after = REF_PREFIX.Int8Array + REF_SEPARATOR +
238+
JSON.stringify(Array.apply([], value));
239+
}
240+
else if (value instanceof Uint8Array) {
241+
after = REF_PREFIX.Uint8Array + REF_SEPARATOR +
242+
JSON.stringify(Array.apply([], value));
243+
}
244+
else if (value instanceof Uint8ClampedArray) {
245+
after = REF_PREFIX.Uint8ClampedArray + REF_SEPARATOR +
246+
JSON.stringify(Array.apply([], value));
247+
}
248+
else if (value instanceof Int16Array) {
249+
after = REF_PREFIX.Int16Array + REF_SEPARATOR +
250+
JSON.stringify(Array.apply([], value));
251+
}
252+
else if (value instanceof Uint16Array) {
253+
after = REF_PREFIX.Uint16Array + REF_SEPARATOR +
254+
JSON.stringify(Array.apply([], value));
255+
}
256+
else if (value instanceof Int32Array) {
257+
after = REF_PREFIX.Int32Array + REF_SEPARATOR +
258+
JSON.stringify(Array.apply([], value));
259+
}
260+
else if (value instanceof Uint32Array) {
261+
after = REF_PREFIX.Uint32Array + REF_SEPARATOR +
262+
JSON.stringify(Array.apply([], value));
263+
}
264+
else if (value instanceof Float32Array) {
265+
after = REF_PREFIX.Float32Array + REF_SEPARATOR +
266+
JSON.stringify(Array.apply([], value));
267+
}
268+
else if (value instanceof Float64Array) {
269+
after = REF_PREFIX.Float64Array + REF_SEPARATOR +
270+
JSON.stringify(Array.apply([], value));
196271
}
197272
break;
198273
}
@@ -225,6 +300,6 @@ var TJS = (function (Primitive, primitive) {
225300
}
226301

227302
}(String, 'string'));
228-
export default TJS;
229-
export var parse = TJS.parse;
230-
export var stringify = TJS.stringify;
303+
export default TeleportJS;
304+
export var parse = TeleportJS.parse;
305+
export var stringify = TeleportJS.stringify;

min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)