David Walsh Tutorials
What I’m Thankful For: 2020 Edition
My parents loathe when I use poor language but luckily they don't read this blog so I'll just be blunt: 2020 has been an absolute shit show. COVID-19 has been a world-wide source of devastation to lives, jobs, and our quality of life. That...
Use a Submit Button Outside of a Form!
Have you ever felt like you've been a professional developer or designer forever, and somehow not known something basic, and borderline hate yourself? That's me with a trick that was introduced to me by Miguel Piedrafita:🔥 You can submit forms from a button outside of...
Detect Generator Functions with JavaScript
In the current JavaScript climate of new syntaxes, features, and using loads of external libraries, it seems harder than ever to be sure what your functions are being given or even what the data represents. Of course, we've come up with Flow and TypeScript to help...
git: Remove Untracked Files
I've always said that I know just enough about git to get the job done, but also do something destructive. Nothing embodies that more than my recent mistake. I somehow found a git repository full of untracked files and
git stash
wouldn't fix it.Node isConnected
Every so often I discover a property in JavaScript objects that I didn't know existed, oftentimes using another trick to accomplish the same functionality. One such property I just learned about was
isConnected
, a node property that attached to a context (i.e.document
).Here's how to...Limit Promise Concurrency with pool
Methods like
Promise.all
,Promise.allSettled
,Promise.race
, and the rest are really excellent for managing multiple Promises, allowing for our apps to embrace async and performance. There are times, however, that limiting the number of concurrent operations may be useful, like rate limiting or simply not wanting...Detect Changed Files with git
There are numerous reasons to want to know which files have been added or modified in a git repository, one of which is your text editor highlighting those files. Another use case is running tasks against only files which are presently changed, like lint or...
cookieStore: Async Cookie API
One pattern in the JavaScript API world that web development veterans will notice is that we've been creating new methods to accomplish what older, grosser APIs once achieved.
XMLHttpRequest
became thefetch
API, some APIs like Battery became async, and there are dozens of other examples.How to Prevent Pasting into an Input
Every once in a while I get to a website that doesn't allow me to paste into a form input. In most cases it's something to do with login credentials (username and or password) and auth codes. So how are they preventing me from...
Sports Data for Developers: SportdataAPI
Most of the side projects I consider starting revolve around sports, since I'm a huge sports fan. I spend my Saturdays watching soccer, Sundays spent watching soccer and NFL, and of course the mid-week Champions League and Europa League matches. One problem I've...