Javascript
javascript
expressions use to the otto Javascript VM
display-with-javascript.yamlapiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: currency-converter-display-js
spec:
http:
- name: USD
url: https://api.frankfurter.app/latest?from=USD&to=GBP,EUR,ILS
display:
javascript: |
currencyCodes = { "EUR": "€", "GBP": "£", "ILS": "₪"}
display = []
for (var currency in json.rates) {
display.push(currency + " = " + currencyCodes[currency] + json.rates[currency])
}
// final output to display
"$1 = " + display.join(", ")
Troubleshooting
You can print to the console for rapid development e.g. console.log(JSON.stringify(json))
, this is only shown in the logs
Underscore
The underscore library is automatically imported so you can do the following:
display-format-with-underscore.yamlapiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: http-check
spec:
http:
- name: USD
url: https://api.frankfurter.app/latest?from=USD&to=GBP,EUR,ILS
display:
javascript: |
currencyCodes = { "EUR": "€", "GBP": "£", "ILS": "₪"}
"$1 = " + _.map(json.rates, function(rate, currency) {
return currencyCodes[currency] + rate;
}).join(", ");