-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.syncpackrc.ts
More file actions
77 lines (75 loc) · 2.64 KB
/
.syncpackrc.ts
File metadata and controls
77 lines (75 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// @ts-check
/** @type {import("syncpack").RcFile} */
const config = {
sortFirst: [
'name',
'version',
'private',
'description',
'license',
'type',
'exports',
'main',
'types',
'bin',
'files',
'scripts',
'dependencies',
'devDependencies',
'peerDependencies',
],
versionGroups: [
// ─── Ignore catalog source definitions ─────────────────────────────
// pnpm-workspace.yaml defines the actual versions — these are the
// source of truth for catalogs and should not be pinned.
{
label: 'Catalog source definitions are ignored',
packages: ['pnpm-workspace.yaml'],
isIgnored: true,
},
// ─── Ignore peer dependencies ──────────────────────────────────────
// Peer deps use semver ranges set by the consumer, not catalogs.
{
label: 'Peer dependencies are ignored',
dependencyTypes: ['peer'],
isIgnored: true,
},
// ─── Catalog enforcement: effect ecosystem ─────────────────────────
{
label: 'Effect packages must use catalog:effect',
dependencies: [
'effect',
'@effect/cli',
'@effect/platform',
'@effect/platform-node',
'@effect/vitest',
],
pinVersion: 'catalog:effect',
},
// ─── Catalog enforcement: vitest ───────────────────────────────────
{
label: 'Vitest must use catalog:vitest',
dependencies: ['vitest'],
pinVersion: 'catalog:vitest',
},
// ─── Catalog enforcement: vite ─────────────────────────────────────
{
label: 'Vite must use catalog:vite',
dependencies: ['vite'],
pinVersion: 'catalog:vite',
},
// ─── Internal workspace deps ───────────────────────────────────────
{
label: 'Internal @wolfcola/* packages must use workspace:*',
dependencies: ['@wolfcola/*'],
pinVersion: 'workspace:*',
},
// ─── Banned packages ───────────────────────────────────────────────
{
label: '@effect/schema is deprecated — use effect/Schema',
dependencies: ['@effect/schema'],
isBanned: true,
},
],
};
export default config;