Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

186
Visualizações
Envolver expresiones genéricas en una función

Soy parte de n8n.io , un proyecto de código abierto, y estamos buscando una manera de ayudar a nuestros usuarios a manipular datos.

Nuestra herramienta permite a los usuarios obtener datos de cualquier fuente (base de datos, solicitudes http, servicios de cola, etc.), manipular y hacer otras cosas, como enviar un correo electrónico, crear un cliente potencial en Hubspot, etc. Es una herramienta de automatización de flujo de trabajo.

Ya proporcionamos formas para que nuestros usuarios asignen datos de un lugar a otro, como obtener un nombre de usuario de una base de datos y enviarlo como el nombre del cliente potencial a Hubspot. Pero los usuarios pueden querer manipular estos datos antes de enviarlos.

Queremos agregar funciones auxiliares para esto.

Nuestros usuarios ya pueden usar un motor de plantillas para hacer algunas cosas interesantes, como:

{{ username.toUpperCase() }}

Dado que el nombre de username en el ejemplo anterior es una cadena, y toUpperCase() es la función de cadena nativa.

Nos gustaría extender este comportamiento. Añadir más funcionalidad. Por ejemplo, algo como {{ email.isEmail() ? email : '' }} donde isEmail es una nueva función que nos gustaría proporcionar y email es simplemente una cadena.

Una nota importante es que nos gustaría que estas funciones fueran encadenables en lugar de simplemente funciones para evitar el infierno de los paréntesis.

Pensé en extender los prototipos nativos, pero esto tiene muchos efectos secundarios, especialmente porque también queremos extender las propiedades de los Object (con funciones como .hasField('username') o .removeField('name') . Prototipos extendidos terminó rompiendo muchas cosas, por lo que no podemos seguir este camino .

Además, los usuarios pueden realizar operaciones matemáticas, como {{ (age + 5) / 2 }} , por lo que necesitamos operaciones que funcionen con números, cadenas, objetos y matrices.

Agradecería cualquier idea sobre cómo lograr esto: proporcionar funciones que se puedan encadenar para manipular datos .

Nos gustaría evitar obligar a nuestros usuarios a incluir sus datos en una función auxiliar, como {{ _(name).firstName().toUpperCase() }} . En este caso, implementaríamos la función _ como asistente y tendríamos todos los métodos implementados dentro de ella, según el tipo de datos.

¿Hay alguna manera de envolver cualquier expresión en una función auxiliar , como la mencionada anteriormente? Una expresión regular que sea a prueba de fallas sería increíble.

Tenga en cuenta que las expresiones pueden ser muy arbitrarias, como:

 {{ (5 + 2 ).isPrime () ? 'This is prime' : 42 }}

El ejemplo anterior es una expresión perfectamente válida, y mi objetivo es envolver la sección (5+2) en nuestra función de ayuda para que el resultado final, antes de enviarlo a nuestro motor de plantillas, se vea así:

 {{ _((5 + 2 )).isPrime () ? 'This is prime' : 42 }}
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda