1 of 14

Acelerando Processos de Automação com TypeScript e Node

Automatizando tarefas pessoais e profissionais com o poder do Node.js e TypeScript

2 of 14

Por que automatizar em Node?

Node é um runtime multi-plataforma com uma API robusta com a capacidade não só de criar aplicações web, mas também de interagir com o próprio sistema operacional. Quando falamos em criar scripts de automação chegamos em divergências ditadas pelas plataformas: Shell Script ou Bash para usuários de Linux e macOS e PowerShell ou Batchscript para usuários Windows.

Com um runtime capaz de rodar em qualquer plataforma e um superset de tipos e regras que torna o ato da programação seguro contra possíveis erros de runtime é possível criar scripts únicos e economizar tempo e esforço construindo ferramentas chave para diversas operações.

3 of 14

Como usar o Node para criar automações?

Existem diversas formas de agregar automações com o Node, a mais simples e prática é fazendo o uso de npm scripts que nada mais são do que aliases feitos para comandos de terminal dentro de sua package.json que se mostram bem úteis para reduzir combinações grandes e contraintuitivas.

4 of 14

Mas os scripts não foram criados para fazer operações no projeto?

Não existe nenhuma regra quanto a isso, os scripts podem ser usados de qualquer maneira para executar qualquer comando, isso significa que eles podem ter um comportamento utilitário que depende apenas do objetivo da pessoa desenvolvedora durante a fase de programação.��Tanto um script de build para um projeto quanto um script que realiza operações usando o sistema de arquivos podem ser executados ao se utilizar npm scripts.��Importante NUNCA execute npm scripts de um projeto clonado que possa parecer suspeito ou não tenha fontes confiáveis. Certifique-se de que nenhum comportamento indesejado será executado dentro dos comandos.

5 of 14

Onde o TypeScript entra em nossas automações?

Quando entramos no âmbito de programação JavaScript, a maioria esmagadora das equipes de desenvolvimento concorda que a utilização do TypeScript traz um ambiente de desenvolvimento mais moderno, prático e seguro para montar qualquer tipo de algoritmo. Com a tipagem estática que prevalece durante a utilização do superset e as regras que coordenam o desenvolvimento, criar e manter scripts de automação se torna mais seguro e prático.��Para uma execução rápida dos scripts, nos nossos exemplos iremos utilizar a ferramenta ts-node que traz uma interface simples e amigável.

6 of 14

Criando a estrutura do projeto

Não há segredo, para começar a desenvolver um projeto de automação basta, primeiro, fazer o setup inicial do seu projeto node utilizando o comando npm init e depois disso instalar a package ts-node como pacote de desenvolvimento. Segue no exemplo:

7 of 14

Criando o primeiro comando (1/2)

Nosso primeiro comando será apenas um exemplo, faremos um console.log básico e o guardaremos como um script. Primeiro criaremos a nossa pasta “scripts” e o arquivo “hello-world.ts”:

8 of 14

Criando o primeiro comando (2/2)

Com nosso arquivo criado, podemos agora registrar o script diretamente no nosso package.json e o mesmo estará pronto para ser chamado via linha de comando.

9 of 14

Usando módulos node (1/2)

Entrando mais a fundo nas funcionalidades que realmente importam, é relativamente simples utilizar módulos node e interagir com diversos aspectos como o sistema operacional e o sistema de arquivos. Por exemplo, o módulo “fs” pode ser utilizado para manipular arquivos em qualquer parte do sistema:

10 of 14

Usando módulos node (2/2)

O exemplo anterior se refere ao nosso comando “file” que executa o script “create-file.ts” e, dada a existência prévia da pasta “files” na raiz do projeto ele pode criar um arquivo chamado “hello.txt” que contém a frase “Hello World”

11 of 14

Usando bibliotecas externas (1/2)

A utilização de comandos isolados escritos em TypeScript se torna interessante quando temos também a capacidade de utilizar bibliotecas externas. Nesse exemplo utilizaremos a biblioteca “axios” para fazer uma chamada a uma api externa e obter dados:

12 of 14

Usando bibliotecas externas (2/2)

Com isso, poderemos chamar a api e obter o resultado na tela:

13 of 14

Considerações adicionais

  • É possível criar comandos ainda mais robustos utilizando a feature “bin” do package json, com isso a pessoa desenvolvedora pode publicar uma versão estática e global dos comandos. Exemplos comuns são o Babel CLI e o Webpack CLI que são chamados com o prefixo “npx”
  • Comandos utilizando “npx” ou “npm” não são uma bala de prata. O Node.js ainda é necessário na máquina onde os comandos estejam sendo executados e em raros casos podem haver problemas de compatibilidade

14 of 14

Contato e redes sociais