http-build-query
v0.8.1
Published
Generate URL-encoded query string from the object (php's http_build_query() in JavaScript)
Maintainers
Readme
httpBuildQuery()
Generate URL-encoded query string from the object (PHP's http_build_query() in JavaScript). Compatible with Node.js ≥6 and modern browsers.
Features
- PHP Compatibility: Implements PHP's
http_build_query()function behavior in JavaScript - Nested Structures: Handles nested objects and arrays with proper bracket notation
- Type Handling: Correctly converts booleans (
true→"1",false→"0"), numbers, strings,null, andundefined - Customizable: Supports numeric prefix, custom argument separator, and nested key formatting
- Browser & Node.js: Works in both browser and Node.js environments
- Zero Dependencies: Lightweight with no external dependencies
Installation
npm install http-build-queryOr using yarn:
yarn add http-build-queryFor browser usage, include via CDN:
<script src="https://unpkg.com/http-build-query"></script>API
httpBuildQuery(queryData, numericPrefix, argSeparator, tempKey)
Parameters
queryData(Object): The data to convert to query stringnumericPrefix(String|null): Prefix for numeric keys (default:null)argSeparator(String): Separator between arguments (default:"&")tempKey(String|null): Temporary key for nested objects (used internally for recursion)
Returns
- (String): URL-encoded query string
Usage Examples
Basic Usage
var httpBuildQuery = require("http-build-query");
var data = {
name: "John Doe",
age: 30,
active: true,
};
var query = httpBuildQuery(data);
// Result: "name=John+Doe&age=30&active=1"Numeric Prefix
var data = {
0: "value1",
1: "value2",
key: "value3",
};
var query = httpBuildQuery(data, "prefix_");
// Result: "prefix_0=value1&prefix_1=value2&key=value3"Custom Argument Separator
var data = { a: 1, b: 2, c: 3 };
var query = httpBuildQuery(data, null, ";");
// Result: "a=1;b=2;c=3"
var query2 = httpBuildQuery(data, null, "&");
// Result: "a=1&b=2&c=3"Complex Example (PHP Documentation Example)
var data = {
user: {
name: "Bob Smith",
age: 47,
sex: "M",
dob: "5/12/1956",
},
pastimes: ["golf", "opera", "poker", "rap"],
children: {
bobby: { age: 12, sex: "M" },
sally: { age: 8, sex: "F" },
},
"+0": "CEO",
};
var query = httpBuildQuery(data, "flags_");
// Result matches PHP's http_build_query() outputBrowser Usage
Direct Include
<script src="https://unpkg.com/http-build-query"></script>
<script>
var data = { q: "search term", page: 1 };
var query = httpBuildQuery(data);
console.log(query); // "q=search+term&page=1"
</script>Migration from Older Versions
Version 0.8.0 maintains full backward compatibility with previous versions. The only changes are internal improvements:
- Added
"use strict"directive - Improved code readability and documentation
- Updated dependencies
- Same API and behavior
License
MIT © Vlad Zadvorny
