[wip] Moves shared code into utils.js #64
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Unnecessary repetition makes it much harder to test functions, as well as understand what's happening in a particular module for people new to a code base. In short, less code is better code.
This PR migrates a lot of shared code into a utility module. Bits of it are uglier than I'd like, and I'm pretty sure I've broken something in the process. This is why we need unit tests — refactoring is a shot in the dark when we have no way of checking whether a commit causes a regression. However, it does make the overall codebase much cleaner, reducing each axis to no more than 300 (?!?!) lines.
My next step with this work-in-progress PR is to write a base prototype for each axis and then use that to reduce the amount of boilerplate in each. The more generic we can make the code base, the easier it will be to add tests, the easier it will be to expand, improve and maintain this library in the future.