Skip to content

cloudcmd/console-io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8647990 · Oct 12, 2023
Oct 12, 2023
Aug 10, 2023
Aug 10, 2023
Feb 13, 2015
Jul 23, 2014
Aug 10, 2023
Apr 15, 2019
Oct 12, 2023
Sep 6, 2019
Aug 10, 2023
Oct 17, 2020
Aug 10, 2023
Aug 10, 2023
Aug 10, 2023
Aug 10, 2023
Aug 10, 2023
Aug 10, 2023
Jan 19, 2021
Oct 12, 2023
Mar 1, 2018
Aug 10, 2023
Jan 19, 2021
Oct 19, 2018
Oct 12, 2023
Oct 12, 2023

Repository files navigation

Console License NPM version

Web console used in Cloud Commander.

Console

Install

npm i console-io -g

Use as standalone

Start console, go to url http://localhost:1337

Hot keys

Key Operation
Ctrl + Z cancel input
Ctrl + L clear screen
Ctrl + C kill running task

For more details see Jq-console keyboard shortcuts.

API

Client API

Console(element [, options])

  • element - html element, or selector
  • options - (optional) {cwd}

When prefix set in server and client, you should use same prefix in html. For example, if you use prefix "any_prefix" you should connect console script in this way:

<script src="/any_prefix/console.js"></script>

addShortCuts(shortCuts)

  • shortCuts - object contain big letter and function.

Example: show alert on Ctrl + A:

async () => {
    const konsole = await Console();
    
    konsole.addShortCuts({
        A() {
            alert('hello');
        },
    });
};

getPromptText()

Get text of prompt.

setPromptText(text)

  • text - string of new text

Set new text of prompt.

focus()

Set focus on Console.

Server API

Console(options)

Could be used as middleware, or for init Console.

Console.listen(socket, {
    server, // when no socket
    online: true, // default
    prefix: '/console', // default
    prefixSocket: '/console', // default
    auth: (accept, reject) => (username, password) => {
        accept();
    },
});

Console.middle(options)

Middleware function if there is a need of init socket in another place.

Console({
    prefix: '/console', // default
    online: true, // default
});

Use as middleware

To use Console in your programs you should make local install:

npm i console-io express

And use it in your program

// server.js
const webconsole = require('console-io');
const http = require('http');
const express = require('express');

const app = express();
const server = http.createServer(app);

const port = 1337;
const ip = '0.0.0.0';

const online = true;
app
    .use(webconsole({
        server,
        online, // load jquery and socket.io from cdn
    }))
    .use(express.static(__dirname));

webconsole.listen({
    server,
});

server.listen(port, ip);
<!-- index.html -->

<div class="console"></div>
<script src="/console/console.js"></script>
<script>
    document.addEventListener('load', async () => {
        const konsole = await Console('.console', {
            prefix: 'console',
            env: {
                CURRENT_FILE: getCurrentFile(),
                CURRENT_APP: 'console-io'
            }
        });
        
        console.log('console ready')
        konsole.focus();
        
        function getCurrentFile() {
            return 'filename.txt';
        }
    });
</script>

License

MIT