render-templates
Nesta seção, você encontra a referência para o Hook Declarativo do tipo
render-templates.
O Hook Declarativo do tipo render-templates permite gerar arquivos de forma condicional. Ao associar esse Hook a uma condição, você controla se determinados arquivos serão gerados ou não. Veja um exemplo de uso:
name: Declarative Hooks Plugin example
description: My Plugin with Declarative Hooks
types:
- app
spec:
inputs:
- label: first input
type: text
name: first_input
hooks:
- type: render-templates
trigger: after-render
path: templates-java
condition:
variable: language
operator: "=="
value: java
- type: render-templates
trigger: after-render
path: templates-kotlin
condition:
variable: language
operator: "=="
value: kotlin
No exemplo acima, quando o input language recebe o valor java, são gerados os arquivos presentes na pasta templates-java. Se o valor for kotlin, são gerados os arquivos na pasta templates-kotlin.
Ações Disponíveis
trigger:
Campo utilizado para definir o momento em que a geração de arquivos deve ocorrer.
-
before-input:
Executa o Hook Declarativo antes do recebimento dos parâmetros de entrada da pessoa usuária.trigger: before-input -
before-render:
Executa o Hook Declarativo antes de o Plugin gerar ou atualizar arquivos no projeto.trigger: before-render -
after-render:
Executa o Hook Declarativo após o Plugin gerar ou atualizar arquivos no projeto.trigger: after-render
condition:
O diretório definido na condição deve ficar fora da pasta templates.
Campo que define uma condição para a execução do Hook Declarativo.
variable:
Variável utilizada na condição, definida pelos inputs ou computed-inputs do Plugin. Veja mais detalhes sobre inputs em arquivos YAML nesta seção: inputs em arquivos YAML.
operator:
Operador condicional utilizado na comparação entre variable e value.
A tabela a seguir lista os operadores disponíveis e suas descrições:
| Operador | Descrição |
|---|---|
"==" | Valida se os valores são iguais. |
"!=" | Valida se os valores são diferentes. |
">" | Valida se a variável é maior que o valor. |
"<" | Valida se a variável é menor que o valor. |
">=" | Valida se a variável é maior ou igual ao valor. |
"<=" | Valida se a variável é menor ou igual ao valor. |
containsAny | Valida se a variável do tipo lista contém qualquer valor presente em value. Se value não for lista, considera uma lista com um único elemento. Se value for uma lista vazia, retorna false. |
containsAll | Valida se a variável do tipo lista contém todos os valores em value. Se value não for lista, considera uma lista com um único elemento. Se value for uma lista vazia, retorna true. |
containsOnly | Valida se a variável do tipo lista é uma permutação dos itens em value. Se value não for lista, considera uma lista com um único elemento. |
value:
Valor de referência utilizado pelo operador para verificar a condição.
Utilize aspas duplas para os operadores: "==", "!=", ">", ">=", "<", "<=".
Exemplos
Os exemplos a seguir utilizam um input de lista chamado field_4 para demonstrar o uso de operadores condicionais.
containsAny
# Operador containsAny
- label: Aparece se o campo 4 contiver qualquer valor item1
type: text
name: contains_any_operator_test_1
default: ok
condition:
variable: field_4
operator: containsAny
value: item1
- label: Aparece se o campo 4 contiver qualquer valor item1, item2
type: text
name: contains_any_operator_test_2
default: ok
condition:
variable: field_4
operator: containsAny
value: [item1, item2]
containsAll
# Operador containsAll
- label: Aparece se o campo 4 contiver todos os valores item1, item2
type: text
name: contains_all_operator_test_1
default: ok
condition:
variable: field_4
operator: containsAll
value: [item1, item2]