v1.30.0
Vitest support
Crafty now ships @swissquote/crafty-preset-vitest, a first-class preset for running tests with Vitest as an alternative to Jest (#3110).
It follows the same patterns as crafty-preset-jest: crafty test is the single entry point, crafty ide generates the IDE-facing config, and crafty test --coverage produces LCOV output and a SonarQube-compatible test execution report out of the box.
Crafty supports exactly one active test runner per project. If both Jest and Vitest presets are configured, Crafty will fail with a clear error.
ESLint 10
crafty-preset-eslint and eslint-plugin-swissquote have been migrated from ESLint 9 to ESLint 10 (#3076).
Bug fixes
- Fixed
crafty watchcrash (minimatch_1.default is not a function) in the TypeScript + webpack + fork-ts-checker path. The minimatch wrapper is now exported correctly as a callable default (#3132). - Fixed
crafty watchcrash (stream.push() after EOF) when usingcrafty-preset-postcss+crafty-runner-gulp(#3161). - Restored the
init()feature in PostCSS'sProcessorconfiguration that was inadvertently dropped during the ESM conversion (#3151). - Fixed a Stylelint rule that was not correctly matching CSS property names (#3127).
Internal
- Removed
ts-loaderfrom the Rspack runner; TypeScript is now handled directly by the SWC-based Rspack transform (#3149). - Several internally-bundled package forks converted to ESM, and parts of the PostCSS loader made async to support ESM PostCSS plugins (#3114).
- Added a build benchmark suite (#3156).
- Security update for the
tmpdependency (#3148). - Yarn upgraded to 4.15.0.
Tool updates
- ESLint: 9.39.4 → 10.4.1
- typescript-eslint: 8.59.3 → 8.60.1
- webpack: 5.106.2 → 5.107.2
- Rspack: 2.0.2 → 2.0.6
- Vitest: introduced at 4.1.7
- babel: 7.29.0 → 7.29.7
- SWC: 1.15.33 → 1.15.40
- postcss: 8.5.14 → 8.5.15
Thanks for the bug reports and contributions
Thanks to @AndreySushkovich for the vitest contribution and to @saniaBarish, Georgios Andreas Nellas, and Quentin Walter for the extensive tests and reproducible bug reports