npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-smart-switch-wesley

v1.0.3

Published

Nó n8n que avalia condições configuráveis e roteia items para saída true ou false

Readme

n8n-nodes-smart-switch

Nó customizado para n8n que funciona como um switch inteligente: avalia condições configuráveis sobre os dados de entrada e roteia cada item para a saída ✅ true ou ❌ false.


Como funciona um Nó n8n (teoria)

Estrutura básica

Um nó n8n é uma classe TypeScript que implementa INodeType. Ela possui dois componentes:

| Parte | Responsabilidade | |---|---| | description | Define como o nó aparece no editor: nome, ícone, campos do usuário, entradas e saídas | | execute() | Lógica que roda quando o nó é acionado no workflow |

export class MeuNo implements INodeType {
  description: INodeTypeDescription = {
    displayName: 'Meu Nó',
    name: 'meuNo',
    inputs: [NodeConnectionType.Main],
    outputs: [NodeConnectionType.Main],
    properties: [ /* campos do usuário */ ],
  };

  async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
    const items = this.getInputData(); // ← dados vindo do nó anterior
    // ... processa ...
    return [items];                    // ← envia para a saída
  }
}

Tipos de campos (properties)

| Tipo | Descrição | |---|---| | string | Texto livre | | number | Número | | boolean | Checkbox (sim/não) | | options | Dropdown com opções fixas | | fixedCollection | Lista de grupos de campos (permite N itens) | | collection | Grupo expansível de configurações avançadas |

Múltiplas saídas

Para ter mais de uma saída (como true/false), basta declarar múltiplos outputs e retornar um array com um array por saída:

outputs: [NodeConnectionType.Main, NodeConnectionType.Main],
outputNames: ['✅ true', '❌ false'],

// No execute():
return [trueItems, falseItems]; // índice 0 → true, índice 1 → false

Smart Switch – Como usar

Instalação

Em n8n self-hosted:

# Na pasta do seu n8n (ou container)
cd ~/.n8n/custom
npm install n8n-nodes-smart-switch
# Reinicie o n8n

Via Docker (docker-compose.yml):

environment:
  - N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
volumes:
  - ./custom-nodes:/home/node/.n8n/custom

Para desenvolvimento local:

git clone https://github.com/seu-usuario/n8n-nodes-smart-switch
cd n8n-nodes-smart-switch
npm install
npm run build
npm link
cd ~/.n8n/custom && npm link n8n-nodes-smart-switch

Configuração do nó

1. Combinar condições com

  • AND → todas as condições precisam ser verdadeiras
  • OR → basta uma condição ser verdadeira

2. Condições

Adicione quantas condições quiser. Cada uma possui:

| Campo | O que preencher | |---|---| | Campo de Entrada | Nome da chave no JSON (ex: price, user.name) | | Operador | Como comparar (ver tabela abaixo) | | Valor Esperado | O que esperar (não aparece para operadores de tipo/existência) |

Operadores disponíveis

| Operador | Descrição | Exemplo | |---|---|---| | = igual a | Igualdade exata | status = ativo | | ≠ diferente de | Diferença | tipoadmin | | > maior que | Numérico | price > 100 | | >= maior ou igual a | Numérico | age >= 18 | | < menor que | Numérico | score < 50 | | <= menor ou igual a | Numérico | peso <= 70 | | contém (texto) | Substring | email contém @gmail | | não contém (texto) | Substring negado | nome não contém teste | | começa com | Prefixo | codigo começa com BR- | | termina com | Sufixo | arquivo termina com .pdf | | regex | Expressão regular | cpf regex ^\d{11}$ | | existe | Não é null/undefined | endereco existe | | não existe | É null/undefined | deletedAt não existe | | é número | Verificação de tipo | valor é número | | é texto | Verificação de tipo | nome é string | | é booleano | Verificação de tipo | ativo é booleano | | é array | Verificação de tipo | tags é array |

3. Opções Avançadas

| Opção | Descrição | |---|---| | Case-insensitive | Ignora maiúsculas/minúsculas em comparações de texto | | Incluir detalhes da avaliação | Adiciona campo _smartSwitch no JSON de saída com o resultado de cada condição (útil para debug) |


Exemplos de uso

Exemplo 1 – Filtrar pedidos acima de R$200

Campo: total
Operador: >= maior ou igual a
Valor: 200

→ Itens com total >= 200 saem pela saída ✅ true → Demais saem pela saída ❌ false

Exemplo 2 – Verificar se e-mail é do Gmail

Campo: email
Operador: contém (texto)
Valor: @gmail.com

Exemplo 3 – Múltiplas condições (AND)

Condição 1: status = ativo
Condição 2: age >= 18
Condição 3: pais = Brasil
Combinar: AND

→ Apenas quem é ativo, maior de idade E do Brasil passa para ✅ true

Exemplo 4 – Campos aninhados

{ "user": { "address": { "city": "São Paulo" } } }
Campo: user.address.city
Operador: = igual a
Valor: São Paulo

Saída com debug ativado

Quando a opção "Incluir detalhes da avaliação" está ativa, o item de saída recebe um campo extra:

{
  "_smartSwitch": {
    "result": true,
    "combineWith": "AND",
    "conditions": [
      { "field": "total", "operator": "gte", "expected": "200", "actual": 350, "passed": true },
      { "field": "status", "operator": "equal", "expected": "ativo", "actual": "ativo", "passed": true }
    ]
  }
}

Estrutura de arquivos

n8n-nodes-smart-switch/
├── nodes/
│   └── SmartSwitch/
│       └── SmartSwitch.node.ts   ← Código principal do nó
├── dist/                          ← Código compilado (gerado pelo build)
├── package.json
├── tsconfig.json
└── README.md

Publicar na comunidade n8n

npm run build
npm publish --access public

O nó aparecerá automaticamente no marketplace da comunidade n8n após revisão.