render-templates
Nesta seção você encontra: Referência de um Hook Declarativo do tipo render-templates.
Um Hook Declarativo do tipo render-templates pode ser usado para executar a geração condicional de arquivos. Ao usar um Hook Declarativo desse tipo, associado à uma condição, você pode controlar se algum arquivo será ou não gerado de acordo com uma condição. Confira um exemplo de utilização:
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 caso acima, quando o input language foi preenchido com o valor java, ele gerou os arquivos que estão na pasta templates-java. Se o input é preenchido com o valor kotlin, ele gera os arquivos que estão na pasta templates-kotlin.
Ações Disponíveis
trigger:
Campo para definir gatilhos que informam o momento em que a geração de arquivos deve ocorrer.
before-input:
Executa o Hook Declarativo antes de receber os parâmetros de entrada da pessoa usuária.
trigger: before-input
before-render:
Executa o Hook Declarativo antes do Plugin gerar ou atualizar arquivos no projeto.
trigger: before-render
after-render:
Executa o Hook Declarativo depois que o Plugin gerar ou atualizar arquivos no projeto.
trigger: after-render
condition:
O diretório condicional precisa estar fora da pasta 'templates'.
Campo que determina uma condição para executar o Hook Declarativo.
variable:
Variável utilizada na condição. A variável é definida pelos inputs e computed-inputs de um Plugin. Confira mais detalhes na seção inputs em arquivos yaml.
operator:
Operador condicional utilizado na operação entre variable e value. Os operadores são:
| Operador | Descrição |
|---|---|
"==" | Valida se os valores são iguais. |
"!=" | Valida se os valores são diferentes. |
">" | Valida se a variável é maior ao valor. |
"<" | Valida se a variável é menor ao 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 um dos valores contidos em **value**. Se **value** não for do tipo lista, considera-se uma lista onde **value** é o único elemento. Se **value** é uma lista vazia, **false** (falso) é retornado. |
containsAll | Valida se a variável do tipo lista contém todos os valores contidos em **value**. Se **value** não for do tipo lista, considera-se uma lista onde **value** é o único elemento. Se **value** é uma lista vazia, **true** (verdadeiro) é retornado. |
containsOnly | Valida se a variável do tipo lista é uma permutação dos itens de **value**. Se **value** não for do tipo lista, considera-se uma lista onde **value** é o único elemento. |
value:
Valor de referência para o operador checar a condicional.
Você deve usar aspas duplas para os seguintes operadores: "==", "!=", ">", ">=", "<", "<=".
Exemplos
containsAny
# Operator containsAny
- label: Should appear if field 4 contains any value item1
type: text
name: contains_any_operator_test_1
default: ok
condition:
variable: field_4
operator: containsAny
value: item1
- label: Should appear if field 4 contains any value item1, item2
type: text
name: contains_any_operator_test_2
default: ok
condition:
variable: field_4
operator: containsAny
value: [item1, item2]
containsAll
# Operator containsAll
- label: Should appear if field 4 contains all values item1, item2
type: text
name: contains_all_operator_test_1
default: ok
condition:
variable: field_4
operator: containsAll
value: [item1, item2]