Formatting Helpers
Helpers for formatting bytes, currency, dates, durations, distances, file names, and humanizing strings.
Formatting Helpers
These helpers convert raw values into display-ready strings. All are globally available in any template — no import needed.
{{format-bytes value}}
Formats a byte count as human-readable size:
{{format-bytes 1024}}
{{! "1 KB" }}
{{format-bytes 1048576}}
{{! "1 MB" }}
{{format-bytes 1073741824}}
{{! "1 GB" }}{{format-currency amount currency}}
Formats a monetary amount with currency symbol and locale-appropriate separators:
{{format-currency 12500 'USD'}}
{{! "$125.00" }}
{{format-currency 1234 'EUR'}}
{{! "€12.34" }}
{{format-currency 50000 'MNT'}}
{{! "₮500" }}The first arg is in minor currency units (cents). The helper handles each currency's decimal scheme.
{{format-date-fns date format}}
Formats a date using date-fns format tokens:
{{format-date-fns @order.created_at 'PPpp'}}
{{! "Jul 4, 2025 at 3:42 PM" }}
{{format-date-fns @order.created_at 'yyyy-MM-dd'}}
{{! "2025-07-04" }}
{{format-date-fns @order.created_at 'EEEE'}}
{{! "Friday" }}{{format-duration ms}}
Formats a duration in milliseconds as human-readable text:
{{format-duration 5000}}
{{! "5 seconds" }}
{{format-duration 90000}}
{{! "1 minute 30 seconds" }}
{{format-duration 3600000}}
{{! "1 hour" }}{{format-milliseconds ms}}
Variant of format-duration with millisecond-level precision.
{{format-meters meters}}
Formats a distance in meters with the right unit (m vs km):
{{format-meters 250}}
{{! "250 m" }}
{{format-meters 4500}}
{{! "4.5 km" }}{{smart-humanize value}}
Humanizes any string with a few extra rules — handles snake_case, kebab-case, camelCase, and known acronyms:
{{smart-humanize 'pickup_ready'}}
{{! "Pickup Ready" }}
{{smart-humanize 'createdAt'}}
{{! "Created At" }}
{{smart-humanize 'QR-code'}}
{{! "QR Code" }}Compare with {{safe-humanize}} (a thinner helper) and Ember's stock {{humanize}}.
{{truncate-filename filename maxLength?}}
Truncates a filename to a max length while preserving the extension:
{{truncate-filename 'very-long-document-name.pdf' 20}}
{{! "very-long-do…me.pdf" }}{{safe-humanize value}}
Humanizes a value safely — returns empty string for null/undefined rather than throwing:
{{safe-humanize @order.status}}Source
Template Builder Service
The `template-builder` service lets extensions register LogisBase model classes as queryable resource types in the TemplateQuery form.
Type Checking Helpers
Helpers for inspecting and asserting on values — is-array, is-model, is-url, is-uuid, in-array, is-object-empty, is-dark-mode, and more.