diff --git a/defaultRules.md b/defaultRules.md index 77bb6764..c1b684c7 100644 --- a/defaultRules.md +++ b/defaultRules.md @@ -92,6 +92,7 @@ _Note: when a specific key order is used, any other keys will be sorted in the e | packageManager | | | engines | Key sort | | engineStrict | Key sort | +| volta | Key order: `node`, `npm`, `yarn` | | languageName | | | os | | | cpu | | diff --git a/index.js b/index.js index 7d6d521b..d183bb11 100755 --- a/index.js +++ b/index.js @@ -124,6 +124,8 @@ const sortPrettierConfig = onObject( ]), ) +const sortVolta = sortObjectBy(['node', 'npm', 'yarn']) + // See https://docs.npmjs.com/misc/scripts const defaultNpmScripts = new Set([ 'install', @@ -290,6 +292,7 @@ const fields = [ { key: 'packageManager' }, { key: 'engines', over: sortObject }, { key: 'engineStrict', over: sortObject }, + { key: 'volta', over: sortVolta }, { key: 'languageName' }, { key: 'os' }, { key: 'cpu' }, diff --git a/tests/fields.js b/tests/fields.js index 0401b8db..1a17c331 100644 --- a/tests/fields.js +++ b/tests/fields.js @@ -186,6 +186,20 @@ test('directories', macro.sortObject, { }, }) +test('volta', macro.sortObject, { + path: 'volta', + value: { + yarn: '0.0.0', + npm: '0.0.0', + node: '0.0.0', + }, + expect: { + node: '0.0.0', + npm: '0.0.0', + yarn: '0.0.0', + }, +}) + test('contributors', (t) => { const contributors = { contributors: [ diff --git a/tests/snapshots/main.js.md b/tests/snapshots/main.js.md index 0d41813e..020e0f29 100644 --- a/tests/snapshots/main.js.md +++ b/tests/snapshots/main.js.md @@ -107,6 +107,7 @@ Generated by [AVA](https://avajs.dev). "umd:main": "umd:main",␊ "unpkg": "unpkg",␊ "version": "version",␊ + "volta": "volta",␊ "workspaces": "workspaces",␊ "xo": "xo"␊ }`, @@ -201,6 +202,7 @@ Generated by [AVA](https://avajs.dev). "packageManager": "packageManager",␊ "engines": "engines",␊ "engineStrict": "engineStrict",␊ + "volta": "volta",␊ "languageName": "languageName",␊ "os": "os",␊ "cpu": "cpu",␊ diff --git a/tests/snapshots/main.js.snap b/tests/snapshots/main.js.snap index 3d12f19a..e16a541b 100644 Binary files a/tests/snapshots/main.js.snap and b/tests/snapshots/main.js.snap differ