@dfinity/eslint-config-oisy-wallet v0.1.13
🌟 @dfinity/eslint-config-oisy-wallet
A shareable ESLint configuration library for Oisy Wallet projects, supporting both TypeScript and Svelte.
!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):
- Create an ESLint configuration file 
.eslintrc.jsin your project root and extend the base configuration: 
module.exports = {
  extends: ["@dfinity/eslint-config-oisy-wallet"],
};For Svelte Projects:
- Create an 
.eslintrc.jsfile in your project root and extend the Svelte-specific configuration: 
module.exports = {
  extends: ["@dfinity/eslint-config-oisy-wallet/svelte"],
};For vitest test suites:
- Create an 
.eslintrc.jsfile in your project root and extend the vitest-specific configuration: 
module.exports = {
  extends: ["@dfinity/eslint-config-oisy-wallet/vitest"],
};- If the rules must apply ONLY to test files, they can be configured as:
 
module.exports = {
  overrides: [
    {
      // Specify the test files and/or folders
      files: [
        "**/*.test.{ts,js}",
        "**/*.spec.{ts,js}",
        "**/tests/**/*.{ts,js}",
      ],
      extends: ["@dfinity/eslint-config-oisy-wallet/vitest"],
    },
  ],
};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-rulesplugin we use for custom rules requires a file located at the root and does not offer any customizable location option.
🔧 Overriding or Disabling Rules
You can override or disable any of the rules provided by this configuration — including custom local rules — just like you would with any ESLint config.
In your .eslintrc.js, simply add a rules section:
module.exports = {
  extends: ["@dfinity/eslint-config-oisy-wallet/svelte"],
  rules: {
    // Disable a built-in rule
    "no-console": "off",
    // Disable a local custom rule
    "local/use-nullish-checks": "off",
    // Customize severity or options
    "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }],
  },
};Or in eslint.config.ts, adding an object with the rules property:
import { default as svelteConfig } from "@dfinity/eslint-config-oisy-wallet/svelte";
import { default as vitestConfig } from "@dfinity/eslint-config-oisy-wallet/vitest";
export default [
  ...vitestConfig,
  ...svelteConfig,
  {
    rules: {
      // Disable a built-in rule
      "no-console": "off",
      "vitest/expect-expect": "off",
      // Disable a local custom rule
      "local/use-nullish-checks": "off",
      // Customize severity or options
      "@typescript-eslint/no-unused-vars": [
        "warn",
        { argsIgnorePattern: "^_" },
      ],
    },
  },
];Note: To override local rules, make sure you have the eslint-local-rules.cjs file at the root as described above.
🛠️ 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 lint6 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
9 months ago
6 months ago
7 months ago
8 months ago
7 months ago
7 months ago
6 months ago
7 months ago
7 months ago
7 months ago
7 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago