Avaliação dinâmica
Se variáveis de substituição como ${file.meta.width} não forem suficientes para
implementar a lógica da sua aplicação, você também pode usar todo o conjunto de recursos do
JavaScript moderno para criar instruções dinâmicas de
Assembly. Esses scripts são executados na nossa
infraestrutura e têm acesso a todas as
Assembly Variables. Isso inclui os metadados de um arquivo que a
Transloadit determina automaticamente, informações básicas sobre o tempo de execução da Assembly e
campos que você, como desenvolvedor, pode preencher ao criar a Assembly (English).
Por exemplo, você pode querer redimensionar imagens para seguir o princípio de design da Proporção Áurea:
{
"robot": "/image/resize",
"height": "${file.meta.width / ((1 + Math.sqrt(5)) / 2)}",
"resize_strategy": "crop"
}
Ou você pode querer transformar o nome do arquivo de saída em letras maiúsculas ao fazer upload para o S3 (English):
{
"robot": "/s3/store",
"path": "my-folder/${file.name.toUpperCase()}"
}
Tudo o que estiver dentro de ${...} será avaliado, e você tem todos os
recursos da linguagem JavaScript à disposição, desde que seu script não realize nenhuma operação
assíncrona. Por exemplo, você pode usar os métodos
Math,
Date ou
String.
Consulta de variáveis
A avaliação dinâmica é gratuita quando se trata de uma consulta simples, como
${file.name} ou ${file.meta.faces[0]}.
Para avaliações mais complexas, como ${Math.max(10, file.meta.width)}, há cobrança. Isso acontece
porque invocamos o 🤖/script/run (English) para interpretar JavaScript, o que
deixa as avaliações mais pesadas para as nossas máquinas e alguns milissegundos mais lentas, mas
também muito mais poderosas, já que você tem uma linguagem de programação completa à disposição.