0.1.0 • Published 12 months ago

@lvcabral/terminal v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

Simple Web Terminal

Version 0.1.0 GitHub

A simple and lightweight Javascript web browser terminal

Web apps are great. But sometimes instead of all the double-clicks, mouse pointers, taps and swipes across the screen - you just want good old keyboard input. This terminal runs in a browser, desktop or mobile. It provides a simple and easy way to extend the terminal with your own commands.

How to use

Include web-terminal.js in your HTML:

<script src="web-terminal.min.js"></script>

Define an HTML div tag where the terminal will be contained:

<div id="web-terminal"></div>

Create a new terminal instance and convert the DOM element into a live terminal.

const terminal = new WebTerminal();

If you want use another DOM element as container just set the property container:

const terminal = new WebTerminal({ container: 'my-terminal-container' });

Add your own commands

If you want add your own commands to the terminal just pass a object using the property as your command and the value as the callback.

const commands = {
  switch: (terminal) => {
    terminal.output('This is a custom command of <b>web terminal<b>.')
    terminal.setPrompt('Custom Prompt &gt; ');
  },

  ping: (instance, parameters) => {
    instance.output('Ping to <u>${parameters[0]}</u>...');
  },
};

const terminal = new WebTerminal({ commands });

Now in your terminal could type your new commands:

> help
These shell commands are defined internally:
flavour, ping, clear, help, version, wipe

> switch
This is a custom command of web terminal.
Custom Prompt >

Methods

clear

terminal.clear();

output

terminal.output('I like ice-cream.');
I like ice-cream.
>

prompt

terminal.prompt('Type your name', (name) => {
  terminal.output(`Hi ${name}!`);
});
Type your name: javi
Hi javi!
>

onInput

terminal.onInput((command, parameters) => {
  console.log('⚡️onInput', command, parameters);
});

setPrompt

terminal.setPrompt('user @ web');
user @ web >

License

This repository is a fork from the https://github.com/soyjavi/vanilla-terminal and is licensed under the MIT License.

0.1.0

12 months ago