All Flows Query Language (FQL) functions are documented below.
Returns true if all provided conditions are true. In the example below, value1 has a value of 20.
| Syntax | condition1 and condition2 |
| Example |
value1 > 18 and value1 < 100 -> true value1 > 18 and value1 > 100 -> false |
Returns true if at least one of the provided conditions is true. In the example below, value1 has a value of 20.
| Syntax | condition1 or condition2 |
| Example |
value1 < 18 or value1 < 100 -> true value1 < 18 or value1 > 100 -> false |
Throws an error with the message if a condition is false.
| Syntax | $assert($cond: bool, $msg: string) => error |
| Example | $assert(user.age <18, "error: user can't vote!") |
Returns the average value of a numeric array.
| Syntax | $average($array: array<num>) =< number |
| Example | $average([1,2,3,4,5]) -> 3 |
Casts an argument to its effective boolean value.
| Syntax | $boolean($arg: any) => bool |
| Example |
$boolean(0) -> false
$boolean(10) -> true
$boolean("") -> false
$boolean("abc") -> true
|
Returns true if a string contains a pattern.
| Syntax | $contains($str: string, $pattern: string | regex) => bool |
| Example |
$contains("hello, world", "lo") -> true
$contains("hello world", "ab") -> false
|
Decodes a string from a URL.
| Syntax | $decodeUrl($val: string) => string |
| Example | $decodeUrl("https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B") -> "https://mozilla.org/?x=шеллы" |
Decodes a string from a component created with encodeUrlComponent.
| Syntax | $decodeUrlComponent($val: string) => string |
| Example | $decodeUrlComponent("%3Fx%3Dtest") -> "?x=test" |
Applies a function to each key/value pair of an object.
| Syntax | $each($obj: object, func: ($val, $key) : any) |
| Example |
"Address": {
"Street": "Hursley Park",
"City": "Winchester",
"Postcode": "SO21 2JN"
}
$each(Address, fn($v, $k) {$k & ": " & $v}) ->
[
"Street: Hursley Park",
"City: Winchester",
"Postcode: SO21 2JN"
]
|
Encodes a value into a URL.
| Syntax | $encodeUrl($val: string) => string |
| Example | $encodeUrl("https://mozilla.org/?x=шеллы") -> "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B" |
Encodes a value into a component for a URL.
| Syntax | $encodeUrlComponent($val: string) => string |
| Example | $encodeUrlComponent("?x=test") -> "%3Fx%3Dtest" |
Evaluates an expression.
| Syntax | $eval($val:string) => any |
| Example | $eval("[1,$string(2),3]") -> [1,"2",3] |
Returns true if a value isn’t null or undefined.
| Syntax | $exists($val: any) => bool |
| Example |
$exists("hello") -> true
$exists([1,2,3]) -> true
$exists({"a" : 1, "b": 2}) -> true
$exists(null) -> false
$exists(blah) -> false
|
Returns an array of elements which satisfy the predicate defined in a function.
| Syntax | $filter($arr: array, $func: ($e, $index?: number?, $ar: array )=> boolean) => array |
| Example | $filter([1,2,3,4,5], fn($e){ $e>3}) -> [4, 5] |
Joins the elements of an array into a string using the optional separator string.
| Syntax |
$join($arr: array |
| Example |
$join(["hello", "world"]) -> "helloworld" $join(["hello", "world"], "-") → "hello-world" $join([1,2,3], "..") -> "1..2..3" |
Converts an object to a JSON string.
| Syntax | $json($val:any) => string |
| Example | $json({"a": 1, "b" : "hello"}) -> "{"a":1,"b":"hello"}" |
Parses a JSON string into an object.
| Syntax | $jsonParse($val:string) => object |
| Example | $jsonParse('{"one": 1, "two": [3, "four"]}') -> {"one": 1,"two": [ 3,"four"]} |
Returns an array of the keys in an object.
| Syntax |
$keys($obj: object) => array |
| Example |
"Product": [
{
"Product Name": "Bowler Hat",
"ProductID": 858383,
"SKU": "0406654608",
"Description": {
"Colour": "Purple",
"Width": 300,
"Height": 200,
"Depth": 210,
"Weight": 0.75
},
"Price": 34.45,
"Quantity": 2
}
]
$keys(Product) -> ["Product Name","ProductID","SKU","Description","Price","Quantity"]
|
Returns the length of a string.
| Syntax | $length($str: string) => number |
| Example |
$length("abc") -> 3
$length("") -> 0
|
Returns the value of a key in an object.
| Syntax | $lookup($obj: object, $key: string) => any |
| Example | ($o := { "name" : "John", "email": "john@gmail.com"}; $lookup($o, "name")) -> "John" |
Returns the lowercase version of a string.
| Syntax | $lowercase($str: string) => string |
| Example | $lowercase("Hello World") -> "hello world" |
Maps each element of an array using a function and returns a new array with all the mapped elements.
| Syntax | $map($arr: array, $func: ($e, $index?: number?, $ar: array ) : array |
| Example | $map([1,2,3,4,5], fn($e){ $e *2}) -> [2,4,6,8,10] |
Returns the maximum value from a numeric array.
| Syntax | $max($array) => number |
| Example | $max([9,2,17,3]) -> 17 |
Returns an array of strings that match a pattern.
| Syntax |
$match($str: string, $pattern: string | regex) => array |
| Example | $match("ababbabbbcc",/a(b+)/) -> ["ab", "abb", "abbb"] |
Returns a new object with the properties of each object in an array of objects merged into it.
| Syntax | $merge($arr: array |
| Example | $merge([{"a":1},{"b":2}]) -> {"a": 1,"b": 2} |
Returns true if a value is false, or false otherwise.
| Syntax | $not($x: any) => bool |
| Example |
$not(true) -> false
$not(false) -> true
$not(null) -> true
$not(0) -> true
$not(100) -> false
$not("") -> true
$not("hello") -> false
|
Returns a copy of a string padded to a length with $pad (if provided).
| Syntax | $pad($str: string, $length: number, $pad?: string) => string |
| Example |
$pad("example", 5) -> "example "
$pad("example", 5, "-") -> "example--"
|
Partitions an array into an array of arrays of size $n.
| Syntax | $partition($array:any, $n: numbers) => array |
| Example |
$partition([1,2,3,4,5,6,7,8,9,10], 2) -> [[1,2], [3,4], [5,6], [7,8], [9,10]] $partition([1,2,3,4,5,6,7,8,9,10], 3) -> [[1,2,3], [4,5,6], [7,8,9], [10]] |
Returns a string with all occurrences of a pattern replaced by a replacement string.
| Syntax | $replace($str: string, $pattern: string | regex, $replacement: string) => string |
| Example |
$replace("Hello World", "World", "Everyone") -> "Hello Everyone"
$replace("the cat sat on the mat", "at", "it") -> "the cit sit on the mit"
|
Reduces an array to some value using a function.
| Syntax | $reduce(array, function [, init]) |
| Example | $reduce([1,2,3,4], fn($prev, $cur) { $prev*$cur}) ) -> 24 |
Splits a string into an array of strings using a pattern.
| Syntax |
$split($str: string, $pattern: string | regex, $flags?: string) => array |
| Example |
$split("so many words", " ") -> [ "so", "many", "words" ]
$split("so many words", " ", 2) -> [ "so", "many" ]
$split("too much, punctuation. hard; to read", /[ ,.;]+/) -> ["too", "much", "punctuation", "hard", "to", "read"]
|
Returns an array of objects with a single key/value pair, where the key is the name of the property and the value is the value of the property.
| Syntax | $spread($val: any) => array<object> |
| Example | $spread({ "a": 1, "b": 2}) -> [ { "a" : 1}, {"b": 2}] |
Returns the string representation of the input value. If $prettify is true, the output string is formatted for readability.
| Syntax | $string($value: any, $prettify? true | false) => string |
| Example |
$string({"a": 1, "b": 2}) -> "{"a":1, "b" : 2}"
$string(5) -> "5"
$string([1,2,3]) -> ["1", "2", "3"]
|
Returns a substring of a string starting at $start and with length $length (if provided).
| Syntax | $substring($str: string, $start: number, $length?: number) => string |
| Example |
$substring("hello world", 0, 5) -> "hello"
$substring("hello world", -5, 5) -> "world"
|
Returns the substring of a string after the first occurrence of a separator.
| Syntax | $substringAfter($str: string, $separator: string) => string |
| Example | $substringAfter("abc@gmail.com", "@") -> "gmail.com" |
Returns the substring of a string before the first occurrence of a separator.
| Syntax | $substringBefore($str: string, $separator: string) => string |
| Example | $substringBefore( "john@gmail.com", "@") -> "john" |
Returns the sum of the values of a numeric array.
| Syntax | $sum($array) => number |
| Example | $sum([1,2,3,4]) -> 10 |
Returns a copy of a string with leading and trailing whitespace removed.
| Syntax | $trim($str: string) => string |
| Example | $trim(" Hello \n World ") -> "Hello World" |
Returns the type of a value.
| Syntax | $type($val: any) => string |
| Example |
$type("hello") -> "string"
$type(1) -> "number"
$type({}) -> "object"
$type([]) -> "array"
$type(null) -> "null"
|
Returns the uppercase version of a string
| Syntax | $uppercase($str: string) => string |
| Example | $uppercase("hello") -> "HELLO" |
Returns a unique ID (UUID version 4) as a string.
| Syntax | $uuid => string |
| Example | $uuid -> "503c5a9f-b8fb-402a-b0d7-fae17490bdf6" |
Returns a new array with a value appended (added) to an array.
| Syntax | $append($arr: array, $val: any) => array |
| Example |
$append([1,2,3], [5,6]) -> [1,2,3,4,5,6] $append([1,2,3], 5) -> [1,2,3,5] |
Returns the number of elements in an array.
| Syntax | $count($array) => number |
| Example |
$count([1,2,3,4,5]) -> 5 $count([]) -> 0 |
Returns a new array with the distinct elements of $arr with duplicates eliminated.
| Syntax | $distinct($arr: array) => array |
| Example | $distinct(["a", "b", "b", "c"]) -> ["a", "b", "c"] |
Returns a new array with the elements of an array in reverse order.
| Syntax | $reverse($arr: array) => array |
| Example | $reverse([1,2,3,4,5]) -> [5,4,3,2,1] |
Returns a new array with the elements of an array in random order.
| Syntax | $shuffle($arr: array) => array |
| Example | $shuffle([1,2,3,4]) -> [3,1,4,2] |
A higher-order function that sorts the elements of an array using the $swapFn function. The comparator function takes two arguments. If it returns true, the elements will be swapped.
| Syntax | $sort($arr: array, $swapFn: ($l, $r)) => boolean |
| Example |
$sort([13,2,8,6,15], fn($l, $r) { $l > $r }) -> [2,6,8,13,15]
$sort([13,2,8,6,15], fn($l, $r) { $l < $r }) -> [15,13,8,6,2]
|
Takes two or more arrays and convolves (zips) each value from a set of arrays.
| Syntax | $zip($ar1:Array, $ar2:Array, $ar3;Array, ...) => Array |
| Example | $zip([1,2,3],[4,5,6]) -> [[1,4],[2,5],[3,6]] |
Returns the absolute value of a number.
| Syntax | $abs(n:number) : number |
| Example | $abs(-1) -> 1 |
Returns the arc cosine of a number of radians. The result is between 0 and pi. The number must be between —1 and 1.
| Syntax | $acos($num: number) => number |
| Example | $acos(1) -> 0 |
Returns the inverse hyperbolic cosine of a number, in radians. The number must be number between 1 and inf. The result is between 0 and inf.
| Syntax | $acosh($num: number) => number |
| Example | $acosh(1) -> 0 |
Returns the arc sine of a number of radians. The result is between -pi/2 and pi/2. The number must be between -1 and 1.
| Syntax | $asin($num: number) => number |
| Example | $asin(1) -> 1.5707963267948966 |
Returns the inverse hyperbolic sine of a number, in radians. The result is between -inf and inf.
| Syntax | $asinh($num: number) => number |
| Example | $asinh(1) -> 1.5707963267948966 |
Returns the arc tangent of a number of radians. The result is between -pi/2 and pi/2.
| Syntax | $atan($num: number) => number |
| Example | $atan(1) -> 0.7853981633974483 |
Returns the inverse hyperbolic tangent of a number, in radians. The number must be between -1 and 1. The result is between -inf and inf.
| Syntax | $atanh($num: number) => number |
| Example | $atanh(1) -> inf |
Returns atan(y / x), in radians. The result is between -pi and pi. The vector in the plane from the origin to point (x, y) makes this angle with the positive X axis. The signs of both inputs are known to it, so it can compute the correct quadrant for the angle. For example, atan(1) and atan2(1, 1) are both pi/4, but atan2(-1, -1) is -3*pi/4.
| Syntax | $atan2($x: number, $y: number) => number |
| Example | $atan2(-1, -1) -> -2.356194490192345 |
Returns the cube root of a number.
| Syntax | $cbrt($num: number) => number |
| Example | $cbrt(27) -> 3 |
Returns the smallest integer greater than or equal to a number.
| Syntax | $ceil($num: number) => number |
| Example | $ceil(3.4) -> 4 |
Returns the constant value with the given name. For example: e, ln 2, log2 e, log10 e, pi, or π.
| Syntax | $constant($name: string ) => number |
| Example | $constant('e') -> 2.718281828459045 |
Returns the cosine of a number of radians.
| Syntax | $cos($num: number) => number |
| Example | $cos(1) -> 0.5403023058681398 |
Returns the hyperbolic cosine of a number of radians.
| Syntax | $cosh($num: number) => number |
| Example | $cosh(1) -> 1.5430806348152437 |
Returns e raised to the power of a number, where e = 2.718281… is the base of natural logarithms.
| Syntax | $exp($num: number) => number |
| Example | $exp(16) -> 8886110.520507872 |
Returns the largest integer less than or equal to a number.
| Syntax | $floor($num: number) => number |
| Example | $floor(3.4) -> 3 |
Converts a number to a string in the optional base number system, if a base isn’t supplied, base 10 is used to create the string.
| Syntax | $formatBase($num: number, $base?: number) => string |
| Example | $formatBase(100, 2) -> "1100100" |
Returns true if the value input isn’t infinity, and false otherwise.
| Syntax | $isFinite( $num: number ) => number |
| Example |
$isFinite(1) -> true $isFinite(inf) -> false |
Returns the natural logarithm of a number (base e).
| Syntax | $log($num: number) => number |
| Example | $log(16) -> 2.772588722239781 |
Returns the base 10 logarithm of a number.
| Syntax | $log10($num: number) => number |
| Example | $log10(16) -> 1.2041199826559248 |
Returns the base 2 logarithm of a number.
| Syntax | $log2($num: number) => number |
| Example | $log2(16) -> 4 |
Converts a value to a number.
| Syntax | $number($x: string | number | bool) => number |
| Example |
$number("-0.05") -> -0.05
$number(false) -> 0
$number(true) -> 1
|
Returns $num raised to the $exp power.
| Syntax | $power($num: number, $exp: number) => number |
| Example |
$power(2, 3) -> 8 $power(3,4) -> 81 |
Rounds a number to the optional precision number of decimal places. If precision is negative, then its value specifies which column to round to on the left side of the decimal place.
| Syntax | $round($num: number, $precision?: number) => number |
| Example |
$round(123.456) -> 123 $round(123.456, 2) -> 123.46 $round(123.456, -1) -> 120 $round(123.456, -2) -> 100 $round(125, -1) -> 120 $round(125.456,-1) -> 130 |
Returns the sine of a number of radians.
| Syntax | $sin($num: number) => number |
| Example | $sin(1) -> 0.8414709848078965 |
Returns the hyperbolic sine of a number of radians.
| Syntax | $sinh($num: number) => number |
| Example | $sinh(1) -> 1.1752011936438014 |
Returns the square root of a number.
| Syntax | $sqrt($num: number) => number |
| Example | $sqrt(16) -> 4 |
Returns the tangent of a number of radians.
| Syntax | $tan($num: number) => number |
| Example | $tan(1) -> 1.5574077246549023 |
Returns the hyperbolic tangent of a number of radians.
| Syntax | $tanh($num: number) => number |
| Example | $tanh(1) -> 0.7615941559557649 |
Returns true if $timestamp1 is after $timestamp2, false otherwise.
| Syntax | $afterDate($timestamp1: string |number, $timestamp2: string |number) => boolean |
| Example | $afterDate("2023-02-09", "2023-02-08") -> true $afterDate("2023-02-08", "2023-02-08") -> false |
Returns true if $timestamp1 is before $timestamp2, false otherwise.
| Syntax | $beforeDate($timestamp1: string |number, $timestamp2: string |number) => boolean |
| Example |
$beforeDate("2023-02-07", "2023-02-08") -> true
$beforeDate("2023-02-08", "2023-02-08") -> false
|
Returns true if the two timestamps are the same, false otherwise.
| Syntax | $dateEquals($timestamp1: string |number, $timestamp2: string |number) => boolean |
| Example |
$dateEquals("2023-02-08", "2023-02-08") -> true
$dateEquals("2023-02-08", "2023-02-07") -> false
|
Adds a duration of type $units which can be one of [“years”, “months”, “days”, “hours”, “minutes”, “seconds”, “milliseconds”], to a $timestamp and returns the new timestamp. If $duration is less than zero, then it will be subtracted from the $timestamp.
| Syntax | $datePlus($timestamp1: string |number, $duration: number, $units, ) => number |
| Example |
$datePlus("2023-02-07", 2, "days") -> 1675900800000
$datePlus("2023-02-07", 2, "months") -> 1680825600000
|
Extracts the day from a timestamp and returns it as a number.
| Syntax | $day($timestamp: string |number) => number |
| Example | $day("2023-02-08") -> 8 |
Returns the day of the week as a number.
| Syntax | $dayOfTheWeek($timestamp: string |number) => number |
| Example |
$dayOftheWeek("2023-02-08") -> 3
$dayOftheWeek("2023-02-07") -> 2
|
| Number | Day |
|---|---|
| 0 | Sunday |
| 1 | Monday |
| 2 | Tuesday |
| 3 | Wednesday |
| 4 | Thursday |
| 5 | Friday |
| 6 | Saturday |
Returns the difference between two timestamps in the units specified which can be one of [“years”, “months”, “days”, “hours”, “minutes”, “seconds”, “milliseconds”].
| Syntax | $diffDate($timestamp1: string |number, $timestamp2: string |number, $units : string, ) => number |
| Example |
$diffDate("2023-02-08", "2023-01-22", "days") -> 17
$diffDate("2023-02-08", "2023-01-22","hours") -> 408
|
Converts a number of milliseconds since the epoch to a string. $picture is optional, if not provided it will default to ISO format. Picture specs are as per Unicode date format standards.
| Syntax | $fromMillis($val:number, $picture?: string) => string |
| Example |
$fromMillis(1521801216617, "dd/M/yyyy") -> "23/3/2018" $fromMillis(1522616700000, "E EEEE") -> "7 Sunday" |
Returns true if the components specified in $units of the two timestamps are the same, false otherwise. $units is an array with one or more strings from [“years”, “months”, “days”, “hours”, “minutes”, “seconds”, “milliseconds”].
| Syntax |
$hasSameDate($timestamp1: string |number, $timestamp2: string |number, units?: Array |
| Example |
$hasSameDate("23-02-08", "2019-02-08", ["month", "day"]) -> true
$hasSameDate("2023-02-01", "2023-02-08", ["month", "year"]) -> true
$hasSameDate("23-02-01", "2023-02-08", ["month", "year"]) -> true
$hasSameDate("2023-02-01T07:15:54.730Z", "2023-02-01T14:00:22.340Z", ["year","month", "day"]) -> true
|
Extracts the local hour component from a timestamp and returns it as a number.
| Syntax | $hours($timestamp: string |number) => number |
| Example | $hours("2023-02-08T07:56:14.747+00:00") -> 7 |
Extracts the milliseconds from a timestamp and returns it as a number.
| Syntax | $milliSeconds($timestamp: string |number) => number |
| Example | $milliSeconds("2023-02-08T07:56:14.747+00:00") -> 747 |
Extracts the minutes component from a timestamp and returns it as a number.
| Syntax | $minutes($timestamp: string |number) => number |
| Example | $minutes("2023-02-08T07:56:14.747+00:00") -> 56 |
Extracts the month component from a timestamp.
| Syntax | $month($timestamp: string |number) => number |
| Example | $month("2023-02-08") -> 2 |
Extracts the local seconds component from a timestamp and returns it as a number.
| Syntax | $seconds($timestamp: string |number) => number |
| Example | $seconds("2023-02-08T07:56:14.747+00:00") -> 14 |
Converts a string to a number of milliseconds since the epoch. $picture is optional, if not provided it will default to ISO format. Picture specs are as per Unicode date format standards.
| Syntax | $toMillis($val:string, $picture?: string) => number |
| Example |
$toMillis("1970-01-01T00:00:00.001Z") -> 1
$toMillis("2018-03-27", "yyyy-MM-dd") -> 1522108800000
$toMillis("21 August 2017", "dd MMMM yyyy") -> 1503273600000
|
Extracts the year component from a timestamp and returns it as a number.
| Syntax | $year($timestamp: string |number) => number |
| Example | $year("2023-02-08T07:56:14.747+00:00") -> 2023 |
Last modified: 2024/11/08