@nldoc/configs
v1.5.6
Published
A package containing default configuration for NLDoc Typescript projects
Downloads
188
Readme
@nldoc/configs
Shared TypeScript, ESLint, and Prettier configurations for NLdoc projects
Features
- 🎯 ESLint Configuration - Strict TypeScript-first ESLint setup with recommended rules
- 💅 Prettier Configuration - Consistent code formatting across all NLdoc projects
- 🔧 Next.js Support - Specialized configurations for Next.js applications
- 🛠️ Utility Functions - Helper functions for ESLint compatibility with legacy plugins
- 📦 Zero Config - Works out of the box with sensible defaults
- 🔄 ESLint 9+ Flat Config - Modern ESLint flat configuration format
Installation
Prerequisites
- Node.js >= 22
- npm or yarn
- TypeScript project with
tsconfig.json
Install the package
npm install @nldoc/configs --save-devGetting Started
Basic Setup
Create the following configuration files in your project root:
ESLint Configuration
Create eslint.config.mjs:
// @ts-check
import baseConfig from '@nldoc/configs/eslint.config.mjs'
import tseslint from 'typescript-eslint'
export default tseslint.config(...baseConfig, {
// Add your custom rules here
})Prettier Configuration
Create prettier.config.mjs:
// @ts-check
import baseConfig from '@nldoc/configs/prettier.config.mjs'
export default {
...baseConfig,
// Add your custom rules here
}Next.js Projects
For Next.js applications, use the specialized configurations:
Next.js ESLint Configuration
// eslint.config.mjs
// @ts-check
import baseConfig from '@nldoc/configs/nextjs.eslint.config.mjs'
import tseslint from 'typescript-eslint'
export default tseslint.config(...baseConfig, {
// Add your custom rules here
})Next.js Prettier Configuration
// prettier.config.mjs
// @ts-check
import baseConfig from '@nldoc/configs/nextjs.prettier.config.mjs'
export default {
...baseConfig,
// Add your custom rules here
}Configuration Details
ESLint Configuration
The base ESLint configuration includes:
- TypeScript strict type checking
- Stylistic rules for consistent code style
- Promise plugin for async/await best practices
- Prettier integration for formatting
- Custom rules for common patterns
Prettier Configuration
Default formatting rules:
- Tab width: 4 spaces
- Print width: 120 characters
- Single quotes
- No semicolons
- Trailing commas (ES5)
Next.js Configurations
The Next.js variants include:
- JSX/React specific rules
- Accessibility rules (jsx-a11y)
- Next.js recommended settings
- React Hooks rules
Available Scripts
Add these scripts to your package.json:
{
"scripts": {
"lint": "eslint . --cache",
"lint:fix": "eslint . --cache --fix",
"format": "prettier . --write",
"format:check": "prettier . --check",
"typecheck": "tsc --noEmit"
}
}Troubleshooting
ESLint Legacy Plugin Compatibility
If you're using ESLint plugins that haven't been updated for ESLint 9's flat config format, use the provided utility functions:
import { fixCompatibility } from '@nldoc/configs/eslint.utils.mjs'
// Use fixCompatibility to wrap legacy configs
const legacyConfigs = fixCompatibility('plugin:some-legacy-plugin/recommended')Documentation
License
This project is licensed under the European Union Public License 1.2 - see LICENSE for details.
