-
Notifications
You must be signed in to change notification settings - Fork 2
Changelog
Diego Doumecq edited this page Apr 23, 2020
·
18 revisions
- BREAKING CHANGE: changed the name of the function from createJoyMap to createJoymap
- Moved the types to the root of the library for easy importing
- Fixed bug that was blocking TS types from being exported properly
- Centralized ALL of the examples into a single page
- Made that single page the github-pages of the library
- Made several improvements to every example
- Added programatically generated buttons that point to codesandbox to offer easy live editing
- BREAKING CHANGE: Refactored the query module's get functions to be more declarative and clear on what they actually return
- BREAKING CHANGE: Removed the Rx dependency to halve the size of the library (made it so you need to pass the rxjs and operators as an argument on module creation)
- Added rumble support
- Added Typescript types for internal and external use
- Added new example that showcases rumble support and full window canvas
- Improved the video example
- Removed classes from the React example and now it uses React hooks
- Removed css modules and replaced them with styled components in the React example
- Updated ALL dependencies
- Added prettier and forced its use through a husky (git commit hooks)
- Reduced indentation from 4 to 2 spaces
- Refactored the Player structure into modules
- Added new module type to handle inputs by events
- Removed flowtype due to excesive development friction
- Added new example: fighting game training mode input cache
- Removed ava references and config
- Added lodash as a dependency and replaced a bunch of functions with it
- Now build outputs babelized code as well as a min js file
- Updated webpack & babel dependencies
- Made memoization mandatory, its no longer opt-out
- JoyMap no longer parses all buttons on each poll and now handles that logic on button data request
- Mappers now only receive the player object as argument
- Removed player name because it wasn't necessary and bloated the API
- Made canvas example's use of mappers more interesting
- Added support for multiple gamepads to stateLog example
- Improved flowtype type names
- Updated flowtyped declarations
- Implemented Exporting and Importing of Player configurations
- Cleaned up the canvas example of every dependency and ES6 feature so that it's simpler and less difficult to understand for new js developers
- Added option to memoize button, stick and mapper results
- Added fast-memoize as a dependency to do the memoization
- Removed all unnecessary auxiliary structures being updated on each poll, improving performance greatly
- Now both createJoyMap and createPlayer each return one object composed entierly of functions
- In consequence, added a bunch of setters and getters to both
- Refactored buttonAliases, stickAliases, buttonBindings, stickBindings and aggregators into just buttons and sticks that handle indexes directly
- Added functions to handle said indexes making changing buttons and sticks more flexible and way simpler with less concepts thrown around
- Renamed aggregators as mappers and now they are only used when queried
- Player creation has now been delegated entirely to the user
- Players auto connecting to unused gamepads is now an option
- player.getButtons now returns all of the buttons, some of the buttons or only one depending on the arguments given
- Same thing goes for getSticks
- Moved all non-inline type definitions to the types file
- Updated all of the examples so that they now use the new API
- Replaced es6 classes with factory functions to discourage classical inheritance and to make things simpler
- Refactored the bundling process: now the output is every single file but transpiled and paired with the original file with a .flow extension added. Apparently that's how it must be done. For now
- joyMap.removePlayer now takes a player and not a name as an argument
- Improved canvas example to allow multiple gamepads that can connect and disconnect
- Added alphanumeric checks to all functions that took names as arguments
- Added a proposal for event handling to roadmap
- Started using a Changelog
- Changed how sticks work, instead of having a value of type object like { x: 0, y: 0 } they now are simple arrays of numbers [0, 0]
- Sticks can now have any number of axes instead of being forced into only having 2
- Implemented full rebinding support
- Added the data structure parsedGamepad for ease of use
- Built JoyMap from the ground up
- Refactored it several times, including one complete rewrite
- Decided to have an actual README
- Replaced all mentions of npm with yarn
- Changed the dev environment several times
- Added three examples of usage using different techniques
- Removed the lodash dependency from the library
- Added flowtype support
- Exported flowtypes of library using babel-plugin-transform-flow-comments
- Realized flowtype comments are not being maintained
- Regretted spending so much time on flowtype comments