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
Additional resources
Videos
Blog posts