From 17a7fba7e3126574ae82fe4230241ecc9afc59b5 Mon Sep 17 00:00:00 2001 From: Nigro Simone Date: Sat, 24 Jan 2026 10:00:19 +0100 Subject: [PATCH] perf: better large string limit --- lib/serializer.js | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/serializer.js b/lib/serializer.js index d8ff4b87..34577e9f 100644 --- a/lib/serializer.js +++ b/lib/serializer.js @@ -4,7 +4,7 @@ const STR_ESCAPE = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]/ module.exports = class Serializer { - constructor (options) { + constructor(options) { switch (options && options.rounding) { case 'floor': this.parseInteger = Math.floor @@ -23,7 +23,7 @@ module.exports = class Serializer { this._options = options } - asInteger (i) { + asInteger(i) { if (Number.isInteger(i)) { return '' + i } else if (typeof i === 'bigint') { @@ -39,7 +39,7 @@ module.exports = class Serializer { return '' + integer } - asNumber (i) { + asNumber(i) { // fast cast to number const num = Number(i) // check if number is NaN @@ -53,11 +53,11 @@ module.exports = class Serializer { } } - asBoolean (bool) { + asBoolean(bool) { return bool && 'true' || 'false' // eslint-disable-line } - asDateTime (date) { + asDateTime(date) { if (date === null) return '""' if (date instanceof Date) { return '"' + date.toISOString() + '"' @@ -68,7 +68,7 @@ module.exports = class Serializer { throw new Error(`The value "${date}" cannot be converted to a date-time.`) } - asDate (date) { + asDate(date) { if (date === null) return '""' if (date instanceof Date) { return '"' + new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().slice(0, 10) + '"' @@ -79,7 +79,7 @@ module.exports = class Serializer { throw new Error(`The value "${date}" cannot be converted to a date.`) } - asTime (date) { + asTime(date) { if (date === null) return '""' if (date instanceof Date) { return '"' + new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().slice(11, 19) + '"' @@ -90,7 +90,7 @@ module.exports = class Serializer { throw new Error(`The value "${date}" cannot be converted to a time.`) } - asString (str) { + asString(str) { const len = str.length if (len === 0) { return '""' @@ -119,7 +119,7 @@ module.exports = class Serializer { } } return (last === -1 && ('"' + str + '"')) || ('"' + result + str.slice(last) + '"') - } else if (len < 5000 && STR_ESCAPE.test(str) === false) { + } else if (len < 2000 && STR_ESCAPE.test(str) === false) { // Only use the regular expression for shorter input. The overhead is otherwise too much. return '"' + str + '"' } else { @@ -127,15 +127,15 @@ module.exports = class Serializer { } } - asUnsafeString (str) { + asUnsafeString(str) { return '"' + str + '"' } - getState () { + getState() { return this._options } - static restoreFromState (state) { + static restoreFromState(state) { return new Serializer(state) } }