Skip to main content

Presetter v8.3: Toolchain Refresh and Smarter Presets

ยท 2 min read
Alvis
Presetter Creator & Maintainer

Presetter has kept shipping steady improvements since the v8.0 launch. The v8.3 update pulls those changes together with refreshed tooling, smarter defaults, and cleaner monorepo behavior.

Highlights Since v8.0โ€‹

๐Ÿš€ Toolchain Upgrades (v8.2)โ€‹

  • Vitest 4 in presetter-preset-essentials
  • Storybook 10 in presetter-preset-web
  • Next.js 16 in presetter-preset-next

โœจ Smarter Defaults (v8.3)โ€‹

  • ESLint config discovery now prefers the closest config file per package
  • Automatic binary resolution in run, run-s, and run-p for preset-provided tools
  • Typecheck script included across preset package templates

๐Ÿงญ Monorepo Qualityโ€‹

  • Linting includes source + test files by default
  • Workspace tests pick up vitest.config{,.int,.e2e}.ts automatically

Real-World Configuration Exampleโ€‹

This simplified snippet mirrors how we run Presetter in a production monorepo (from ~/Repositories/core):

presetter.config.ts
import { asset, preset } from 'presetter';
import monorepo from 'presetter-preset-monorepo';

export default preset('core', {
extends: [monorepo],
variables: {
target: 'ES2024',
},
override: {
assets: (context) =>
context.isRepoRoot
? {
'vitest.config.ts': asset((current) => ({
...current,
default: {
...current?.default,
test: {
...current?.default?.test,
projects: ['*/*/vitest.config{,.int,.e2e}.ts'],
},
},
})),
}
: {
'eslint.config.ts': {
default: [
{
name: 'monorepo:override',
rules: {
'max-lines': 'off',
},
},
],
},
},
},
});

Upgrade Checklistโ€‹

npm install --save-dev presetter@^8.3.0 \
presetter-preset-essentials@^8.3.0 \
presetter-preset-web@^8.3.0

# Regenerate configs after upgrading
npx presetter bootstrap