@marinade.finance/eslint-config
v1.3.1
Published
Shared ESLint configuration for TypeScript/NodeJS/React/Next.js projects
Downloads
387
Readme
Marinade ESLint and Prettier Configuration
Shared configuration for ESLint and Prettier used in Marinade projects.
How to Use
1. Configure package.json
Update the package.json of the dependent project to include the required dependencies and recommended scripts:
{
"name": "@marinade.finance/project-name",
"scripts": {
...
"lint:ts": "eslint .",
"lint:ts-fix": "eslint . --fix",
"lint": "pnpm run lint:ts",
"lint:fix": "pnpm run lint:ts-fix",
"format": "prettier --write .",
"format:check": "prettier --check .",
"check": "pnpm lint && pnpm format:check",
"fix": "pnpm lint:fix && pnpm format",
"prepare": "husky",
...
},
"devDependencies": {
"@marinade.finance/eslint-config": "1.2.1",
"eslint": "^9.33.0",
"prettier": "^3.6.2",
...
}
}Then run pnpm install.
2. Create eslint.config.cjs
Create an eslint.config.cjs file in the root of your project (next to package.json).
You can use the configuration as is, or customize it as needed:
const createSharedConfig = require('@marinade.finance/eslint-config')
const sharedConfig = createSharedConfig({})
module.exports = [
...sharedConfig,
{
rules: {
'no-console': 'off',
},
},
{
files: ['**/*.spec.ts'],
rules: {
'@typescript-eslint/no-unsafe-member-access': 'off',
},
},
]3. Create prettier.config.js
Create a prettier.config.js file in the root of your project:
module.exports = require('@marinade.finance/eslint-config/prettier')To customize Prettier settings
module.exports = {
...require('@marinade.finance/eslint-config/prettier'),
// additional prettier options
printWidth: 100,
}3.b. (Optional) Create .prettierrc file
To exclude files from Prettier formatting, create a .prettierignore file with entries like:
node_modules/
dist/
build/
target/
out/
*.tsbuildinfo
pnpm-lock.yaml
.DS_Store
.vscode/
.idea/4. (Optional) Set Up Husky
You can use Husky to automatically run linting and formatting before commits.
Run:
npx husky-initThis sets up a .husky directory and a pre-commit hook. It also adds a prepare script to package.json.
In .husky/pre-commit, you can use:
pnpm check