feat: lint add pnpm config
This commit is contained in:
@@ -43,6 +43,7 @@
|
|||||||
"eslint-plugin-n": "catalog:",
|
"eslint-plugin-n": "catalog:",
|
||||||
"eslint-plugin-no-only-tests": "catalog:",
|
"eslint-plugin-no-only-tests": "catalog:",
|
||||||
"eslint-plugin-perfectionist": "catalog:",
|
"eslint-plugin-perfectionist": "catalog:",
|
||||||
|
"eslint-plugin-pnpm": "catalog:",
|
||||||
"eslint-plugin-prettier": "catalog:",
|
"eslint-plugin-prettier": "catalog:",
|
||||||
"eslint-plugin-regexp": "catalog:",
|
"eslint-plugin-regexp": "catalog:",
|
||||||
"eslint-plugin-unicorn": "catalog:",
|
"eslint-plugin-unicorn": "catalog:",
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ export * from './jsdoc';
|
|||||||
export * from './jsonc';
|
export * from './jsonc';
|
||||||
export * from './node';
|
export * from './node';
|
||||||
export * from './perfectionist';
|
export * from './perfectionist';
|
||||||
|
export * from './pnpm';
|
||||||
export * from './prettier';
|
export * from './prettier';
|
||||||
export * from './regexp';
|
export * from './regexp';
|
||||||
export * from './test';
|
export * from './test';
|
||||||
|
|||||||
41
internal/lint-configs/eslint-config/src/configs/pnpm.ts
Normal file
41
internal/lint-configs/eslint-config/src/configs/pnpm.ts
Normal file
@@ -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',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
jsonc,
|
jsonc,
|
||||||
node,
|
node,
|
||||||
perfectionist,
|
perfectionist,
|
||||||
|
pnpm,
|
||||||
prettier,
|
prettier,
|
||||||
regexp,
|
regexp,
|
||||||
test,
|
test,
|
||||||
@@ -50,6 +51,7 @@ async function defineConfig(config: FlatConfig[] = []) {
|
|||||||
command(),
|
command(),
|
||||||
turbo(),
|
turbo(),
|
||||||
yaml(),
|
yaml(),
|
||||||
|
pnpm(),
|
||||||
...customConfig,
|
...customConfig,
|
||||||
...config,
|
...config,
|
||||||
];
|
];
|
||||||
|
|||||||
22
package.json
22
package.json
@@ -100,25 +100,5 @@
|
|||||||
"node": ">=20.12.0",
|
"node": ">=20.12.0",
|
||||||
"pnpm": ">=10.0.0"
|
"pnpm": ">=10.0.0"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.22.0",
|
"packageManager": "pnpm@10.22.0"
|
||||||
"pnpm": {
|
|
||||||
"peerDependencyRules": {
|
|
||||||
"allowedVersions": {
|
|
||||||
"eslint": "*"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"overrides": {
|
|
||||||
"@ast-grep/napi": "catalog:",
|
|
||||||
"@ctrl/tinycolor": "catalog:",
|
|
||||||
"clsx": "catalog:",
|
|
||||||
"esbuild": "0.25.3",
|
|
||||||
"jiti": "catalog:",
|
|
||||||
"pinia": "catalog:",
|
|
||||||
"vue": "catalog:"
|
|
||||||
},
|
|
||||||
"neverBuiltDependencies": [
|
|
||||||
"canvas",
|
|
||||||
"node-gyp"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
34
pnpm-lock.yaml
generated
34
pnpm-lock.yaml
generated
@@ -255,6 +255,9 @@ catalogs:
|
|||||||
eslint-plugin-perfectionist:
|
eslint-plugin-perfectionist:
|
||||||
specifier: ^4.15.1
|
specifier: ^4.15.1
|
||||||
version: 4.15.1
|
version: 4.15.1
|
||||||
|
eslint-plugin-pnpm:
|
||||||
|
specifier: ^1.3.0
|
||||||
|
version: 1.3.0
|
||||||
eslint-plugin-prettier:
|
eslint-plugin-prettier:
|
||||||
specifier: ^5.5.4
|
specifier: ^5.5.4
|
||||||
version: 5.5.4
|
version: 5.5.4
|
||||||
@@ -1026,6 +1029,9 @@ importers:
|
|||||||
eslint-plugin-perfectionist:
|
eslint-plugin-perfectionist:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 4.15.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
version: 4.15.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
|
||||||
|
eslint-plugin-pnpm:
|
||||||
|
specifier: 'catalog:'
|
||||||
|
version: 1.3.0(eslint@9.39.1(jiti@2.6.1))
|
||||||
eslint-plugin-prettier:
|
eslint-plugin-prettier:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 5.5.4(@types/eslint@9.6.1)(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4)
|
version: 5.5.4(@types/eslint@9.6.1)(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4)
|
||||||
@@ -6213,6 +6219,10 @@ packages:
|
|||||||
emoji-regex@9.2.2:
|
emoji-regex@9.2.2:
|
||||||
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
|
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
|
||||||
|
|
||||||
|
empathic@2.0.0:
|
||||||
|
resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
|
||||||
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
encodeurl@2.0.0:
|
encodeurl@2.0.0:
|
||||||
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
|
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
@@ -6423,6 +6433,11 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: '>=8.45.0'
|
eslint: '>=8.45.0'
|
||||||
|
|
||||||
|
eslint-plugin-pnpm@1.3.0:
|
||||||
|
resolution: {integrity: sha512-Lkdnj3afoeUIkDUu8X74z60nrzjQ2U55EbOeI+qz7H1He4IO4gmUKT2KQIl0It52iMHJeuyLDWWNgjr6UIK8nw==}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^9.0.0
|
||||||
|
|
||||||
eslint-plugin-prettier@5.5.4:
|
eslint-plugin-prettier@5.5.4:
|
||||||
resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==}
|
resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==}
|
||||||
engines: {node: ^14.18.0 || >=16.0.0}
|
engines: {node: ^14.18.0 || >=16.0.0}
|
||||||
@@ -8449,6 +8464,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
|
resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
|
||||||
engines: {node: '>=10.13.0'}
|
engines: {node: '>=10.13.0'}
|
||||||
|
|
||||||
|
pnpm-workspace-yaml@1.3.0:
|
||||||
|
resolution: {integrity: sha512-Krb5q8Totd5mVuLx7we+EFHq/AfxA75nbfTm25Q1pIf606+RlaKUG+PXH8SDihfe5b5k4H09gE+sL47L1t5lbw==}
|
||||||
|
|
||||||
popmotion@11.0.5:
|
popmotion@11.0.5:
|
||||||
resolution: {integrity: sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==}
|
resolution: {integrity: sha512-la8gPM1WYeFznb/JqF4GiTkRRPZsfaj2+kCxqQgr2MJylMmIKUwBfWW8Wa5fml/8gmtlD5yI01MP1QCZPWmppA==}
|
||||||
|
|
||||||
@@ -15521,6 +15539,8 @@ snapshots:
|
|||||||
|
|
||||||
emoji-regex@9.2.2: {}
|
emoji-regex@9.2.2: {}
|
||||||
|
|
||||||
|
empathic@2.0.0: {}
|
||||||
|
|
||||||
encodeurl@2.0.0: {}
|
encodeurl@2.0.0: {}
|
||||||
|
|
||||||
encoding-sniffer@0.2.1:
|
encoding-sniffer@0.2.1:
|
||||||
@@ -15819,6 +15839,16 @@ snapshots:
|
|||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
|
eslint-plugin-pnpm@1.3.0(eslint@9.39.1(jiti@2.6.1)):
|
||||||
|
dependencies:
|
||||||
|
empathic: 2.0.0
|
||||||
|
eslint: 9.39.1(jiti@2.6.1)
|
||||||
|
jsonc-eslint-parser: 2.4.1
|
||||||
|
pathe: 2.0.3
|
||||||
|
pnpm-workspace-yaml: 1.3.0
|
||||||
|
tinyglobby: 0.2.15
|
||||||
|
yaml-eslint-parser: 1.3.1
|
||||||
|
|
||||||
eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4):
|
eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4):
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint: 9.39.1(jiti@2.6.1)
|
eslint: 9.39.1(jiti@2.6.1)
|
||||||
@@ -17940,6 +17970,10 @@ snapshots:
|
|||||||
|
|
||||||
pngjs@5.0.0: {}
|
pngjs@5.0.0: {}
|
||||||
|
|
||||||
|
pnpm-workspace-yaml@1.3.0:
|
||||||
|
dependencies:
|
||||||
|
yaml: 2.8.2
|
||||||
|
|
||||||
popmotion@11.0.5:
|
popmotion@11.0.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
framesync: 6.1.2
|
framesync: 6.1.2
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
neverBuiltDependencies:
|
||||||
|
- canvas
|
||||||
|
- node-gyp
|
||||||
packages:
|
packages:
|
||||||
- internal/*
|
- internal/*
|
||||||
- internal/lint-configs/*
|
- internal/lint-configs/*
|
||||||
@@ -101,6 +104,7 @@ catalog:
|
|||||||
eslint-plugin-n: ^17.23.1
|
eslint-plugin-n: ^17.23.1
|
||||||
eslint-plugin-no-only-tests: ^3.3.0
|
eslint-plugin-no-only-tests: ^3.3.0
|
||||||
eslint-plugin-perfectionist: ^4.15.1
|
eslint-plugin-perfectionist: ^4.15.1
|
||||||
|
eslint-plugin-pnpm: ^1.3.0
|
||||||
eslint-plugin-prettier: ^5.5.4
|
eslint-plugin-prettier: ^5.5.4
|
||||||
eslint-plugin-regexp: ^2.10.0
|
eslint-plugin-regexp: ^2.10.0
|
||||||
eslint-plugin-unicorn: ^62.0.0
|
eslint-plugin-unicorn: ^62.0.0
|
||||||
@@ -197,3 +201,15 @@ catalog:
|
|||||||
yaml-eslint-parser: ^1.3.1
|
yaml-eslint-parser: ^1.3.1
|
||||||
zod: ^3.25.67
|
zod: ^3.25.67
|
||||||
zod-defaults: 0.1.3
|
zod-defaults: 0.1.3
|
||||||
|
esbuild: 0.25.3
|
||||||
|
peerDependencyRules:
|
||||||
|
allowedVersions:
|
||||||
|
eslint: '*'
|
||||||
|
overrides:
|
||||||
|
'@ast-grep/napi': 'catalog:'
|
||||||
|
'@ctrl/tinycolor': 'catalog:'
|
||||||
|
clsx: 'catalog:'
|
||||||
|
esbuild: 'catalog:'
|
||||||
|
jiti: 'catalog:'
|
||||||
|
pinia: 'catalog:'
|
||||||
|
vue: 'catalog:'
|
||||||
|
|||||||
Reference in New Issue
Block a user