A shareable ESLint configuration library for Oisy Wallet projects, supporting both TypeScript and Svelte.
Note
This configuration is currently compatible with ESLint 8.
# with npm
npm install --save-dev @dfinity/eslint-config-oisy-wallet
# with pnpm
pnpm add --save-dev @dfinity/eslint-config-oisy-wallet
# with yarn
yarn add -D @dfinity/eslint-config-oisy-wallet
For General Projects (Non-Svelte):
- Create an ESLint configuration file
.eslintrc.js
in your project root and extend the base configuration:
module.exports = {
extends: ["@dfinity/eslint-config-oisy-wallet"],
};
For Svelte Projects:
- Create an
.eslintrc.js
file in your project root and extend the Svelte-specific configuration:
module.exports = {
extends: ["@dfinity/eslint-config-oisy-wallet/svelte"],
};
Finally, create an eslint-local-rules.cjs
file at the root of your project containing the following:
module.exports = require("@dfinity/eslint-config-oisy-wallet/eslint-local-rules");
Note
This is necessary because the eslint-plugin-local-rules
plugin we use for custom rules requires a file located at the root and does not offer any customizable location option.
If your project uses TypeScript, make sure you have a tsconfig.json
file in your project root.
Here's an example tsconfig.json
:
{
"compilerOptions": {
"strict": true,
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "node",
"esModuleInterop": true,
"skipLibCheck": true
},
"include": ["src/**/*.ts", "*.svelte"],
"exclude": ["node_modules", "dist"]
}
To lint your project, add the following script to your package.json
:
{
"scripts": {
"lint": "eslint --max-warnings 0 \"src/**/*\""
}
}
Then, run the linting command:
npm run lint