Aller au contenu

Référence des helpers Handlebars

Toute expression de Restorm est un gabarit Handlebars : URL, en-tête, paramètre, corps de requête, variable d’environnement de type Expression, champ de scénario, gabarit de l’action Transform template.

Cette page recense 116 helpers nommés et 22 variables dynamiques.

Ctrl+Espace déclenche l’autocomplétion dans les champs qui l’acceptent.

HelperSignatureEffet
eq{{eq a b}}a === b
ne{{ne a b}}a !== b
neq{{neq a b}}Alias de ne
lt{{lt a b}}a < b (numérique)
lte{{lte a b}}a <= b
gt{{gt a b}}a > b
gte{{gte a b}}a >= b
and{{#and a b}}…{{else}}…{{/and}}Bloc : tous les arguments vrais
or{{#or a b}}…{{/or}}Bloc : au moins un argument vrai
not{{not valeur}}Négation
ifEquals{{#ifEquals a b}}…{{else}}…{{/ifEquals}}Bloc, égalité stricte
is{{#is a b}}…{{/is}}Bloc, comparaison en chaînes
isnt{{#isnt a b}}…{{/isnt}}Bloc, différence en chaînes
default{{default valeur repli}}valeur si définie, sinon repli
compare{{#compare a "op" b}}…{{/compare}}Bloc ; op== === != !== < <= > >=
{{default region "eu-west-1"}}
{{#compare quantite ">" 100}}gros{{else}}normal{{/compare}}
HelperSignatureExemple → résultat
lowercase{{lowercase s}}Bonjourbonjour
uppercase{{uppercase s}}BonjourBONJOUR
capitalize{{capitalize s}}bonjour toutBonjour tout
capitalizeAll{{capitalizeAll s}}bonjour toutBonjour Tout
titleize{{titleize s}}Identique à capitalizeAll
camelcase{{camelcase s}}mon-champmonChamp
pascalcase{{pascalcase s}}mon-champMonChamp
snakecase{{snakecase s}}monChampmon_champ
snakeCase{{snakeCase s}}Alias de snakecase
dashcase{{dashcase s}}monChampmon-champ
dotcase{{dotcase s}}monChampmon.champ
pathcase{{pathcase s}}monChampmon/champ
sentencecase{{sentencecase s}}BONJOUR TOUTBonjour tout
slugify{{slugify s}}Mon Beau Titre !mon-beau-titre
trim{{trim s}}Retire les espaces aux deux bouts
trimLeft{{trimLeft s}}À gauche
trimRight{{trimRight s}}À droite
replace{{replace s recherche remplacement}}Remplace toutes les occurrences (littéral, pas de regex)
split{{split s separateur}}Découpe en tableau ; séparateur , par défaut
truncate{{truncate s longueur suffixe}}Longueur 50 et suffixe ... par défaut
ellipsis{{ellipsis s longueur}}Comme truncate avec
append{{append s suffixe}}Concatène à la fin
prepend{{prepend s prefixe}}Concatène au début
reverse{{reverse valeur}}Inverse une chaîne ou un tableau
startsWith{{#startsWith s prefixe}}…{{/startsWith}}Bloc
endsWith{{#endsWith s suffixe}}…{{/endsWith}}Bloc
contains{{#contains sOuTableau valeur}}…{{/contains}}Bloc
match{{match s motif}}Toutes les correspondances, ou null
test{{#test s motif}}…{{/test}}Bloc, test d’expression régulière
padStart{{padStart s longueur caractere}}Complète à gauche
padEnd{{padEnd s longueur caractere}}Complète à droite
repeat{{repeat s n}}Répète
substring{{substring s debut fin}}Extrait
indexOf{{indexOf s recherche}}Position, ou -1
count{{count s sousChaine}}Nombre d’occurrences
newLineToBr{{newLineToBr s}}\n<br>
stripTags{{stripTags s}}Retire les balises <…>
{{slugify nomProduit}}
{{padStart numeroCommande 8 "0"}}
{{truncate description 120}}
HelperSignatureEffet
add{{add a b}}Somme
subtract{{subtract a b}}Différence
multiply{{multiply a b}}Produit
divide{{divide a b}}Quotient
modulo{{modulo a b}}Reste
abs{{abs a}}Valeur absolue
ceil{{ceil a}}Arrondi supérieur
floor{{floor a}}Arrondi inférieur
round{{round a}}Arrondi
pow{{pow base exposant}}Puissance
sqrt{{sqrt a}}Racine carrée
random{{random min max}}Entier aléatoire, bornes incluses
sum{{sum tableau}}Somme d’un tableau
avg{{avg tableau}}Moyenne
min{{min a b c …}}Minimum, variadique
max{{max a b c …}}Maximum, variadique
toFixed{{toFixed nombre decimales}}Chaîne à N décimales
toInt{{toInt nombre}}Entier (base 10), 0 en repli
toFloat{{toFloat nombre}}Flottant, 0 en repli
{"montantTTC": {{toFixed (multiply montantHT 1.2) 2}}}
HelperSignatureEffet
first{{first tableau n}}Le premier élément, ou les n premiers
last{{last tableau n}}Le dernier, ou les n derniers
length{{length valeur}}Longueur d’un tableau, d’une chaîne, ou nombre de clés
join{{join tableau separateur}}Séparateur , par défaut
sort{{sort tableau}}Copie triée
unique{{unique tableau}}Dédoublonne
after{{after tableau n}}Tout après l’index n
before{{before tableau n}}Tout avant l’index n
slice{{slice tableau debut fin}}Portion
concat{{concat a b …}}Concatène, aplatit d’un niveau
flatten{{flatten tableau}}Aplatit d’un niveau
pluck{{pluck tableau propriete}}Extrait une propriété de chaque élément
itemAt{{itemAt tableau index}}Élément à l’index ; un index négatif compte depuis la fin
inArray{{#inArray tableau valeur}}…{{/inArray}}Bloc
isArray{{isArray valeur}}Booléen
isEmpty{{#isEmpty valeur}}…{{/isEmpty}}Bloc
some{{#some tableau prop valeur}}…{{/some}}Bloc : au moins un élément correspond
every{{#every tableau prop valeur}}…{{/every}}Bloc : tous les éléments correspondent
{{join (pluck articles "reference") ","}}
HelperSignatureEffet
JSONstringify{{JSONstringify obj}}Sérialise, indentation 2
JSONparse{{JSONparse chaine}}Analyse ; {} en cas d’échec
get{{get obj "a.b.c"}}Lecture par chemin pointé
isObject{{isObject valeur}}Booléen (non nul, non tableau)
typeOf{{typeOf valeur}}null, array, ou le type JavaScript
keys{{keys obj}}Les clés
values{{values obj}}Les valeurs
entries{{entries obj}}Les couples [clé, valeur]
hasOwn{{#hasOwn obj "cle"}}…{{/hasOwn}}Bloc
pick{{pick obj "k1" "k2"}}Ne garde que ces clés
omit{{omit obj "k1"}}Retire ces clés
merge{{merge o1 o2}}Fusion superficielle
{{get reponse "data.client.identifiant"}}
HelperSignatureEffet
encodeURI{{encodeURI s}}Encode un composant d’URL
decodeURI{{decodeURI s}}Décode
urlParse{{urlParse url}}{ href, origin, protocol, host, hostname, port, pathname, search, hash }, ou null
stripQuerystring{{stripQuerystring url}}Retire la chaîne de requête
stripProtocol{{stripProtocol url}}Retire le schéma
{{baseUrl}}/recherche?q={{encodeURI termeRecherche}}
HelperSignatureEffet
year{{year}}L’année courante
now{{now}}L’instant courant, en ISO
timestamp{{timestamp}}L’instant courant, en millisecondes
formatDate{{formatDate date "YYYY-MM-DD"}}Formate

Notez aussi que {{timestamp}} est en millisecondes tandis que {{$timestamp}} (compatibilité Postman, ci-dessous) est en secondes.

HelperSignatureEffet
coalesce{{coalesce a b c}}La première valeur non nulle
uuid{{uuid}}Un UUID v4
noop{{#noop}}…{{/noop}}Bloc sans effet
raw{{{{raw}}}}…{{{{/raw}}}}N’interprète pas le contenu
times{{#times n}}…{{/times}}Répète le bloc ; @index, @first, @last disponibles
range{{range debut fin pas}}Tableau de nombres, fin exclue

Le helper raw est ce qu’il faut quand vous envoyez volontairement des accolades doubles — par exemple pour tester un service qui les interprète lui-même.

Variables dynamiques (compatibilité Postman) (22)

Section titled “Variables dynamiques (compatibilité Postman) (22)”

Sans argument, valeur différente à chaque évaluation.

VariableRenvoie
{{$guid}}Un UUID v4
{{$randomUUID}}Un UUID v4
{{$timestamp}}L’instant courant, en secondes
{{$isoTimestamp}}L’instant courant, en ISO
{{$randomInt}}Un entier de 0 à 1000
{{$randomAlphaNumeric}}8 caractères alphanumériques
{{$randomBoolean}}true ou false
{{$randomFirstName}}Un prénom
{{$randomLastName}}Un nom
{{$randomFullName}}Un nom complet
{{$randomUserName}}prenom.nom<0-99>
{{$randomEmail}}Une adresse de courriel
{{$randomColor}}Un nom de couleur
{{$randomWord}}Un mot
{{$randomWords}}Trois mots
{{$randomCompanyName}}Un nom d’entreprise
{{$randomCity}}Une ville
{{$randomCountry}}Un pays
{{$randomPhoneNumber}}Un numéro de téléphone
{{$randomIP}}Une adresse IP
{{$randomIPV4}}Une adresse IPv4
{{$randomPrice}}Un prix à deux décimales
{
"correlationId": "{{$guid}}",
"client": { "nom": "{{$randomFullName}}", "email": "{{$randomEmail}}" },
"emisLe": "{{$isoTimestamp}}"
}

Il n’existe pas de helper d’accès aux variables : elles sont directement dans le contexte. On écrit {{baseUrl}}, pas {{env "baseUrl"}}.

Voir Variables et environnements.