Skip to content

datismoa/typify-eslint-rules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

typify-eslint-rules

Why

This package allows you to generate typescript types for any ESLint rules based on their meta schema

Install

Using pnpm:

pnpm install 

Using npm:

npm install 

Usage

import { typify } from 'typify-eslint-rules'

import tsPlugin from '@typescript-eslint/eslint-plugin'

const { rules: tsRules } = tsPlugin

await typify(tsRules, {
  distFolder: 'dist'
})

This will generate types for @typescript-eslint/eslint-plugin and place them in dist/rules folder, which are exported in dist/index.d.ts file under RuleOptions type:

// dist/index.d.ts

import type { AdjacentOverloadSignatures } from './rules/adjacent-overload-signatures'
// ... more imports

export type RuleOptions = {
  'adjacent-overload-signatures': AdjacentOverloadSignatures,
  // ... more rules
}

You can also provide an optional prefix:

// ...

await typify(tsRules, {
  distFolder: 'dist',
  rulesPrefix: 'ts/'
})

That prefix will be added to all rules:

// dist/index.d.ts

import type { AdjacentOverloadSignatures } from './rules/adjacent-overload-signatures'
// ... more imports

export type RuleOptions = {
  'ts/adjacent-overload-signatures': AdjacentOverloadSignatures,
  // ... more rules
}

You can also use compileRule and compileSchema to compile a sole rule or a sole schema.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published