forked from daren.hsu/line_push
update
This commit is contained in:
+14
-2
@@ -11,7 +11,7 @@ var randomBytes = require('randombytes');
|
||||
// Generate an internal UID to make the regexp pattern harder to guess.
|
||||
var UID_LENGTH = 16;
|
||||
var UID = generateUID();
|
||||
var PLACE_HOLDER_REGEXP = new RegExp('(\\\\)?"@__(F|R|D|M|S|U|I|B)-' + UID + '-(\\d+)__@"', 'g');
|
||||
var PLACE_HOLDER_REGEXP = new RegExp('(\\\\)?"@__(F|R|D|M|S|A|U|I|B)-' + UID + '-(\\d+)__@"', 'g');
|
||||
|
||||
var IS_NATIVE_CODE_REGEXP = /\{\s*\[native code\]\s*\}/g;
|
||||
var IS_PURE_FUNCTION = /function.*?\(/;
|
||||
@@ -68,6 +68,7 @@ module.exports = function serialize(obj, options) {
|
||||
var dates = [];
|
||||
var maps = [];
|
||||
var sets = [];
|
||||
var arrays = [];
|
||||
var undefs = [];
|
||||
var infinities= [];
|
||||
var bigInts = [];
|
||||
@@ -106,6 +107,13 @@ module.exports = function serialize(obj, options) {
|
||||
if(origValue instanceof Set) {
|
||||
return '@__S-' + UID + '-' + (sets.push(origValue) - 1) + '__@';
|
||||
}
|
||||
|
||||
if(origValue instanceof Array) {
|
||||
var isSparse = origValue.filter(function(){return true}).length !== origValue.length;
|
||||
if (isSparse) {
|
||||
return '@__A-' + UID + '-' + (arrays.push(origValue) - 1) + '__@';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (type === 'function') {
|
||||
@@ -197,7 +205,7 @@ module.exports = function serialize(obj, options) {
|
||||
str = str.replace(UNSAFE_CHARS_REGEXP, escapeUnsafeChars);
|
||||
}
|
||||
|
||||
if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0) {
|
||||
if (functions.length === 0 && regexps.length === 0 && dates.length === 0 && maps.length === 0 && sets.length === 0 && arrays.length === 0 && undefs.length === 0 && infinities.length === 0 && bigInts.length === 0) {
|
||||
return str;
|
||||
}
|
||||
|
||||
@@ -228,6 +236,10 @@ module.exports = function serialize(obj, options) {
|
||||
return "new Set(" + serialize(Array.from(sets[valueIndex].values()), options) + ")";
|
||||
}
|
||||
|
||||
if (type === 'A') {
|
||||
return "Array.prototype.slice.call(" + serialize(Object.assign({ length: arrays[valueIndex].length }, arrays[valueIndex]), options) + ")";
|
||||
}
|
||||
|
||||
if (type === 'U') {
|
||||
return 'undefined'
|
||||
}
|
||||
|
||||
+15
-14
@@ -1,33 +1,34 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"serialize-javascript@4.0.0",
|
||||
"/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series"
|
||||
"serialize-javascript@5.0.1",
|
||||
"/home/node/nuxt"
|
||||
]
|
||||
],
|
||||
"_from": "serialize-javascript@4.0.0",
|
||||
"_id": "serialize-javascript@4.0.0",
|
||||
"_from": "serialize-javascript@5.0.1",
|
||||
"_id": "serialize-javascript@5.0.1",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
|
||||
"_integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
|
||||
"_location": "/serialize-javascript",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "serialize-javascript@4.0.0",
|
||||
"raw": "serialize-javascript@5.0.1",
|
||||
"name": "serialize-javascript",
|
||||
"escapedName": "serialize-javascript",
|
||||
"rawSpec": "4.0.0",
|
||||
"rawSpec": "5.0.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "4.0.0"
|
||||
"fetchSpec": "5.0.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/@nuxt/builder",
|
||||
"/@nuxt/utils"
|
||||
"/@nuxt/utils",
|
||||
"/terser-webpack-plugin"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
|
||||
"_spec": "4.0.0",
|
||||
"_where": "/mnt/Foxconn/Digitalent/Deverloper/liff-push_2series",
|
||||
"_resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
|
||||
"_spec": "5.0.1",
|
||||
"_where": "/home/node/nuxt",
|
||||
"author": {
|
||||
"name": "Eric Ferraiuolo",
|
||||
"email": "edf@ericf.me"
|
||||
@@ -42,7 +43,7 @@
|
||||
"devDependencies": {
|
||||
"benchmark": "^2.1.4",
|
||||
"chai": "^4.1.0",
|
||||
"mocha": "^7.0.0",
|
||||
"mocha": "^8.0.1",
|
||||
"nyc": "^15.0.0"
|
||||
},
|
||||
"homepage": "https://github.com/yahoo/serialize-javascript",
|
||||
@@ -64,5 +65,5 @@
|
||||
"benchmark": "node -v && node test/benchmark/serialize.js",
|
||||
"test": "nyc --reporter=lcov mocha test/unit"
|
||||
},
|
||||
"version": "4.0.0"
|
||||
"version": "5.0.1"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user