UNPKG

@nx/js

Version:

The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects.

41 lines (40 loc) 1.38 kB
"use strict"; 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; }); }