Skip to content

Changelog

Diego Doumecq edited this page Apr 23, 2020 · 18 revisions

v2.1.1

Apr. 23, 2020

  • 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

v2.0.0

Apr. 16, 2020

  • 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

v1.0.1

Jul. 27, 2017

  • 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

v0.7.2

Feb. 15, 2017

  • 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

v0.7.1

Jan. 30, 2017

  • 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

v0.7.0

Jan. 21, 2017

  • 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

v0.6.4

Jan. 16, 2017

  • 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

v0.6.1

Jan. 15, 2017

  • 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

v0.6.0

Jan. 14, 2017

  • 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

v0.5.0 and previous versions

2016

  • 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