Transforma los valores de los campos

La mayoría de los valores de campo están listos para concatenarse a tu cadena de código de inmediato. Sin embargo, algunos valores de campo requieren trabajo adicional antes de que se puedan usar.

Strings

Las cadenas deben encerrarse entre comillas con quote_ o multiline_quote_ antes de que se puedan concatenar. Estas funciones realizan la evasión de caracteres específicos del idioma, como reemplazar ' por \' en JavaScript.

// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));

// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));

Variables

Para el campo de variable integrada, getFieldValue muestra un ID de variable, no un nombre de variable. Para obtener un nombre de variable real, llama a getVariableName en el generador de código. Esto muestra un nombre que es único y legal. Entre otras funciones, getVariableName hace lo siguiente:

  • Convierte los caracteres no ASCII en ASCII. Esto es necesario porque los usuarios pueden ingresar nombres de variables en su propio idioma. Por ejemplo, convierte “متغير” en “_D9_85_D8_AA_D8_BA_D9_8A_D8_B1”.
  • Garantiza que los nombres de las variables sigan las reglas establecidas por los lenguajes de programación. Por ejemplo, convierte los espacios en guiones bajos y agrega el prefijo my_ a los nombres de las variables que comienzan con un dígito.
  • Resuelve conflictos con palabras reservadas o con otros nombres de variables o funciones. Por ejemplo, convierte for a for2.
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

En el caso del campo desplegable integrado, getFieldValue muestra una cadena neutral en cuanto al idioma que podría no ser directamente utilizable en el código. Por ejemplo, un menú desplegable que contenga operadores de comparación podría mostrar 'EQUALS', 'LESS' o 'GREATER'. Se puede usar para buscar una cadena que se usa en el código.

const OPERATORS = {
  EQUALS: '==',
  LESS: '<',
  GREATER: '>',
};
const operator = OPERATORS[block.getFieldValue('OPERATOR')];

Casillas de verificación

Para el campo de casilla de verificación integrada, getFieldValue muestra 'TRUE' o 'FALSE'. La forma en que lo uses depende del significado de la casilla de verificación. Por ejemplo, puedes usarla para la ramificación mientras generas código.