Response Query
The res
object that is available inside the post-response variables and scripts. contexts can be queried for data by invoking it like below.
Think of it as lodash.get()
on steroids
res('order.total')
Examples
const data = {
customer: {
address: {
city: "bangalore"
},
orders: [
{
id: "order-1",
items: [
{ id: 1, amount: 10 },
{ id: 2, amount: 20 }
]
},
{
id: "order-2",
items: [
{ id: 3, amount: 30 },
{ id: 4, amount: 40 }
]
}
]
},
};
Query | Output |
---|---|
res(“customer.address.city”) | bangalore |
res(“customer.orders.items.amount”) | [10, 20, 30, 40] |
res(“customer.orders.items.amount[0]”) | 10 |
res("..items.amount") | [10, 20, 30, 40] |
res("..amount") | [10, 20, 30, 40] |
res("..items.amount[0]") | 10 |
res("..items[0].amount") | 10 |
res("..items[5].amount") | undefined |
res("..id") | [“order-1”, 1, 2, “order-2”, 3, 4] |
res(“customer.orders.foo”) | undefined |
res("..customer.foo") | undefined |
res("..address") | [{ city: “bangalore” }] |
res("..address[0]") | { city: “bangalore” } |
API
Standard dot notation
Example:
res('customer.orders.items.amount')
Deep navigation .. double dots
Example:
res('..items.amount')
Array indexing
Example:
res('..items[0].amount')
Array filtering [?] with corresponding filter function
Example:
res('..items[?].amount', i => i.amount > 20)
Array mapping [?] with corresponding mapper function
Example:
res('..items..amount[?]', amt => amt + 10)