import type { Linter } from 'eslint'; import { interopDefault } from '../util'; export async function pnpm(): Promise { 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', }, }, ]; }