{"id":26074,"library":"pickier","title":"pickier","description":"pickier is a fast, unified linter and formatter built on top of oxlint and prettier, written in Rust and exposed via a CLI and Node.js API. Version 0.1.23 is the latest stable release, with active development and frequent minor updates. It differentiates itself by being 10x faster than ESLint and Prettier combined, leveraging oxc for linting and formatting. Supports JavaScript, TypeScript, JSX, TSX, JSON, and more. Designed for modern monorepos and CI pipelines. Requires Node.js >= 18 or Bun. Ships TypeScript types. Not a replacement for editors yet, but focuses on speed for pre-commit hooks and CI.","status":"active","version":"0.1.23","language":"javascript","source_language":"en","source_url":"https://github.com/pickier/pickier","tags":["javascript","pickier","linter","formatter","bun","fast","typescript"],"install":[{"cmd":"npm install pickier","lang":"bash","label":"npm"},{"cmd":"yarn add pickier","lang":"bash","label":"yarn"},{"cmd":"pnpm add pickier","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"pickier uses oxlint under the hood for linting rules","package":"oxlint","optional":false}],"imports":[{"note":"ESM-only; use dynamic import or top-level await in CJS. Types included.","wrong":"const pickier = require('pickier')","symbol":"pickier","correct":"import pickier from 'pickier'"},{"note":"Named export from main entry. Incorrect subpath import.","wrong":"import lint from 'pickier/lint'","symbol":"lint","correct":"import { lint } from 'pickier'"},{"note":"ESM-only; Named export.","wrong":"const format = require('pickier').format","symbol":"format","correct":"import { format } from 'pickier'"},{"note":"TypeScript users should import types with 'import type' for better tree-shaking.","wrong":"","symbol":"type","correct":"import type { PickierOptions } from 'pickier'"}],"quickstart":{"code":"import { lint, format } from 'pickier';\n\nconst args = process.argv.slice(2);\nconst files = args.length ? args : ['src'];\n\n// Lint files\nconst lintResult = await lint({ files, fix: false });\nconsole.log(lintResult);\n\n// Format files\nconst formatResult = await format({ files, check: false });\nconsole.log(formatResult);","lang":"typescript","description":"Shows how to programmatically lint and format files with pickier, using the default API. Runs on provided file patterns or defaults to 'src'."},"warnings":[{"fix":"Update to `import pickier from 'pickier'; pickier.lint(...)` or use named exports.","message":"v0.1.0 changed the default export from an object to a function. Any code using `const pickier = require('pickier'); pickier.lint(...)` will break.","severity":"breaking","affected_versions":"<0.1.0"},{"fix":"Replace `--fix` with `--lint-fix` for lint auto-fix or `--format` for formatting.","message":"The `--fix` flag in CLI is deprecated; use `--lint-fix` or `--format` explicitly.","severity":"deprecated","affected_versions":">=0.1.15 <0.1.20"},{"fix":"Pass `write: true` to format() to overwrite files.","message":"pickier does not format files in place unless the `write` option is true. By default, format() returns the formatted string without writing.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use `.pickiarrc` (JSON) or `pickier.config.js` (CommonJS/ESM).","message":"The configuration file must be named `.pickiarrc` or `pickier.config.js` (no `.ts` support yet).","severity":"gotcha","affected_versions":"<0.1.23"},{"fix":"Upgrade Node.js to 18+ or use Bun.","message":"v0.1.18 removed support for Node.js < 18. The package now requires Node >= 18 or Bun.","severity":"breaking","affected_versions":"<0.1.18"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use `import pickier from 'pickier'` then call `pickier.lint()` or ensure the module is ESM (pickier is ESM).","cause":"Using named import on a CJS module without proper interop, or wrong import syntax.","error":"SyntaxError: Named export 'lint' not found. The requested module 'pickier' is a CommonJS module which may not support all module.exports as named exports."},{"fix":"Create a `.pickiarrc` file (JSON) or `pickier.config.js` in the project root.","cause":"Missing or misnamed configuration file.","error":"Error: Cannot find module '.pickiarrc'"},{"fix":"Use `import pickier from 'pickier'` (default export is a function) or use named exports `import { lint, format } from 'pickier'`.","cause":"Using default import when module exports are named, or wrong version.","error":"TypeError: pickier is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}