1.0.0 • Published 8 months ago

@helper.js/console v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

helper.console

A Node.js package for running shell commands interactively or programmatically with support for logging, worker threads, and customizable warning controls.

Installation

Install the package via npm:

 npm install helper.console

Features

  • Execute comandos shell programaticamente ou interativamente.
  • Suporte para threads de trabalho para gerenciar a execução simultânea de comandos.
  • Registro configurável em um arquivo fora de node_modules.
  • Controle global de avisos para comandos que exigem muitos recursos ou problemas de permissão.
  • Saída de terminal colorida para melhor experiência do usuário.

Code Usage

Use a classe Console para executar comandos programaticamente:

const { Console } = require('helper.console');

// Cria uma instância com configurações personalizadas
const console1 = new Console()
  .MaxWorkers(3) // Define o máximo de worker/comandos simultâneos (aumenta a carga de processamento)
  .setLogging({ 
    enabled: true, // Ativa o arquivo de log
    location: './logs/command_log.txt', // Define o local e nome do arquivo
    restartable: false // Define se esse arquivo será resetado a cada reinício do console. (Útil em projetos com painel Pterodactyl)
  })
  .warns(true); // Ativa ou desativa os avisos recebidos durante o uso de comandos como: "Este comando pode usar muitos recursos e levar muito tempo para ser executado!"

// Envia um comando para o console (usando a instância criada e seguindo as configurações da mesma)
async function runCommand() {
  const result = await console1.runEntry('ls -la');
  if (result.error) {
    console.error(result.error);
  } else {
    console.log(result.output);
  }
}

runCommand();

Interactive Usage

Inicia uma sessão de console interativa:

const { Console } = require('helper.console');

const console1 = new Console()
  .setLogging({ enabled: true, location: './logs/command_log.txt' })
  .warns(true);

console1.init();

Digite os comandos no prompt interativo. Use exit para fechar a sessão.

Static Method

Execute um comando com as configurações padrão:

const { Console } = require('helper.console');

async function runStaticCommand() {
  const result = await Console.runEntry('echo "Hello, World!"');
  console.log(result.output || result.error);
}

runStaticCommand();

Configuration

  • MaxWorkers(count): Define o número máximo de workers simultâneos (deve ser um número positivo).
  • setLogging(options): Configura o arquivo de log:
    • enabled: Boolean para ativar/desativar o log (default: true).
    • location: Caminho para o arquivo de log (default: command_log.txt).
    • restartable: Se true, limpa o arquivo de log no primeiro uso (default: false).
  • warns(enabled): Ativa ou desativa todos os avisos de comando. true exibe os avisos, false os oculta.

Log File Location

O arquivo de log (padrão: command_log.txt) é criado na raiz do projeto ou no caminho especificado em setLogging. Ele é armazenado fora de node_modules para garantir que os logs persistam entre instalações.

Requirements

  • Node.js >= 14.0.0

License

MIT License. See LICENSE for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request on the GitHub repository.

Support

For issues or questions, open an issue on the GitHub repository.

1.0.0

8 months ago