7 changed files with 96 additions and 21 deletions
@ -0,0 +1,41 @@ |
|||
import type { Linter } from 'eslint'; |
|||
|
|||
import { interopDefault } from '../util'; |
|||
|
|||
export async function pnpm(): Promise<Linter.Config[]> { |
|||
const [pluginPnpm, parserPnpm, parserJsonc] = await Promise.all([ |
|||
interopDefault(import('eslint-plugin-pnpm')), |
|||
interopDefault(import('yaml-eslint-parser')), |
|||
interopDefault(import('jsonc-eslint-parser')), |
|||
] as const); |
|||
|
|||
return [ |
|||
{ |
|||
files: ['package.json', '**/package.json'], |
|||
languageOptions: { |
|||
parser: parserJsonc, |
|||
}, |
|||
plugins: { |
|||
pnpm: pluginPnpm, |
|||
}, |
|||
rules: { |
|||
'pnpm/json-enforce-catalog': 'error', |
|||
'pnpm/json-prefer-workspace-settings': 'error', |
|||
'pnpm/json-valid-catalog': 'error', |
|||
}, |
|||
}, |
|||
{ |
|||
files: ['pnpm-workspace.yaml'], |
|||
languageOptions: { |
|||
parser: parserPnpm, |
|||
}, |
|||
plugins: { |
|||
pnpm: pluginPnpm, |
|||
}, |
|||
rules: { |
|||
'pnpm/yaml-no-duplicate-catalog-item': 'error', |
|||
'pnpm/yaml-no-unused-catalog-item': 'error', |
|||
}, |
|||
}, |
|||
]; |
|||
} |
|||
Loading…
Reference in new issue