@nx/js
Version:
41 lines (40 loc) • 1.38 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.sortPackageJsonFields = sortPackageJsonFields;
const devkit_1 = require("@nx/devkit");
function sortPackageJsonFields(tree, projectRoot) {
const packageJsonPath = (0, devkit_1.joinPathFragments)(projectRoot, 'package.json');
if (!tree.exists(packageJsonPath))
return;
(0, devkit_1.updateJson)(tree, packageJsonPath, (json) => {
// Note that these are fields that our generators may use, so it's not exhaustive.
const orderedTopFields = new Set([
'name',
'version',
'private',
'description',
'type',
'main',
'module',
'types',
'exports',
]);
const orderedBottomFields = new Set([
'dependencies',
'devDependencies',
'peerDependencies',
'optionalDependencies',
]);
const otherFields = new Set(Object.keys(json).filter((k) => !orderedTopFields.has(k) && !orderedBottomFields.has(k)));
const allFields = [
...orderedTopFields,
...otherFields,
...orderedBottomFields,
];
const sortedJson = {};
for (const k of allFields) {
sortedJson[k] = json[k];
}
return sortedJson;
});
}
;