Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dfinity/eslint-config-oisy-wallet
Shared ESLint configurations from the Oisy Wallet team
https://github.com/dfinity/eslint-config-oisy-wallet
eslint eslint-config eslint-rules
Last synced: about 1 month ago
JSON representation
Shared ESLint configurations from the Oisy Wallet team
- Host: GitHub
- URL: https://github.com/dfinity/eslint-config-oisy-wallet
- Owner: dfinity
- License: apache-2.0
- Created: 2024-09-19T05:42:10.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-11T19:13:42.000Z (about 1 month ago)
- Last Synced: 2024-10-11T19:15:33.249Z (about 1 month ago)
- Topics: eslint, eslint-config, eslint-rules
- Language: JavaScript
- Homepage:
- Size: 85 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# 🌟 @dfinity/eslint-config-oisy-wallet
A shareable ESLint configuration library for Oisy Wallet projects, supporting both TypeScript and Svelte.
[![Internet Computer portal](https://img.shields.io/badge/Internet-Computer-grey?logo=internet%20computer)](https://internetcomputer.org)
[![GitHub CI Checks Workflow Status](https://img.shields.io/github/actions/workflow/status/dfinity/eslint-config-oisy-wallet/checks.yml?logo=github&label=CI%20checks)](https://github.com/dfinity/eslint-config-oisy-wallet/actions/workflows/checks.yml)> [!NOTE]
> This configuration is currently compatible with ESLint 8.## 🖥️ Installation
```bash
# 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:
```javascript
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:
```javascript
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:
```javascript
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`:
```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`:
```json
{
"scripts": {
"lint": "eslint --max-warnings 0 \"src/**/*\""
}
}
```Then, run the linting command:
```bash
npm run lint
```