Will
Will
More praise for Decaffeinate here: https://benchling.engineering/from-200k-lines-of-coffeescript-to-zero-making-decaffeinate-super-stable-4de0ca68d9bc
More tools and documentation: https://github.com/decaffeinate/bulk-decaffeinate https://github.com/decaffeinate/decaffeinate/blob/main/docs/conversion-guide.md https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md
When using `decaffeinate --disallow-invalid-constructors`, [this change](https://github.com/decaffeinate/decaffeinate/pull/2512) is necessary to make `bulk-decaffeinate check` work properly. Edit: This has been merged upstream.
It may be a good idea to do this one service at a time. I ran into some issues with classes extending other classes (e.g. must use `new` with constructors),...
I made some progress on decaffeinating the `server` and `worker` directories (leaving only `app`) here: https://github.com/willroberts/duelyst/compare/main...willroberts:duelyst:decaffeinate-server It _mostly_ works, but something is up with the user data access. After logging...
`decaffeinate` results in logical/structural changes to the code (necessitating a good amount of work to fix things), so I also tried writing a script (https://github.com/willroberts/duelyst/compare/main...willroberts:duelyst:decaffeinate-backend?expand=1) to do this using the...
I looked at this again today. The reason the `decaffeinate` approach struggles is that we're using CoffeeScript 1.x instead of 2.x. In order to use `decaffeinate`, we may want to...
The testing process is generally this: - Make sure `yarn build` works - Make sure `docker compose up` works - After the above two, go to `http://localhost:3000` and play a...
Upgrading CoffeeScript appears to result in significantly more memory usage. See #173 for details. Getting rid of CoffeeScript via compiling it (instead of upgrading it to use `decaffeinate`) may be...
This appears to be caused by `.focus()` calls in `app/ui/views` and `app/ui/views2`. For example, `this.ui.$searchInput.focus();` is called in `views/composite/deck_select.js`, which causes the keyboard popup during deck selection.