Taxi StdLib
Reference documentation on functions provided in Taxi's StdLib packages
Taxi ships with a collections of functions for basic operations on data.
These operations are performed locally on data received from services - it does not instruct remote services to perform these changes.
Taxi does not provide implementations of these functions, that's left to runtimes, such as Orbital.
Strings
A collection of functions for manipulating strings
left
taxi.stdlib.left
declare function left(source:String,count:Int):String
Returns the left most characters from the source string
right
taxi.stdlib.right
declare function right(source:String,count:Int):String
mid
taxi.stdlib.mid
declare function mid(source: String,startIndex: Int,endIndex: Int):String
Returns the middle of a string, starting at the startIndex
, and ending right before the endIndex
.
startIndex
- the start index (inclusive)endIndex
- the end index (exclusive)
concat
taxi.stdlib.concat
declare function concat(Any...):String
upperCase
taxi.stdlib.upperCase
declare function upperCase(String):String
lowerCase
taxi.stdlib.lowerCase
declare function lowerCase(String):String
trim
taxi.stdlib.trim
declare function trim(String):String
length
taxi.stdlib.length
declare function length(String):Int
indexOf
taxi.stdlib.indexOf
declare function indexOf(source:String, valueToSearchFor:String):Int
Returns the index of valueToSearchFor
within source
replace
taxi.stdlib.replace
declare function replace(source: String, searchValue:String, replacement: String):String
Replaces the contents of the provided String, returning a new String Accepts three args:
source: String
: The string to searchsearchValue: String
: The string to search forreplacement: String
: The string to use as a replacement
containsString
taxi.stdlib.containsString
declare function containsString(source:String, valueToSearchFor:String):Boolean
Returns true if valueToSearchFor
within source
Collections
A collection of functions for operating on collections
contains
taxi.stdlib.contains
declare extension function <T> contains(collection: T[], searchTarget:T): Boolean
allOf
taxi.stdlib.allOf
declare function allOf(values:Boolean...): Boolean
anyOf
taxi.stdlib.anyOf
declare function anyOf(values:Boolean...): Boolean
noneOf
taxi.stdlib.noneOf
declare function noneOf(values:Boolean...): Boolean
single
taxi.stdlib.single
declare function <T> single(collection:T[], callback: (T) -> Boolean):T
filter
taxi.stdlib.filter
declare extension function <T> filter(collection:T[], callback: (T) -> Boolean):T[]
filterEach
taxi.stdlib.filterEach
declare extension function <T> filterEach(item: T, callback: (T) -> Boolean):T?
Evaluates the predicate against the provided value, returning the value if the predicate returns true, or null. Intended for use against filtering streams, where null values are excluded
singleBy
taxi.stdlib.singleBy
declare function <T,A> singleBy(collection:T[], groupingFunction: (T) -> A, searchValue: A):T
Similar to Single, where the collection is searched for a single matching value. However, results are first grouped by selector. The results of this are cached to improve future performance
first
taxi.stdlib.first
declare function <T> first(collection: T[]):T
Returns the first item within the collection
last
taxi.stdlib.last
declare function <T> last(collection: T[]):T
Returns the last item within the collection
getAtIndex
taxi.stdlib.getAtIndex
declare function <T> getAtIndex(collection: T[], index: Int):T
Returns the item at the provided index
Dates
Mess about with time. Flux capacitor not included
addMinutes
taxi.stdlib.dates.addMinutes
declare function <T> addMinutes(T, Int):T
addDays
taxi.stdlib.dates.addDays
declare function <T> addDays(T, Int):T
addSeconds
taxi.stdlib.dates.addSeconds
declare function <T> addSeconds(T, Int):T
now
taxi.stdlib.dates.now
declare function now():Instant
currentDate
taxi.stdlib.dates.currentDate
declare function currentDate():Date
currentDateTime
taxi.stdlib.dates.currentDateTime
declare function currentDateTime():DateTime
currentTime
taxi.stdlib.dates.currentTime
declare function currentTime():Time
parseDate
taxi.stdlib.dates.parseDate
declare function <T> parseDate(String):T
Objects
Utilities for dealing with equality, etc
equals
taxi.stdlib.equals
declare function <A,B> equals(a:A, b:B): Boolean
Aggregations
Functions for aggregating data within transformations.
sumOver
vyne.aggregations.sumOver
declare query function sumOver(Any...):Decimal
Functional
Functions that are functionally functions. Funky
reduce
taxi.stdlib.reduce
declare function <T,A> reduce(collection: T[], callback: (T,A) -> A):A
fold
taxi.stdlib.fold
declare function <T,A> fold(collection: T[], initial: A, callback: (T,A) -> A):A
sum
taxi.stdlib.sum
declare function <T,A> sum(collection: T[], callback: (T) -> A):A
max
taxi.stdlib.max
declare function <T,A> max(collection: T[], callback: (T) -> A):A
min
taxi.stdlib.min
declare function <T,A> min(collection: T[], callback: (T) -> A):A
Transformations
Functions for converting between types
convert
taxi.stdlib.convert
declare function <T> convert(source: Any, targetType: lang.taxi.Type<T>): T
Converts the provided source into the target type reference. Conversions are performed locally, using only the data provided in source - ie., no services or graph searches are performed.
This method is less powerful than using a standard projection (eg., A as B), because:
Only the exact facts passed in the source are considered
No graph searches or remote invocations are performed
As a result, it's also more performant.