@todesktop/dev-config
v1.0.27
Published
Shared dev configs for ESLint, Prettier, TypeScript, etc
Readme
dev-config
This package provides reusable development configuration files used across the
repository: ESLint, Prettier, and a base tsconfig.
ESLint
The ESLint configuration is based on eslint-config-airbnb-extended, which modernizes and replaces parts of eslint-config-airbnb and eslint-config-airbnb-typescript.
All projects extend the root config at
eslint.config.mjs. If a project needs a different
configuration, add or override rules in that project's eslint.config.mjs (for
example, tdutils).
A typical project config that reuses these shared configs looks like this:
import { configs, defineConfig } from '@todesktop/dev-config/eslint';
export default defineConfig(
configs.base,
configs.ts,
configs.prettier,
configs.react,
configs.nodeCommonJs,
{
rules: {
'no-console': 'off',
},
},
);Predefined configs from this package are applied first, then any project-specific rules are merged on top.
See eslint/index.js in this package for a list of available configs and short
descriptions.
Some configs come in multiple strictness levels. When you choose a strict variant, also include the base config, since it's not inherited.
| Base | Strict | Description |
| ------------ | ----------- | ------------------------------------------------------------------- |
| base | strict | JavaScript rules |
| ts | tsStrict | TypeScript rules |
| react | reactStrict | React-specific rules |
| prettier | - | Loads Prettier-related rule adjustments |
| node | - | Best practices for Node.js |
| nodeCommonJs | - | For CommonJS .js/.cjs files (configs, scripts, not source code) |
| esm | - | ESM-specific rules |
| unicorn | - | Rules from eslint-plugin-unicorn |
Prettier
A shared Prettier configuration is provided and applied from the repository root, so you usually do not need to add a separate Prettier config inside each subpackage.
tsconfig
A shared TypeScript base config is available. To reuse it, extend it from your
package's tsconfig.json:
{
"extends": "@todesktop/dev-config/tsconfig.json",
"include": ["src/**/*.ts"]
}