Tipos de parâmetros¶
Os parâmetros de entrada de um app do Rung possuem diversos tipos com múltiplas finalidades, que variam de acordo com como você vai trabalhar com o dado e como você deseja que ele seja renderizado para o usuário durante a instalação. Os tipos podem ser importados via:
1 | import {} from 'rung-cli/dist/types'; |
Tipos¶
AutoComplete¶
Para campos que podem ser interdependentes, em modo texto e ter um arquivo expondo uma função de autocomplete.
O Rung suporta que os campos possam ter a função de autocompletar, provendo uma função JavaScript que lida com o retorno baseado na entrada.
Para que um campo seja autocompletável, é necessário defini-lo como um campo
do tipo AutoComplete, disponível em rung-cli/dist/types.
Vamos criar um campo que tenha o autocompletar com nomes de Pokémons nesse exemplo!
- Defina o tipo do campo como
AutoComplete
1 2 3 4 5 6 | params: { pokemon: { type: AutoComplete, description: 'Pick a Pokémon!' } } |
- Crie um arquivo
autocomplete/pokemon.js - Exporte uma função que use a função de callback ou que retorne uma lista de strings
1 2 3 4 5 6 | export default function ({ input, lib }) { return lib.request.get('https://raw.githubusercontent.com/BrunnerLivio/PokemonDataGraber/master/output.json') .then(({ text }) => JSON.parse(text)) .then(pokemons => pokemons.map(pokemon => pokemon.Name)) .filter(name => name.startsWith(input)); } |
Parâmetros¶
A função exportada recebe como parâmetros:
- Objeto contendo
input(entrada do usuário) elib - Callback opcional
done. Se passado, deve ser chamado para retornar o controle. Senão, a função deve retornar umaPromise
Retorno¶
Promise ou chamada de done a um Array<String> contendo os dados já filtrados.
Bibliotecas¶
O parâmetro lib vindo dentro do primeiro objeto carrega duas bibliotecas, ramda e request.
As requisições são feitas utilizado a biblioteca externa superagent.
Integer¶
Para números inteiros tendendo de negativo a infinito positivo, a depender da representação de números inteiros em bits de onde está rodando.
Double¶
Para números de ponto flutuante (decimais), a depender da representação de números de ponto flutuante em bits de onde está rodando, geralmente segundo a IEEE754.
DateTime¶
Indisponível
Natural¶
Números naturais de 0 a infinito. Não são aceitos números negativos
Char(n)¶
Textos de até n caracteres, onde n corresponde a um número natural.
Se tiver como entrada um texto maior, este é cortado até o limite.
IntegerRange(m, n)¶
Intervalos numéricos de números inteiros entre m e n. É possível, por
exemplo, simular números naturais com IntegerRange(0, Infinity). m
sempre precisa ser menor do que n para que haja uma situação válida.
DoubleRange(m, n)¶
Intervalos numéricos de números de ponto flutuante (decimais) entre m e
n, onde m precisa ser um valor menor que n.
Money¶
Indisponível
String¶
Qualquer trecho de texto arbitrário
Color¶
Cor em hexadecimal, começando por #.
Email¶
Qualquer email válido.
Checkbox¶
Indisponível
OneOf(xs)¶
Qualquer elemento de xs, onde xs deve ser do tipo string[] (lista
de strings).
Url¶
Url independente de protocolo (HTTP, FTP ...).
IntegerMultiRange(m, n)¶
Slider em que 2 pontos são retornados, estão esses pontos entre m e n.
Calendar¶
Para datas, com renderização de um calendário.
Location¶
Qualquer trecho de texto que faça referência a uma localização (cidade, estabelecimento, país, etc). Quando o campo for utilizado no Rung, irá ser carregado um autocomplete com sugestões de locais vindas do Google.