Devtools

The State of JavaScript Testing Frameworks 2024

August 03, 2024  11 minute read  

This week, I am adding a test framework to my ESM module template. I use a testing framework for both unit testing and integration testing. Like everything, test frameworks have evolved, and no test framework is suitable for all situations. However, it is one of those things you have to do if your project is destined to be long-lived. You should get into the habit of adding tests even if your project is not going to be long-lived. It’s a good habit. The words you want to look for are “tes...

Enforcing code style with eslint, prettier, and husky

July 22, 2024  14 minute read  

You may have noticed that I am developing a new project from my last couple of articles: TypeScript, ES Modules, and root-relative imports Building TypeScript projects with the swc compiler The project is a command line tool written in TypeScript. Today, I’m continuing my tooling story. How do I enforce code style within my TypeScript application? The go to tools in this area are eslint, prettier, and husky. I’ve already gotten a good chunk of help in ensuring quality code by usin...

Building TypeScript projects with the swc compiler

July 11, 2024  5 minute read  

In my last article, I set up a small project that I’m going to use for TypeScript development using ES modules that are “root-relative” - i.e. I don’t have to provide a relative path. I can use a path like #root/relative/path.js instead so that the code doesn’t change if I decide to move the source file I’m working on. I want to switch from importing “.js” files to importing “.ts” files. To do that, I need to set allowImportingTsExtensions. The tsc tool says I can’t do that unless I also ...

TypeScript, ES Modules, and root-relative imports

July 10, 2024  5 minute read  

As you might have gathered from my last article, I’m currently working in the TypeScript world. My experience with converting from CommonJS to ES Modules got me thinking - what is state of the art right now? So I delved in. I want to build a CLI tool using TypeScript and ES Modules but I want to use non-relative roots. What are non-relative roots? Well, if you want to import a module within your project with ES Modules, you might write something like this: import { something } from '../...

Dev containers are a developers best friend

June 04, 2024  6 minute read  

If you’ve ever had to rebuild or significantly upgrade your machine in the middle of a project, then you will recognize the pain. You find that some versions of your favorite tools have changed, or you don’t remember the specific build command or tool download location for that one thing you rely on. Dev containers was designed with this in mind. It’s the technology behind Codespaces and supported in Visual Studio Code. In this tutorial, I’ll walk through the steps to create your own dev ...