npm.io
0.4.1 • Published yesterday

@coldsmirk/commitlint-config

Licence
MIT
Version
0.4.1
Deps
2
Size
6 kB
Vulns
0
Weekly
0
Stars
1

canon

Opinionated, sealed frontend toolchain configs, published under @coldsmirk/*.

A pnpm monorepo of shared ESLint, Stylelint, commitlint, and TypeScript configs — one coherent toolchain where the rules aren't yours to tweak. You take the curated set or you don't. Every config is exposed as a single defineXxxConfig() factory, so wiring is identical everywhere.

Packages

Package What it is
@coldsmirk/eslint-config Sealed ESLint flat config for pure-TypeScript and React projects. defineEslintConfig({ type, react, ignores }).
@coldsmirk/stylelint-config CSS / SCSS config — standard + @stylistic + recess property ordering. defineStylelintConfig({ scss }).
@coldsmirk/commitlint-config Conventional Commits, enforced single-line (no body, no footer). defineCommitlintConfig().
@coldsmirk/tsconfig Strict, ESM-first tsconfig presets: /base (bundler), /node (nodenext), /react (base + JSX + DOM).

Quick start

Install only the configs you need — each package's README has the full details. For ESLint:

pnpm add -D @coldsmirk/eslint-config eslint
// eslint.config.ts
import { defineEslintConfig } from "@coldsmirk/eslint-config";

export default defineEslintConfig({ react: true });

See the per-package READMEs for Stylelint, commitlint, and tsconfig.

Design

  • Sealed. Rules are deliberately not configurable — the only knobs are the documented option axes (type, react, scss, …). The single escape hatch is an inline eslint-disable / stylelint-disable comment.
  • One API shape. Every config is a defineXxxConfig(options?) factory — no string extends, no copy-pasted config objects.
  • Formatting without Prettier. Code style is owned by @stylistic (ESLint) and @stylistic/stylelint-plugin (Stylelint).
  • Non-type-checked ESLint tier. Fast — no projectService; type errors are TypeScript's job.
  • Dogfooded. This repo lints, type-checks, and commit-lints itself with its own configs.

Requires Node ≥ 22.

Development

pnpm install
pnpm typecheck   # tsc --noEmit across all packages
pnpm lint        # eslint . --fix
pnpm test        # vitest
pnpm build       # tsdown, all packages

husky enforces the chain locally — commit-msg (commitlint), pre-commit (lint-staged), pre-push (typecheck + test). CI re-runs the full gate on every push; a release is cut by pushing a v* tag, which builds, publishes every @coldsmirk/* package to npm with provenance, and creates a GitHub Release (see .github/workflows/release.yml).

License

MIT Venus

Keywords