Add editorconfig, resolve differences
This includes newlines, tabs, among other things.
This commit is contained in:
parent
80d0a69dab
commit
b4fb21475c
90 changed files with 1707 additions and 1701 deletions
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
module.exports = function(object) {
|
||||
if (Object.prototype.toString.call(object) !== "[object Object]") return ""
|
||||
|
||||
|
||||
var args = []
|
||||
for (var key in object) {
|
||||
destructure(key, object[key])
|
||||
}
|
||||
return args.join("&")
|
||||
|
||||
|
||||
function destructure(key, value) {
|
||||
if (value instanceof Array) {
|
||||
for (var i = 0; i < value.length; i++) {
|
||||
|
|
@ -22,4 +22,4 @@ module.exports = function(object) {
|
|||
}
|
||||
else args.push(encodeURIComponent(key) + (value != null && value !== "" ? "=" + encodeURIComponent(value) : ""))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,13 +3,13 @@
|
|||
module.exports = function(string) {
|
||||
if (string === "" || string == null) return {}
|
||||
if (string.charAt(0) === "?") string = string.slice(1)
|
||||
|
||||
|
||||
var entries = string.split("&"), data = {}, counters = {}
|
||||
for (var i = 0; i < entries.length; i++) {
|
||||
var entry = entries[i].split("=")
|
||||
var key = decodeURIComponent(entry[0])
|
||||
var value = entry.length === 2 ? decodeURIComponent(entry[1]) : ""
|
||||
|
||||
|
||||
//TODO refactor out
|
||||
var number = Number(value)
|
||||
if (value !== "" && !isNaN(number) || value === "NaN") value = number
|
||||
|
|
@ -19,7 +19,7 @@ module.exports = function(string) {
|
|||
var date = new Date(value)
|
||||
if (!isNaN(date.getTime())) value = date
|
||||
}
|
||||
|
||||
|
||||
var levels = key.split(/\]\[?|\[/)
|
||||
var cursor = data
|
||||
if (key.indexOf("[") > -1) levels.pop()
|
||||
|
|
@ -39,4 +39,4 @@ module.exports = function(string) {
|
|||
}
|
||||
}
|
||||
return data
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<script src="../../querystring/build.js"></script>
|
||||
<script src="test-parseQueryString.js"></script>
|
||||
<script src="test-buildQueryString.js"></script>
|
||||
|
||||
|
||||
<script>require("../../ospec/ospec").run()</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -6,77 +6,77 @@ var buildQueryString = require("../../querystring/build")
|
|||
o.spec("buildQueryString", function() {
|
||||
o("handles flat object", function() {
|
||||
var string = buildQueryString({a: "b", c: 1})
|
||||
|
||||
|
||||
o(string).equals("a=b&c=1")
|
||||
})
|
||||
o("handles escaped values", function() {
|
||||
var data = buildQueryString({";:@&=+$,/?%#": ";:@&=+$,/?%#"})
|
||||
|
||||
|
||||
o(data).equals("%3B%3A%40%26%3D%2B%24%2C%2F%3F%25%23=%3B%3A%40%26%3D%2B%24%2C%2F%3F%25%23")
|
||||
})
|
||||
o("handles unicode", function() {
|
||||
var data = buildQueryString({"ö": "ö"})
|
||||
|
||||
|
||||
o(data).equals("%C3%B6=%C3%B6")
|
||||
})
|
||||
o("handles nested object", function() {
|
||||
var string = buildQueryString({a: {b: 1, c: 2}})
|
||||
|
||||
|
||||
o(string).equals("a%5Bb%5D=1&a%5Bc%5D=2")
|
||||
})
|
||||
o("handles deep nested object", function() {
|
||||
var string = buildQueryString({a: {b: {c: 1, d: 2}}})
|
||||
|
||||
|
||||
o(string).equals("a%5Bb%5D%5Bc%5D=1&a%5Bb%5D%5Bd%5D=2")
|
||||
})
|
||||
o("handles nested array", function() {
|
||||
var string = buildQueryString({a: ["x", "y"]})
|
||||
|
||||
|
||||
o(string).equals("a%5B0%5D=x&a%5B1%5D=y")
|
||||
})
|
||||
o("handles deep nested array", function() {
|
||||
var string = buildQueryString({a: [["x", "y"]]})
|
||||
|
||||
|
||||
o(string).equals("a%5B0%5D%5B0%5D=x&a%5B0%5D%5B1%5D=y")
|
||||
})
|
||||
o("handles deep nested array in object", function() {
|
||||
var string = buildQueryString({a: {b: ["x", "y"]}})
|
||||
|
||||
|
||||
o(string).equals("a%5Bb%5D%5B0%5D=x&a%5Bb%5D%5B1%5D=y")
|
||||
})
|
||||
o("handles deep nested object in array", function() {
|
||||
var string = buildQueryString({a: [{b: 1, c: 2}]})
|
||||
|
||||
|
||||
o(string).equals("a%5B0%5D%5Bb%5D=1&a%5B0%5D%5Bc%5D=2")
|
||||
})
|
||||
o("handles date", function() {
|
||||
var string = buildQueryString({a: new Date(0)})
|
||||
|
||||
|
||||
o(string).equals("a=" + encodeURIComponent(new Date(0).toString()))
|
||||
})
|
||||
o("turns null into value-less string (like jQuery)", function() {
|
||||
var string = buildQueryString({a: null})
|
||||
|
||||
|
||||
o(string).equals("a")
|
||||
})
|
||||
o("turns undefined into value-less string (like jQuery)", function() {
|
||||
var string = buildQueryString({a: undefined})
|
||||
|
||||
|
||||
o(string).equals("a")
|
||||
})
|
||||
o("turns empty string into value-less string (like jQuery)", function() {
|
||||
var string = buildQueryString({a: ""})
|
||||
|
||||
|
||||
o(string).equals("a")
|
||||
})
|
||||
o("handles zero", function() {
|
||||
var string = buildQueryString({a: 0})
|
||||
|
||||
|
||||
o(string).equals("a=0")
|
||||
})
|
||||
o("handles false", function() {
|
||||
var string = buildQueryString({a: false})
|
||||
|
||||
|
||||
o(string).equals("a=false")
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue