Non-Polite Mother

    vkeys

    1.2.0 • Public • Published

    vkeys

    problem

    some browsers have got an e.key attribute that is submitted with keydown and keyup events. chrome (and other browsers) does not have a e.key attribute. there are also inconsistencies between different browsers.

    solution

    @chrisdickinson initiated a project vkey to collect the different definitions and merge them into a unified definition. for code that can not handle spaces, or wants less clutter, this transformation might be useful.

    this module transforms the vkey definition, and removes the following clutter:

    • spaces
    • < and >
    • -
    • runs toLowerCase()

    the output is a static key mapping file (without dynamic edge cases): vkeys.js

    usage

    install

    npm install vkeys

    use

    var vkeys = require('./vkeys');
     
    window.addEventListener('keydown', function(e) {
      console.log(vkeys[e.keyCode])
    });

    api

    vkeys

    Object with {code : key} pairs.

    {
      0: 'unk',
      ...
      8: 'backspace',
      9: 'tab',
      12: 'clear',
      13: 'enter',
      ...
      254: 'clear'
    }

    see: vkeys.js

    vkeys.getKey(code)

    return the key for the given code.

    var key = vkeys.getKey(60);
    assert.equal(key, '<');

    vkeys.findCode(key)

    returns the first code that matches the key.

    var code = vkeys.findCode('space');
    assert.equal(code, 32);

    vkeys.findAllCodes(key)

    returns an Array of code's that match the key.

    var code = vkeys.findAllCodes('meta');
    // code equals [91, 92, 223, 224]

    build

    1. get the latest vkey module: npm install --save-dev vkey
    2. run the build: npm run build

    test

    npm install -g browserify testling
    npm run test

    license

    MIT

    Install

    npm i vkeys

    DownloadsWeekly Downloads

    408

    Version

    1.2.0

    License

    MIT

    Last publish

    Collaborators

    • andineck