@andrevantunes/andrevds-constraints
v1.6.1
Published
  
Maintainers
Readme
Constraints | André Antunes Vieira
Biblioteca para segmentação de públicos a partir de um entrada de objeto chave-valor.
Como usar
Para adicionar o constraints aos projetos, rode o seguinte comando:
yarn add @andrevantunes/andrevds-constraintsImportando a biblioteca e aplicando em um exemplo simples de uso:
import constraints from "@andrevantunes/andrevds-constraints";
const input = { my_key: "my_value" };
const rules = { key: "my_key", value: "my_value", operation: "equal" };
constraints(input, rules); // trueNo exemplo acima, o método constraints verifica se o input contém uma chave (my_key) como o valor igual à my_value. Retornando um valor boleano true para o caso de satisfazer todas as regras (rules) ou false para o contrário.
Os seguintes operadores estão disponíveis:
| operation | pode ser combinado? | caso
|-|-|-
| equal | false | compara os valores do input com a regra (default) value1 === value2
| not | false | compara os valores do input com a regra value1 !== value2
| less | false | compara os valores numéricos do input com a regra number1 < number2
| greater | false | compara os valores numéricos do input com a regra number1 < number2
| contains | false | verifica se o valor do input está contido dentro de uma string ou array
| not-contains | false | verifica se o valor do input NÃO está contido dentro de uma string ou array
| and | true | compara dois grupos de casos (right e left)
| or | true | compara dois grupos de casos (right e left)
As entradas sempre devem ser um object simples com chave-valor, em que os valores podem ser dos tipos:
booleannumberstringundefinednullarray
const input = {
first: true,
secondary: 15,
third: "third",
fourth: undefined,
fifth: null,
};As regras podem ser simples, como apresentado anteriormente, ou mais complexas ao se usar um operador (or ou and) contendo dois braços (right e left) para as condições. A condição por sua vez, pode ser uma regra simples ou também pode conter uma estrutura de braços como o exemplo abaixo:
const rules = {
operation: "or",
left: { key: "first", value: true },
right: { key: "secondary", value: 15 },
};Abaixo segue um exemplo mais complexo:
const rules = {
operation: "and",
left: { key: "first", value: true },
right: {
operation: "or",
left: { key: "secondary", value: 15 },
right: { key: "third", value: "third" },
},
};Utilizando operadores simples:
import constraints from "@andrevantunes/andrevds-constraints";
const input = { my_key: "my_value" };
const rules = { operation: "not", key: "my_key", value: "another_value_value" };
constraints(input, rules); // trueComo publicar
Esse projeto utiliza o conventional commits como padrão de escrita de commits. Com base nessas regras, sempre que um PR é mesclado no branch main, uma nova versão do pacote é publicada no npm.
Como testar
Para rodar os testes basta executar o seguinte comando:
$ yarn test
// or
$ yarn test:watch