@solana/fast-stable-stringify 2.1.0 → 2.1.1-canary-20250310215239
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/dist/index.browser.cjs +3 -3
- package/dist/index.browser.cjs.map +1 -1
- package/dist/index.browser.mjs +3 -3
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.native.mjs +3 -3
- package/dist/index.native.mjs.map +1 -1
- package/dist/index.node.cjs +3 -3
- package/dist/index.node.cjs.map +1 -1
- package/dist/index.node.mjs +3 -3
- package/dist/index.node.mjs.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,16 +11,16 @@ import stringify from '@solana/fast-stable-stringify';
|
|
|
11
11
|
stringify({ d: 0, c: 1, a: 2, b: 3, e: 4 }); // '{"a":2,"b":3,"c":1,"d":0,"e":4}'
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
Just like substack's, it
|
|
14
|
+
Just like substack's, it:
|
|
15
15
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
- **not support ie8 (and below) with complete certainty**.
|
|
16
|
+
- handles all variations of all basic javascript values (number, string, boolean, array, object, null, Date, BigInt)
|
|
17
|
+
- handles undefined _and_ function in the same way as `JSON.stringify`
|
|
18
|
+
- **does not support ie8 (and below) with complete certainty**.
|
|
19
19
|
|
|
20
|
-
Unlike substack's, it
|
|
20
|
+
Unlike substack's, it:
|
|
21
21
|
|
|
22
|
-
- not implement the 'replacer' or 'space' arguments of the JSON.stringify method
|
|
23
|
-
- not check for circular references
|
|
22
|
+
- does not implement the 'replacer' or 'space' arguments of the JSON.stringify method
|
|
23
|
+
- does not check for circular references
|
|
24
24
|
|
|
25
25
|
## Running tests
|
|
26
26
|
|
package/dist/index.browser.cjs
CHANGED
|
@@ -43,7 +43,7 @@ function stringify(val, isArrayProp) {
|
|
|
43
43
|
while (i < max) {
|
|
44
44
|
key = keys[i];
|
|
45
45
|
propVal = stringify(val[key], false);
|
|
46
|
-
if (propVal !==
|
|
46
|
+
if (propVal !== void 0) {
|
|
47
47
|
if (str) {
|
|
48
48
|
str += ",";
|
|
49
49
|
}
|
|
@@ -58,7 +58,7 @@ function stringify(val, isArrayProp) {
|
|
|
58
58
|
}
|
|
59
59
|
case "function":
|
|
60
60
|
case "undefined":
|
|
61
|
-
return isArrayProp ? null :
|
|
61
|
+
return isArrayProp ? null : void 0;
|
|
62
62
|
case "bigint":
|
|
63
63
|
return `${val.toString()}n`;
|
|
64
64
|
case "string":
|
|
@@ -69,7 +69,7 @@ function stringify(val, isArrayProp) {
|
|
|
69
69
|
}
|
|
70
70
|
function index_default(val) {
|
|
71
71
|
const returnVal = stringify(val, false);
|
|
72
|
-
if (returnVal !==
|
|
72
|
+
if (returnVal !== void 0) {
|
|
73
73
|
return "" + returnVal;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.browser.cjs","sourcesContent":["/**\n * This project is a fork of [nickyout/fast-stable-stringify](https://github.com/nickyout/fast-stable-stringify)\n *\n * The most popular repository providing this feature is [substack's json-stable-stringify](https://www.npmjs.com/package/json-stable-stringify). The intent of this library is to provide a faster alternative for when performance is more important than features. It assumes you provide basic javascript values without circular references, and returns a non-indented string.\n *\n * Just like substack's, it:\n *\n * - handles all variations of all basic javascript values (number, string, boolean, array, object, null, Date, BigInt)\n * - handles undefined _and_ function in the same way as `JSON.stringify`\n * - **does not support ie8 (and below) with complete certainty**.\n *\n * Unlike substack's, it:\n *\n * - does not implement the 'replacer' or 'space' arguments of the JSON.stringify method\n * - does not check for circular references\n *\n * @example\n * ```js\n * import stringify from '@solana/fast-stable-stringify';\n * stringify({ d: 0, c: 1, a: 2, b: 3, e: 4 }); // '{\"a\":2,\"b\":3,\"c\":1,\"d\":0,\"e\":4}'\n * ```\n *\n * @packageDocumentation\n */\nconst objToString = Object.prototype.toString;\nconst objKeys =\n Object.keys ||\n function (obj) {\n const keys = [];\n for (const name in obj) {\n keys.push(name);\n }\n return keys;\n };\n\nfunction stringify(val: unknown, isArrayProp: boolean) {\n let i, max, str, keys, key, propVal, toStr;\n if (val === true) {\n return 'true';\n }\n if (val === false) {\n return 'false';\n }\n switch (typeof val) {\n case 'object':\n if (val === null) {\n return null;\n } else if ('toJSON' in val && typeof val.toJSON === 'function') {\n return stringify(val.toJSON(), isArrayProp);\n } else {\n toStr = objToString.call(val);\n if (toStr === '[object Array]') {\n str = '[';\n max = (val as unknown[]).length - 1;\n for (i = 0; i < max; i++) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true) + ',';\n }\n if (max > -1) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true);\n }\n return str + ']';\n } else if (toStr === '[object Object]') {\n // only object is left\n keys = objKeys(val).sort();\n max = keys.length;\n str = '';\n i = 0;\n while (i < max) {\n key = keys[i];\n propVal = stringify((val as Record<typeof key, unknown>)[key], false);\n if (propVal !== undefined) {\n if (str) {\n str += ',';\n }\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += JSON.stringify(key) + ':' + propVal;\n }\n i++;\n }\n return '{' + str + '}';\n } else {\n return JSON.stringify(val);\n }\n }\n case 'function':\n case 'undefined':\n return isArrayProp ? null : undefined;\n case 'bigint':\n return `${val.toString()}n`;\n case 'string':\n return JSON.stringify(val);\n default:\n return isFinite(val as number) ? val : null;\n }\n}\n\nexport default function (\n val:\n | Function // eslint-disable-line @typescript-eslint/no-unsafe-function-type\n | undefined,\n): undefined;\nexport default function (val: unknown): string;\nexport default function (val: unknown): string | undefined {\n const returnVal = stringify(val, false);\n if (returnVal !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n return '' + returnVal;\n }\n}\n"]}
|
package/dist/index.browser.mjs
CHANGED
|
@@ -41,7 +41,7 @@ function stringify(val, isArrayProp) {
|
|
|
41
41
|
while (i < max) {
|
|
42
42
|
key = keys[i];
|
|
43
43
|
propVal = stringify(val[key], false);
|
|
44
|
-
if (propVal !==
|
|
44
|
+
if (propVal !== void 0) {
|
|
45
45
|
if (str) {
|
|
46
46
|
str += ",";
|
|
47
47
|
}
|
|
@@ -56,7 +56,7 @@ function stringify(val, isArrayProp) {
|
|
|
56
56
|
}
|
|
57
57
|
case "function":
|
|
58
58
|
case "undefined":
|
|
59
|
-
return isArrayProp ? null :
|
|
59
|
+
return isArrayProp ? null : void 0;
|
|
60
60
|
case "bigint":
|
|
61
61
|
return `${val.toString()}n`;
|
|
62
62
|
case "string":
|
|
@@ -67,7 +67,7 @@ function stringify(val, isArrayProp) {
|
|
|
67
67
|
}
|
|
68
68
|
function index_default(val) {
|
|
69
69
|
const returnVal = stringify(val, false);
|
|
70
|
-
if (returnVal !==
|
|
70
|
+
if (returnVal !== void 0) {
|
|
71
71
|
return "" + returnVal;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.browser.mjs","sourcesContent":["/**\n * This project is a fork of [nickyout/fast-stable-stringify](https://github.com/nickyout/fast-stable-stringify)\n *\n * The most popular repository providing this feature is [substack's json-stable-stringify](https://www.npmjs.com/package/json-stable-stringify). The intent of this library is to provide a faster alternative for when performance is more important than features. It assumes you provide basic javascript values without circular references, and returns a non-indented string.\n *\n * Just like substack's, it:\n *\n * - handles all variations of all basic javascript values (number, string, boolean, array, object, null, Date, BigInt)\n * - handles undefined _and_ function in the same way as `JSON.stringify`\n * - **does not support ie8 (and below) with complete certainty**.\n *\n * Unlike substack's, it:\n *\n * - does not implement the 'replacer' or 'space' arguments of the JSON.stringify method\n * - does not check for circular references\n *\n * @example\n * ```js\n * import stringify from '@solana/fast-stable-stringify';\n * stringify({ d: 0, c: 1, a: 2, b: 3, e: 4 }); // '{\"a\":2,\"b\":3,\"c\":1,\"d\":0,\"e\":4}'\n * ```\n *\n * @packageDocumentation\n */\nconst objToString = Object.prototype.toString;\nconst objKeys =\n Object.keys ||\n function (obj) {\n const keys = [];\n for (const name in obj) {\n keys.push(name);\n }\n return keys;\n };\n\nfunction stringify(val: unknown, isArrayProp: boolean) {\n let i, max, str, keys, key, propVal, toStr;\n if (val === true) {\n return 'true';\n }\n if (val === false) {\n return 'false';\n }\n switch (typeof val) {\n case 'object':\n if (val === null) {\n return null;\n } else if ('toJSON' in val && typeof val.toJSON === 'function') {\n return stringify(val.toJSON(), isArrayProp);\n } else {\n toStr = objToString.call(val);\n if (toStr === '[object Array]') {\n str = '[';\n max = (val as unknown[]).length - 1;\n for (i = 0; i < max; i++) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true) + ',';\n }\n if (max > -1) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true);\n }\n return str + ']';\n } else if (toStr === '[object Object]') {\n // only object is left\n keys = objKeys(val).sort();\n max = keys.length;\n str = '';\n i = 0;\n while (i < max) {\n key = keys[i];\n propVal = stringify((val as Record<typeof key, unknown>)[key], false);\n if (propVal !== undefined) {\n if (str) {\n str += ',';\n }\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += JSON.stringify(key) + ':' + propVal;\n }\n i++;\n }\n return '{' + str + '}';\n } else {\n return JSON.stringify(val);\n }\n }\n case 'function':\n case 'undefined':\n return isArrayProp ? null : undefined;\n case 'bigint':\n return `${val.toString()}n`;\n case 'string':\n return JSON.stringify(val);\n default:\n return isFinite(val as number) ? val : null;\n }\n}\n\nexport default function (\n val:\n | Function // eslint-disable-line @typescript-eslint/no-unsafe-function-type\n | undefined,\n): undefined;\nexport default function (val: unknown): string;\nexport default function (val: unknown): string | undefined {\n const returnVal = stringify(val, false);\n if (returnVal !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n return '' + returnVal;\n }\n}\n"]}
|
package/dist/index.native.mjs
CHANGED
|
@@ -41,7 +41,7 @@ function stringify(val, isArrayProp) {
|
|
|
41
41
|
while (i < max) {
|
|
42
42
|
key = keys[i];
|
|
43
43
|
propVal = stringify(val[key], false);
|
|
44
|
-
if (propVal !==
|
|
44
|
+
if (propVal !== void 0) {
|
|
45
45
|
if (str) {
|
|
46
46
|
str += ",";
|
|
47
47
|
}
|
|
@@ -56,7 +56,7 @@ function stringify(val, isArrayProp) {
|
|
|
56
56
|
}
|
|
57
57
|
case "function":
|
|
58
58
|
case "undefined":
|
|
59
|
-
return isArrayProp ? null :
|
|
59
|
+
return isArrayProp ? null : void 0;
|
|
60
60
|
case "bigint":
|
|
61
61
|
return `${val.toString()}n`;
|
|
62
62
|
case "string":
|
|
@@ -67,7 +67,7 @@ function stringify(val, isArrayProp) {
|
|
|
67
67
|
}
|
|
68
68
|
function index_default(val) {
|
|
69
69
|
const returnVal = stringify(val, false);
|
|
70
|
-
if (returnVal !==
|
|
70
|
+
if (returnVal !== void 0) {
|
|
71
71
|
return "" + returnVal;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.native.mjs","sourcesContent":["/**\n * This project is a fork of [nickyout/fast-stable-stringify](https://github.com/nickyout/fast-stable-stringify)\n *\n * The most popular repository providing this feature is [substack's json-stable-stringify](https://www.npmjs.com/package/json-stable-stringify). The intent of this library is to provide a faster alternative for when performance is more important than features. It assumes you provide basic javascript values without circular references, and returns a non-indented string.\n *\n * Just like substack's, it:\n *\n * - handles all variations of all basic javascript values (number, string, boolean, array, object, null, Date, BigInt)\n * - handles undefined _and_ function in the same way as `JSON.stringify`\n * - **does not support ie8 (and below) with complete certainty**.\n *\n * Unlike substack's, it:\n *\n * - does not implement the 'replacer' or 'space' arguments of the JSON.stringify method\n * - does not check for circular references\n *\n * @example\n * ```js\n * import stringify from '@solana/fast-stable-stringify';\n * stringify({ d: 0, c: 1, a: 2, b: 3, e: 4 }); // '{\"a\":2,\"b\":3,\"c\":1,\"d\":0,\"e\":4}'\n * ```\n *\n * @packageDocumentation\n */\nconst objToString = Object.prototype.toString;\nconst objKeys =\n Object.keys ||\n function (obj) {\n const keys = [];\n for (const name in obj) {\n keys.push(name);\n }\n return keys;\n };\n\nfunction stringify(val: unknown, isArrayProp: boolean) {\n let i, max, str, keys, key, propVal, toStr;\n if (val === true) {\n return 'true';\n }\n if (val === false) {\n return 'false';\n }\n switch (typeof val) {\n case 'object':\n if (val === null) {\n return null;\n } else if ('toJSON' in val && typeof val.toJSON === 'function') {\n return stringify(val.toJSON(), isArrayProp);\n } else {\n toStr = objToString.call(val);\n if (toStr === '[object Array]') {\n str = '[';\n max = (val as unknown[]).length - 1;\n for (i = 0; i < max; i++) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true) + ',';\n }\n if (max > -1) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true);\n }\n return str + ']';\n } else if (toStr === '[object Object]') {\n // only object is left\n keys = objKeys(val).sort();\n max = keys.length;\n str = '';\n i = 0;\n while (i < max) {\n key = keys[i];\n propVal = stringify((val as Record<typeof key, unknown>)[key], false);\n if (propVal !== undefined) {\n if (str) {\n str += ',';\n }\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += JSON.stringify(key) + ':' + propVal;\n }\n i++;\n }\n return '{' + str + '}';\n } else {\n return JSON.stringify(val);\n }\n }\n case 'function':\n case 'undefined':\n return isArrayProp ? null : undefined;\n case 'bigint':\n return `${val.toString()}n`;\n case 'string':\n return JSON.stringify(val);\n default:\n return isFinite(val as number) ? val : null;\n }\n}\n\nexport default function (\n val:\n | Function // eslint-disable-line @typescript-eslint/no-unsafe-function-type\n | undefined,\n): undefined;\nexport default function (val: unknown): string;\nexport default function (val: unknown): string | undefined {\n const returnVal = stringify(val, false);\n if (returnVal !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n return '' + returnVal;\n }\n}\n"]}
|
package/dist/index.node.cjs
CHANGED
|
@@ -43,7 +43,7 @@ function stringify(val, isArrayProp) {
|
|
|
43
43
|
while (i < max) {
|
|
44
44
|
key = keys[i];
|
|
45
45
|
propVal = stringify(val[key], false);
|
|
46
|
-
if (propVal !==
|
|
46
|
+
if (propVal !== void 0) {
|
|
47
47
|
if (str) {
|
|
48
48
|
str += ",";
|
|
49
49
|
}
|
|
@@ -58,7 +58,7 @@ function stringify(val, isArrayProp) {
|
|
|
58
58
|
}
|
|
59
59
|
case "function":
|
|
60
60
|
case "undefined":
|
|
61
|
-
return isArrayProp ? null :
|
|
61
|
+
return isArrayProp ? null : void 0;
|
|
62
62
|
case "bigint":
|
|
63
63
|
return `${val.toString()}n`;
|
|
64
64
|
case "string":
|
|
@@ -69,7 +69,7 @@ function stringify(val, isArrayProp) {
|
|
|
69
69
|
}
|
|
70
70
|
function index_default(val) {
|
|
71
71
|
const returnVal = stringify(val, false);
|
|
72
|
-
if (returnVal !==
|
|
72
|
+
if (returnVal !== void 0) {
|
|
73
73
|
return "" + returnVal;
|
|
74
74
|
}
|
|
75
75
|
}
|
package/dist/index.node.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.node.cjs","sourcesContent":["/**\n * This project is a fork of [nickyout/fast-stable-stringify](https://github.com/nickyout/fast-stable-stringify)\n *\n * The most popular repository providing this feature is [substack's json-stable-stringify](https://www.npmjs.com/package/json-stable-stringify). The intent of this library is to provide a faster alternative for when performance is more important than features. It assumes you provide basic javascript values without circular references, and returns a non-indented string.\n *\n * Just like substack's, it:\n *\n * - handles all variations of all basic javascript values (number, string, boolean, array, object, null, Date, BigInt)\n * - handles undefined _and_ function in the same way as `JSON.stringify`\n * - **does not support ie8 (and below) with complete certainty**.\n *\n * Unlike substack's, it:\n *\n * - does not implement the 'replacer' or 'space' arguments of the JSON.stringify method\n * - does not check for circular references\n *\n * @example\n * ```js\n * import stringify from '@solana/fast-stable-stringify';\n * stringify({ d: 0, c: 1, a: 2, b: 3, e: 4 }); // '{\"a\":2,\"b\":3,\"c\":1,\"d\":0,\"e\":4}'\n * ```\n *\n * @packageDocumentation\n */\nconst objToString = Object.prototype.toString;\nconst objKeys =\n Object.keys ||\n function (obj) {\n const keys = [];\n for (const name in obj) {\n keys.push(name);\n }\n return keys;\n };\n\nfunction stringify(val: unknown, isArrayProp: boolean) {\n let i, max, str, keys, key, propVal, toStr;\n if (val === true) {\n return 'true';\n }\n if (val === false) {\n return 'false';\n }\n switch (typeof val) {\n case 'object':\n if (val === null) {\n return null;\n } else if ('toJSON' in val && typeof val.toJSON === 'function') {\n return stringify(val.toJSON(), isArrayProp);\n } else {\n toStr = objToString.call(val);\n if (toStr === '[object Array]') {\n str = '[';\n max = (val as unknown[]).length - 1;\n for (i = 0; i < max; i++) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true) + ',';\n }\n if (max > -1) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true);\n }\n return str + ']';\n } else if (toStr === '[object Object]') {\n // only object is left\n keys = objKeys(val).sort();\n max = keys.length;\n str = '';\n i = 0;\n while (i < max) {\n key = keys[i];\n propVal = stringify((val as Record<typeof key, unknown>)[key], false);\n if (propVal !== undefined) {\n if (str) {\n str += ',';\n }\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += JSON.stringify(key) + ':' + propVal;\n }\n i++;\n }\n return '{' + str + '}';\n } else {\n return JSON.stringify(val);\n }\n }\n case 'function':\n case 'undefined':\n return isArrayProp ? null : undefined;\n case 'bigint':\n return `${val.toString()}n`;\n case 'string':\n return JSON.stringify(val);\n default:\n return isFinite(val as number) ? val : null;\n }\n}\n\nexport default function (\n val:\n | Function // eslint-disable-line @typescript-eslint/no-unsafe-function-type\n | undefined,\n): undefined;\nexport default function (val: unknown): string;\nexport default function (val: unknown): string | undefined {\n const returnVal = stringify(val, false);\n if (returnVal !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n return '' + returnVal;\n }\n}\n"]}
|
package/dist/index.node.mjs
CHANGED
|
@@ -41,7 +41,7 @@ function stringify(val, isArrayProp) {
|
|
|
41
41
|
while (i < max) {
|
|
42
42
|
key = keys[i];
|
|
43
43
|
propVal = stringify(val[key], false);
|
|
44
|
-
if (propVal !==
|
|
44
|
+
if (propVal !== void 0) {
|
|
45
45
|
if (str) {
|
|
46
46
|
str += ",";
|
|
47
47
|
}
|
|
@@ -56,7 +56,7 @@ function stringify(val, isArrayProp) {
|
|
|
56
56
|
}
|
|
57
57
|
case "function":
|
|
58
58
|
case "undefined":
|
|
59
|
-
return isArrayProp ? null :
|
|
59
|
+
return isArrayProp ? null : void 0;
|
|
60
60
|
case "bigint":
|
|
61
61
|
return `${val.toString()}n`;
|
|
62
62
|
case "string":
|
|
@@ -67,7 +67,7 @@ function stringify(val, isArrayProp) {
|
|
|
67
67
|
}
|
|
68
68
|
function index_default(val) {
|
|
69
69
|
const returnVal = stringify(val, false);
|
|
70
|
-
if (returnVal !==
|
|
70
|
+
if (returnVal !== void 0) {
|
|
71
71
|
return "" + returnVal;
|
|
72
72
|
}
|
|
73
73
|
}
|
package/dist/index.node.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.node.mjs","sourcesContent":["/**\n * This project is a fork of [nickyout/fast-stable-stringify](https://github.com/nickyout/fast-stable-stringify)\n *\n * The most popular repository providing this feature is [substack's json-stable-stringify](https://www.npmjs.com/package/json-stable-stringify). The intent of this library is to provide a faster alternative for when performance is more important than features. It assumes you provide basic javascript values without circular references, and returns a non-indented string.\n *\n * Just like substack's, it:\n *\n * - handles all variations of all basic javascript values (number, string, boolean, array, object, null, Date, BigInt)\n * - handles undefined _and_ function in the same way as `JSON.stringify`\n * - **does not support ie8 (and below) with complete certainty**.\n *\n * Unlike substack's, it:\n *\n * - does not implement the 'replacer' or 'space' arguments of the JSON.stringify method\n * - does not check for circular references\n *\n * @example\n * ```js\n * import stringify from '@solana/fast-stable-stringify';\n * stringify({ d: 0, c: 1, a: 2, b: 3, e: 4 }); // '{\"a\":2,\"b\":3,\"c\":1,\"d\":0,\"e\":4}'\n * ```\n *\n * @packageDocumentation\n */\nconst objToString = Object.prototype.toString;\nconst objKeys =\n Object.keys ||\n function (obj) {\n const keys = [];\n for (const name in obj) {\n keys.push(name);\n }\n return keys;\n };\n\nfunction stringify(val: unknown, isArrayProp: boolean) {\n let i, max, str, keys, key, propVal, toStr;\n if (val === true) {\n return 'true';\n }\n if (val === false) {\n return 'false';\n }\n switch (typeof val) {\n case 'object':\n if (val === null) {\n return null;\n } else if ('toJSON' in val && typeof val.toJSON === 'function') {\n return stringify(val.toJSON(), isArrayProp);\n } else {\n toStr = objToString.call(val);\n if (toStr === '[object Array]') {\n str = '[';\n max = (val as unknown[]).length - 1;\n for (i = 0; i < max; i++) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true) + ',';\n }\n if (max > -1) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += stringify((val as unknown[])[i], true);\n }\n return str + ']';\n } else if (toStr === '[object Object]') {\n // only object is left\n keys = objKeys(val).sort();\n max = keys.length;\n str = '';\n i = 0;\n while (i < max) {\n key = keys[i];\n propVal = stringify((val as Record<typeof key, unknown>)[key], false);\n if (propVal !== undefined) {\n if (str) {\n str += ',';\n }\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n str += JSON.stringify(key) + ':' + propVal;\n }\n i++;\n }\n return '{' + str + '}';\n } else {\n return JSON.stringify(val);\n }\n }\n case 'function':\n case 'undefined':\n return isArrayProp ? null : undefined;\n case 'bigint':\n return `${val.toString()}n`;\n case 'string':\n return JSON.stringify(val);\n default:\n return isFinite(val as number) ? val : null;\n }\n}\n\nexport default function (\n val:\n | Function // eslint-disable-line @typescript-eslint/no-unsafe-function-type\n | undefined,\n): undefined;\nexport default function (val: unknown): string;\nexport default function (val: unknown): string | undefined {\n const returnVal = stringify(val, false);\n if (returnVal !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n return '' + returnVal;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAkGA,MAAM,CAAC,OAAO,WACV,GAAG,EACG,QAAQ,GACR,SAAS,GAChB,SAAS,CAAC;AACb,MAAM,CAAC,OAAO,WAAW,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC"}
|