Pular para o conteúdo principal

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:

Atenção!

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:

OperadorDescriçã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.
containsAnyValida 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.
containsAllValida 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.
containsOnlyValida 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.

Cuidado!

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]