Module

x/cliffy/keycode/README.md

Command line framework for deno 🦕 Including Commandline-Interfaces, Prompts, CLI-Table, Arguments Parser and more...
Extremely Popular
Go to Latest
File

Cliffy ❯ KeyCode

Version Release date Deno version Build status issues Licence

ANSI key code parser for Deno
>_ Used by cliffy’s prompt module.

❯ Content

❯ Install

This module can be imported directly from the repo and from following registries.

Deno Registry

import { KeyCode } from 'https://deno.land/x/cliffy@<version>/keycode/mod.ts';

Nest Registry

import { KeyCode } from 'https://x.nest.land/cliffy@<version>/keycode/mod.ts';

Github

import { KeyCode } from 'https://raw.githubusercontent.com/c4spar/deno-cliffy/<version>/keycode/mod.ts';

❯ Usage

import { KeyCode } from 'https://deno.land/x/cliffy/keycode/mod.ts';

async function read(): Promise<void> {

    const buffer = new Uint8Array( 8 );

    Deno.setRaw( Deno.stdin.rid, true );
    const nread = await Deno.stdin.read( buffer );
    Deno.setRaw( Deno.stdin.rid, false );

    if ( nread === null ) {
        return;
    }

    const data = buffer.subarray( 0, nread );

    const [ event ] = KeyCode.parse( data );

    if ( event?.name === 'c' && event.ctrl ) {
        console.log( 'exit' );
        return;
    }

    console.log( event );

    await read();
}

console.log('Hit ctrl + c to exit.');

await read();
$ deno run --unstable https://deno.land/x/cliffy/examples/keycode/read-key.ts

❯ API

KeyCode

  • parse( data: Uint8Array | string ): KeyEvent | undefined

KeyEvent

  • name?: string
  • sequence?: string
  • ctrl: boolean
  • meta: boolean
  • shift: boolean

❯ License

MIT