-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
Issue gerada a partir de #17
Uma ideia para melhorar a qualidade dos dados gerados pela abordagem é utilizar uma biblioteca de geração de dados fictícios como a Faker, fazer um mapeamento de palavras para a API dela (Português e Inglês) e calcular a distância de palavras usando js-levenshtein por exemplo.
Exemplo:
const langs = {
'pt': {
'nome': '{{name.firstName}} {{name.lastName}}',
'cep': '{{address.zipCode}}',
'cidade': '{{address.city}}'
},
'en': {
'name': '{{name.firstName}} {{name.lastName}}',
'zip': '{{address.zipCode}}',
'city': '{{address.city}}'
},
};
function dado( idOuNomeDoCampo, idioma ) {
const lang = langs[idioma]; // TO-DO: validar
if ( lang[ idOuNomeDoCampo ] ) { // correspondência exata
return faker.fake( lang[ idOuNomeDoCampo ] );
}
// Varre definições
for ( const chave in lang ) {
// 80%+ de similaridade
if ( levenshtein( lang[ chave ], idOuNomeDoCampo ) ) <= 2 ) {
return faker.fake( lang[ idOuNomeDoCampo ] );
}
}
// Retorna `undefined` ao não encontrar
}Dá pra melhorar a função para também considerar o tipo do campo, como tipo tel, email, etc., incluindo a chave correspondente no objeto com as palavras e comparando.
Reactions are currently unavailable