Product documentation and training for Shipcode.
Overview: Pipes Reference
We've organized the Functional Query Language (FQL) Pipes into seven logical groups based on the main kind of data they manipulate.

We've organized the Functional Query Language (FQL) Pipes into eight logical groups based on the main kind of data they manipulate.


We've organized the Functional Query Language (FQL) Pipes into eight logical groups based on the main kind of data they manipulate. Think of this as your toolkit: knowing which category a pipe falls into helps you quickly grab the right tool for the job, whether you're crunching numbers, transforming strings, or filtering arrays.

FQL Pipe Section Breakdown

Numerical Pipes
These are your go-to tools for calculations and comparisons involving numbers.

  • Pipes Contained: They handle basic math operations (add, subtract), rounding (floor, ceiling), sign changes (negate), conversion (toNumber), precise formatting (toFixed, currency), and conditional logic based on size or equality (isGreaterThan, isEqualTo, isLessThan, etc.).


Object Pipes

These pipes help you structure or de-structure JavaScript objects.

  • Pipes Contained: Use them to extract an object's keys (keys) or its values (values) into an array, convert an object's properties into an array of uniform key/value pairs (keyValue), wrap an input value into a new object under a specified key (createObject), add properties to objects (modifyObject), remove unwanted keys (omit), or create arrays of empty object structures (initializeObjectArray).


Array Pipes

This is your primary set of tools for managing, filtering, sorting, and transforming lists of data.

  • Pipes Contained: They cover array size (arrayLength), chunking (chunk), pagination (slice), element searching (includes, findIndex, findIndexArrObj), and advanced transformations like extracting a deep property from every item (mapPath, mapReplace). This group also includes comprehensive filtering based on equality, range, index, or string matching (filterIsEqualTo, filterIsGreaterThan, filterByIndexModulo, filterStartsWith, filterEndsWith), plus specialized sorting for general values and t-shirt sizes (sort, sortIncludes, sortSize, sortObjectsBySize), array manipulation (createArray, pushArray, toggleArray), and deduplication (unique, flat).


String Pipes

These are dedicated to text formatting, manipulation, and encoding.

  • Pipes Contained: Use them for controlling text casing (titleCase, sentenceCase, capitalCase), substitution (replace, replaceAll), cleanup (trim, trimStart, trimEnd), concatenation (insertTextAfter, insertTextBefore), and string property checks (stringLength, matches). Tools for web safety and data handling (parseJSON, encodeURI, decodeURIComponent, toString) are also here.


Boolean Pipes

These pipes are essential for applying logic and resolving truthiness.

  • Pipes Contained: They include core logical operators (and, or, xor, not), a mechanism for explicit truthiness conversion (toBoolean), conditional result switching (ifElse), and fallback handling for falsy or nullish values (onFalsy, onNullish).


Date Pipes

This section contains specialized pipes for working with ISO-8601 timestamps and date objects.

  • Pipes Contained: Use these to parse date strings into Date objects (parseISODate), format relative time displays (formatDateDistanceToNow), and determine if a date is past or future (isPast, isFuture). They also enable filtering of arrays based on date fields (filterIsPast, filterIsFuture).


Validation Pipes

These pipes provide specialized validation for common data formats and business logic.

  • Pipes Contained: Use these to validate credit card numbers using the Luhn algorithm (validateCreditCardNumber), check credit card expiration dates (validateCreditCardExpiration), verify email address formats (validateEmailFormat), and extract credit card type and validation details (creditCardDetails). These pipes are essential for form validation and payment processing workflows.


Utility Pipes

These are the safe guards and access tools that make your FQL pipelines resilient.

  • Pipes Contained: They provide robust mechanisms for error handling (onError), safely retrieving deeply nested data without failing the pipeline (lookup), and defining fallback values when an input is nullish (defaultIfNull) or generally falsy (defaultIfFalsy).
Did this answer your question?