UNPKG

1.74 kBTypeScriptView Raw
1declare namespace serializeJavascript {
2 interface SerializeJSOptions {
3 /**
4 * This option is the same as the space argument that can be passed to JSON.stringify.
5 * It can be used to add whitespace and indentation to the serialized output to make it more readable.
6 */
7 space?: string | number | undefined;
8 /**
9 * This option is a signal to serialize() that the object being serialized does not contain any function or regexps values.
10 * This enables a hot-path that allows serialization to be over 3x faster.
11 * If you're serializing a lot of data, and know its pure JSON, then you can enable this option for a speed-up.
12 */
13 isJSON?: boolean | undefined;
14 /**
15 * This option is to signal serialize() that we want to do a straight conversion, without the XSS protection.
16 * This options needs to be explicitly set to true. HTML characters and JavaScript line terminators will not be escaped.
17 * You will have to roll your own.
18 */
19 unsafe?: true | undefined;
20 /**
21 * This option is to signal serialize() that we do not want serialize JavaScript function.
22 * Just treat function like JSON.stringify do, but other features will work as expected.
23 */
24 ignoreFunction?: boolean | undefined;
25 }
26}
27
28/**
29 * Serialize JavaScript to a superset of JSON that includes regular expressions and functions.
30 * @param input data to serialize
31 * @param options optional object
32 * @returns serialized data
33 */
34declare function serializeJavascript(
35 input: any,
36 options?: serializeJavascript.SerializeJSOptions | number | string,
37): string;
38
39export = serializeJavascript;