Deeshan Sharma

Published npm CLI Tools

Three command-line tools published to npm in 2021 — an ESLint config generator, a Stylelint one, and a project scaffolder. 76 commits, all mine, six tagged releases, still installable and honestly labelled as superseded.

TypeScript
JavaScript
Node.js
npm
CLI
ESLint
Stylelint

Overview

Three packages under my npm account, written over the summer of 2021. eslintrc-generator asks six questions and writes an .eslintrc.json, installing the matching dev-dependencies as it goes. stylelintrc-generator does the same for Stylelint. aio-project-initializer scaffolds a React and webpack front end, or an Express and Mongoose back end, from bundled templates. 76 commits across the three, every one of them mine, six tagged releases, MIT.

The Prettier problem, and how far I got with it

ESLint and Prettier disagreeing is a real and universal waste of an afternoon, and it is what these were for. The Stylelint generator solves it properly: it extends stylelint-prettier/recommended, which both switches off the conflicting rules and turns formatting violations into lint errors. The ESLint one does half the job — it extends eslint-config-prettier, so ESLint stops fighting Prettier, but it never enables the prettier/prettier rule, so ESLint never runs Prettier either. I found that reading my own code back years later. It is exactly the sort of thing one test would have caught, and there were no tests.

How they are built

inquirer for the prompts, Listr for the task pipeline, execa to shell out to npm or yarn one package at a time, then a file write. The ESLint tool also takes yargs flags so it can run non-interactively in a script. Two of the three are TypeScript with a real build step; the first one is plain JavaScript — and it carries the best-kept changelog of the set, a dated Keep a Changelog file across six releases.

Where they stand now

Superseded, and I would rather say so than let a version number imply otherwise. ESLint 9 made flat config the default in 2024 and no longer reads .eslintrc.json without opting in — so a file these generate is ignored by a current ESLint install, and because the tool runs a bare install of the latest ESLint, it fetches the very version that ignores its own output. stylelint-config-prettier was deprecated in 2023 for the same reason it existed. These are archived artefacts from a 2021 ecosystem, not maintained tools.

Why they are on this page

Most of what I build professionally is not public. These are: installable, versioned, and under my own name. The value was never the line count. Publishing something a stranger can install and break is what teaches you to care about a changelog, a bin entry and the cost of a breaking change — in a way that private work quietly never does.

Other Projects