You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
6.3 KiB
131 lines
6.3 KiB
/** |
|
* The `querystring` module provides utilities for parsing and formatting URL |
|
* query strings. It can be accessed using: |
|
* |
|
* ```js |
|
* const querystring = require('querystring'); |
|
* ``` |
|
* |
|
* The `querystring` API is considered Legacy. While it is still maintained, |
|
* new code should use the `URLSearchParams` API instead. |
|
* @deprecated Legacy |
|
* @see [source](https://github.com/nodejs/node/blob/v17.0.0/lib/querystring.js) |
|
*/ |
|
declare module 'querystring' { |
|
interface StringifyOptions { |
|
encodeURIComponent?: ((str: string) => string) | undefined; |
|
} |
|
interface ParseOptions { |
|
maxKeys?: number | undefined; |
|
decodeURIComponent?: ((str: string) => string) | undefined; |
|
} |
|
interface ParsedUrlQuery extends NodeJS.Dict<string | string[]> {} |
|
interface ParsedUrlQueryInput extends NodeJS.Dict<string | number | boolean | ReadonlyArray<string> | ReadonlyArray<number> | ReadonlyArray<boolean> | null> {} |
|
/** |
|
* The `querystring.stringify()` method produces a URL query string from a |
|
* given `obj` by iterating through the object's "own properties". |
|
* |
|
* It serializes the following types of values passed in `obj`:[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | |
|
* [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | |
|
* [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | |
|
* [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) | |
|
* [string\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | |
|
* [number\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | |
|
* [bigint\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | |
|
* [boolean\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) The numeric values must be finite. Any other input values will be coerced to |
|
* empty strings. |
|
* |
|
* ```js |
|
* querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }); |
|
* // Returns 'foo=bar&baz=qux&baz=quux&corge=' |
|
* |
|
* querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':'); |
|
* // Returns 'foo:bar;baz:qux' |
|
* ``` |
|
* |
|
* By default, characters requiring percent-encoding within the query string will |
|
* be encoded as UTF-8\. If an alternative encoding is required, then an alternative`encodeURIComponent` option will need to be specified: |
|
* |
|
* ```js |
|
* // Assuming gbkEncodeURIComponent function already exists, |
|
* |
|
* querystring.stringify({ w: '中文', foo: 'bar' }, null, null, |
|
* { encodeURIComponent: gbkEncodeURIComponent }); |
|
* ``` |
|
* @since v0.1.25 |
|
* @param obj The object to serialize into a URL query string |
|
* @param [sep='&'] The substring used to delimit key and value pairs in the query string. |
|
* @param [eq='='] . The substring used to delimit keys and values in the query string. |
|
*/ |
|
function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; |
|
/** |
|
* The `querystring.parse()` method parses a URL query string (`str`) into a |
|
* collection of key and value pairs. |
|
* |
|
* For example, the query string `'foo=bar&abc=xyz&abc=123'` is parsed into: |
|
* |
|
* ```js |
|
* { |
|
* foo: 'bar', |
|
* abc: ['xyz', '123'] |
|
* } |
|
* ``` |
|
* |
|
* The object returned by the `querystring.parse()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`, |
|
* `obj.hasOwnProperty()`, and others |
|
* are not defined and _will not work_. |
|
* |
|
* By default, percent-encoded characters within the query string will be assumed |
|
* to use UTF-8 encoding. If an alternative character encoding is used, then an |
|
* alternative `decodeURIComponent` option will need to be specified: |
|
* |
|
* ```js |
|
* // Assuming gbkDecodeURIComponent function already exists... |
|
* |
|
* querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, |
|
* { decodeURIComponent: gbkDecodeURIComponent }); |
|
* ``` |
|
* @since v0.1.25 |
|
* @param str The URL query string to parse |
|
* @param [sep='&'] The substring used to delimit key and value pairs in the query string. |
|
* @param [eq='='] . The substring used to delimit keys and values in the query string. |
|
*/ |
|
function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; |
|
/** |
|
* The querystring.encode() function is an alias for querystring.stringify(). |
|
*/ |
|
const encode: typeof stringify; |
|
/** |
|
* The querystring.decode() function is an alias for querystring.parse(). |
|
*/ |
|
const decode: typeof parse; |
|
/** |
|
* The `querystring.escape()` method performs URL percent-encoding on the given`str` in a manner that is optimized for the specific requirements of URL |
|
* query strings. |
|
* |
|
* The `querystring.escape()` method is used by `querystring.stringify()` and is |
|
* generally not expected to be used directly. It is exported primarily to allow |
|
* application code to provide a replacement percent-encoding implementation if |
|
* necessary by assigning `querystring.escape` to an alternative function. |
|
* @since v0.1.25 |
|
*/ |
|
function escape(str: string): string; |
|
/** |
|
* The `querystring.unescape()` method performs decoding of URL percent-encoded |
|
* characters on the given `str`. |
|
* |
|
* The `querystring.unescape()` method is used by `querystring.parse()` and is |
|
* generally not expected to be used directly. It is exported primarily to allow |
|
* application code to provide a replacement decoding implementation if |
|
* necessary by assigning `querystring.unescape` to an alternative function. |
|
* |
|
* By default, the `querystring.unescape()` method will attempt to use the |
|
* JavaScript built-in `decodeURIComponent()` method to decode. If that fails, |
|
* a safer equivalent that does not throw on malformed URLs will be used. |
|
* @since v0.1.25 |
|
*/ |
|
function unescape(str: string): string; |
|
} |
|
declare module 'node:querystring' { |
|
export * from 'querystring'; |
|
}
|
|
|