There's a lot to *really* like about Deno... I know there's a few areas that are a bit more difficult, and a lot of things in Node, with no similar libraries in sight for Deno.
That said, I've played with it a bit, and I like a lot of it. I hope that more libraries and projects become compatible with published releases.
I do think the library framework release system is a bit different and could lead to some interesting innovations. I'm not completely convinced it's that much better than npm, but it definitely feels easier.
It's not really faster for most applications... it can be nice if you're enhancing a mostly static generated site.
Really wish there was a good solution for JSX with ES Modules... you *could* either do any translation server-side, or use some worker solution(s), but it gets messy. Similar for TS.
Have done a couple proof of concept bits, but it can get sticky really quickly.
Probably worth adding to the examples...
typeof undefined === "undefined"
typeof NaN === "number"
NaN in particular, along with Invalid Date can be interresting corner cases in practice. I find it's often best to rely on coercion and input validation over type checking.
The first followup to this should probably be falsey values, and how knowing them is useful for input validation.
Venturing OT, but if you're doing end to end tests, I would suggest getting familiar with Docker, docker-compose and its' usage. It's very easy to stand-up your entire environment, run your tests, and stand-down said environment. Many CI/CD runners have a full docker environment available, so this makes integration super easy as well.
I wouldn't suggest using this library/approach. First, read/write in your application directory is begging for trouble. Second, it's using an array lookup instead of an object/map. Third, it's not very flexible.
Probably worth adding to the examples... typeof undefined === "undefined" typeof NaN === "number" NaN in particular, along with Invalid Date can be interresting corner cases in practice. I find it's often best to rely on coercion and input validation over type checking. The first followup to this should probably be falsey values, and how knowing them is useful for input validation.TLDR; Use Promise.all for parallel async operations. const [a, b, c] = await Promise.all([p1, p2, p3]);