Giter Site home page Giter Site logo

keycap's People

Contributors

dependabot-preview[bot] avatar imobs avatar

Watchers

 avatar  avatar

keycap's Issues

Fill out the README

Add a proper description, some examples, so on. Get some inspiration from similar projects.

Set up npm deployment through CI

The job in the config is there but it's not been tested and nothing has been pushed. It would be nice to have something out there to at least reserve the name.

Should the user input keys be in the form of a comma separated string?

Currently, the expectation is that the keys be provided through the API as an array of strings for each possible combination. Other similar libraries instead take a comma-separated string that is then split for each of the combinations. Maybe it's worth seeing how that would look.

Filter callbacks in keydownListener

Right now in keydownListener it is iterating through everything in instanceMap which means that every registered callback is fired off. This needs to filter to only those that have a matching key.

Followup: Filtering all registered callbacks every time a keydown event happens is an O(n) operation and there might not be any callbacks that match, which is a whole lot of wasted work. The idea would be to first convert instanceMap to be a hash map where the KeySet (or something similar) is the key and the value is the list of registered callbacks. Then when a keydown event does occur we convert the KeyboardEvent to a matching KeySet value and then use that to get the list of callbacks in O(1) time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.