I'm happy to announce the 0.16.0 release of Nodewood, bringing with it some high-value polish and new features.
Hot Module Reloading
Nodewood now offers Hot Module Reloading in development. This is a fantastically handy piece of tech that will automatically swap in updated code in your browser as soon as the development server compiles it. This can dramatically increase UI development speed, since there's no need to perform a full reload of the page and perform all the actions required to restore your state. Combined with high-speed Mutagen Docker volume mounts, Nodewood development has never been faster!
Automatic form submission on Enter keypress
Having to take your hands off the keyboard to click a button to submit a completed form is a drag. Now, Nodewood's TextInput controls will catch the "Enter" key being pressed and search up the DOM tree above them for a form to submit. This saves time for users and provides a smoother feel to your app.
New "samples" feature
One of the first things you'd do when starting a new Nodewood project was to remove the "About" and "Components" sample pages, and change the "Home" sample page to one more-specific to your project. That's a lot easier now, as those files have been moved to a feature called "samples" that you can disable in one line, making new projects faster and cleaner to set up than ever before.
Safer promises
This release addes the eslint-plugin-promise ESLint plugin to the eslint ruleset. These rules ensure you're staying safe with your promise usage. For example, they'll alert you when you're using promises or async/await without catching raised errors, which means those errors could skip Nodewood's global error-handlers. All modern editors can display ESLint rules violations as you code, which can help you catch errors like this while you develop, instead of after gruelling hours attempting to debug production code.
Route logging
Having some issues with API Controller routes? Want to see exactly what routes you've defined and why certain queries aren't being resolved the way you expect? Just add NODE_ENV=development
and LOG_ROUTES=log
to your .env
file, and the currently-defined routes will log to the console on application startup.
Configurable request body size
Express's default request body has a limit of 100kb, which is fine for most simple purposes. That said, the moment you start allowing file uploads, that's not going to be enough. Now you can set bodyLimit
and urlParameterLimit
in config/app.js
to increase them to whatever new limit you need.