@oursky/eslint-plugin
v15.0.1
Published
- [Installation](#installation) - [How to use?](#how-to-use) * [TypeScript project (e.g. Node.js backend, Turbo & Stimulus frontend)](#typescript-project-eg-nodejs-backend-turbo--stimulus-frontend) * [React project in TypeScript](#react-project-in-typ
Downloads
6,169
Keywords
Readme
Installation
This plugin supports eslint 9 only.
npm install --save --save-dev [email protected] @oursky/eslint-plugin
How to use?
The following examples are the contents of your eslint.config.mjs
.
TypeScript project (e.g. Node.js backend, Turbo & Stimulus frontend)
import oursky from "@oursky/eslint-plugin";
const js = "src/**/*.{js,jsx,mjs,mjsx}";
const ts = "src/**/*.{ts,tsx,mts,mtsx}";
export default [
{
files: [ts],
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
{
files: [js, ts],
...oursky.configs.eslint,
},
{
files: [ts],
...oursky.configs.typescript,
},
{
files: [ts],
...oursky.configs.tsdoc,
},
{
files: [js, ts],
...oursky.configs.oursky,
},
];
React project in TypeScript
import oursky from "@oursky/eslint-plugin";
const js = "src/**/*.{js,jsx,mjs,mjsx}";
const ts = "src/**/*.{ts,tsx,mts,mtsx}";
export default [
{
files: [ts],
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
{
files: [js, ts],
...oursky.configs.eslint,
},
{
files: [ts],
...oursky.configs.typescript,
},
{
files: [ts],
...oursky.configs.tsdoc,
},
{
files: [js, ts],
...oursky.configs.oursky,
},
{
files: [js, ts],
...oursky.configs.react,
},
{
files: [js, ts],
...oursky.configs["react-hooks"],
},
];
React Native Project in TypeScript
import oursky from "@oursky/eslint-plugin";
const js = "src/**/*.{js,jsx,mjs,mjsx}";
const ts = "src/**/*.{ts,tsx,mts,mtsx}";
export default [
{
files: [ts],
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
{
files: [js, ts],
...oursky.configs.eslint,
},
{
files: [ts],
...oursky.configs.typescript,
},
{
files: [ts],
...oursky.configs.tsdoc,
},
{
files: [js, ts],
...oursky.configs.oursky,
},
{
files: [js, ts],
...oursky.configs.react,
},
{
files: [js, ts],
...oursky.configs["react-hooks"],
},
{
files: [js, ts],
...oursky.configs["react-native"],
},
];
What about other use cases?
You are not supposed to have other use cases at Oursky. Open an issue if you want to discuss.
I want to disable / enable a rule in my project. How can I do that?
You use ordinary object rest spread to override.
import oursky from "@oursky/eslint-plugin";
const js = "src/**/*.{js,jsx,mjs,mjsx}";
const ts = "src/**/*.{ts,tsx,mts,mtsx}";
export default [
{
files: [ts],
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
{
files: [js, ts],
...oursky.configs.eslint,
},
{
files: [ts],
...oursky.configs.typescript,
rules: {
...oursky.configs.typescript.rules,
"@typescript-eslint/parameter-properties": "off",
"@typescript-eslint/no-restricted-types": [
"error",
{
"types": {
"BrokenType": "BrokenType is broken. Use NonBrokenType instead",
},
},
]
},
},
{
files: [ts],
...oursky.configs.tsdoc,
},
{
files: [js, ts],
...oursky.configs.oursky,
},
{
files: [js, ts],
...oursky.configs.react,
},
{
files: [js, ts],
...oursky.configs["react-hooks"],
},
{
files: [js, ts],
...oursky.configs["react-native"],
},
];