|
| 1 | +// @ts-check |
| 2 | + |
| 3 | +/** |
| 4 | + * Syncpack configuration file |
| 5 | + * Controls version management and package.json formatting across the monorepo |
| 6 | + * @see https://github.com/JamieMason/syncpack |
| 7 | + * @type {import("syncpack").RcFile} |
| 8 | + */ |
| 9 | +const config = { |
| 10 | + /** |
| 11 | + * Glob patterns for package.json files to process |
| 12 | + * Includes root, apps, libs, and tools directories |
| 13 | + */ |
| 14 | + source: ['package.json', 'packages/*/package.json'], |
| 15 | + |
| 16 | + /** |
| 17 | + * Fields to sort alphabetically in package.json |
| 18 | + */ |
| 19 | + sortAz: [ |
| 20 | + 'contributors', |
| 21 | + 'dependencies', |
| 22 | + 'devDependencies', |
| 23 | + 'keywords', |
| 24 | + 'peerDependencies', |
| 25 | + 'resolutions', |
| 26 | + 'scripts', |
| 27 | + ], |
| 28 | + |
| 29 | + /** |
| 30 | + * Fields that should appear first in package.json, in this order |
| 31 | + */ |
| 32 | + sortFirst: ['name', 'description', 'version', 'author'], |
| 33 | + |
| 34 | + /** |
| 35 | + * Version management rules for different package groups |
| 36 | + */ |
| 37 | + versionGroups: [ |
| 38 | + { |
| 39 | + /** Ignore version syncing for peer dependencies */ |
| 40 | + label: 'ignore peer dependencies', |
| 41 | + packages: ['**'], |
| 42 | + dependencyTypes: ['peer'], |
| 43 | + isIgnored: true, |
| 44 | + }, |
| 45 | + // { |
| 46 | + // /** Align all package versions with those defined in @mono/root */ |
| 47 | + // packages: ['**'], |
| 48 | + // dependencies: ['**'], |
| 49 | + // dependencyTypes: ['dev', 'prod', 'overrides', 'resolutions'], |
| 50 | + // snapTo: ['client-modules'], |
| 51 | + // }, |
| 52 | + ], |
| 53 | +}; |
| 54 | + |
| 55 | +module.exports = config; |
0 commit comments