UNPKG

@procore/syncpack-config

Version:

Procore Syncpack Config

76 lines (72 loc) 1.55 kB
// @ts-check /** @type {import("syncpack").RcFile['customTypes']} */ const customTypes = { nodeEngine: { path: 'engines.node', strategy: 'version', }, packageManager: { path: 'packageManager', strategy: 'name@version', }, }; /** @type {import("syncpack").RcFile} */ const config = { dependencyTypes: ['dev', 'peer', 'prod', ...Object.keys(customTypes)], customTypes, sortFirst: [ 'name', 'version', 'description', 'author', 'homepage', 'repository', 'bugs', 'license', 'keywords', 'workspaces', 'private', 'publishConfig', 'type', 'exports', 'main', 'module', 'types', 'bin', 'files', 'engines', 'scripts', 'peerDependencies', 'peerDependenciesMeta', 'dependencies', 'devDependencies', ], semverGroups: [ { label: 'Require an exact version to meet packageManager field spec', range: '', dependencyTypes: ['packageManager'], }, { label: 'Require a caret on all non-peer dependencies', range: '^', dependencyTypes: ['!peer'], dependencies: ['**'], packages: ['**'], }, ], versionGroups: [ { label: 'Prefer lowest semver version', dependencyTypes: ['peer'], preferVersion: 'lowestSemver', }, { label: 'Internal packages should use workspace protocol', dependencies: ['$LOCAL'], // all local packages, dependencyTypes: ['!peer'], pinVersion: 'workspace:^', }, ], }; module.exports = config;