Skip to content

Shared ESLint configurations from the Oisy Wallet team

License

Notifications You must be signed in to change notification settings

dfinity/eslint-config-oisy-wallet

Repository files navigation

🌟 @dfinity/eslint-config-oisy-wallet

A shareable ESLint configuration library for Oisy Wallet projects, supporting both TypeScript and Svelte.


Internet Computer portal GitHub CI Checks Workflow Status

Note

This configuration is currently compatible with ESLint 8.

🖥️ Installation

# 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

✍️ Usage

For General Projects (Non-Svelte):

  1. 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:

  1. 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.

🛠️ TypeScript Support

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"]
}

🔍 Linting Your Project

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