New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

prettier-package-json

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

prettier-package-json - npm Package Compare versions

Comparing version 2.7.0 to 2.8.0

72

build/sort-scripts.js

@@ -9,33 +9,65 @@ "use strict";

var PRE_OR_POST_PREFIX = /^(pre|post)/;
// Sort alphabetically by script name excluding pre/post prefixes
function scriptName() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
var NPM_RUN_ALL_SEPARATOR = /([:/])/;
var NPM_BUILTIN_SCRIPTS = ['install', 'prepare', 'pack', 'publish', 'restart', 'start', 'stop', 'test', 'version', 'uninstall'];
;
function parseScriptName(scripts, original) {
// prepublishOnly is a script whose base event is publish.
// cf. https://docs.npmjs.com/cli/v9/using-npm/scripts#npm-publish
if (original === 'prepublishOnly') {
return { prefix: 'pre', base: 'publish', original: original };
}
var _a = args.map(function (arg) { return arg.replace(PRE_OR_POST_PREFIX, ''); }), a = _a[0], b = _a[1];
if (a !== b) {
return a < b ? -1 : 1;
var prefixMatch = PRE_OR_POST_PREFIX.exec(original);
var prefix = prefixMatch ? prefixMatch[0] : undefined;
var base = prefix ? original.slice(prefix.length) : original;
if ((scripts === null || scripts === void 0 ? void 0 : scripts.hasOwnProperty(base)) || NPM_BUILTIN_SCRIPTS.includes(base)) {
return { prefix: prefix, base: base, original: original };
}
else {
return { prefix: undefined, base: original, original: original };
}
// Sort alphabetically by script name excluding pre/post prefixes
function scriptName(scripts) {
return function (a, b) {
var aParsed = parseScriptName(scripts, a);
var bParsed = parseScriptName(scripts, b);
// For example, for an input name `prettier:lint`, the segments would be `['prettier', ':', 'lint']`.
// The segments contains separators. There are two types of separators, to determine their order.
var aSegments = aParsed.base.split(NPM_RUN_ALL_SEPARATOR);
var bSegments = bParsed.base.split(NPM_RUN_ALL_SEPARATOR);
var aLength = aSegments.length;
var bLength = bSegments.length;
// Compare each segment, and when the strings are different, return 1 or -1 in alphabetical order.
for (var i = 0; i < Math.min(aLength, bLength); i++) {
if (aSegments[i] !== bSegments[i]) {
return aSegments[i] < bSegments[i] ? -1 : 1;
}
}
// Compare segments length, return 1 or -1 in ascending order of length.
if (aLength !== bLength) {
return aLength < bLength ? -1 : 1;
}
return 0;
}
};
}
// Sort by pre, script, post
function prePostHooks(a, b) {
if (a.startsWith('pre') || b.startsWith('post')) {
return -1;
}
else if (a.startsWith('post') || b.startsWith('pre')) {
return 1;
}
else {
function prePostHooks(scripts) {
return function (a, b) {
var aParsed = parseScriptName(scripts, a);
var bParsed = parseScriptName(scripts, b);
if (aParsed.prefix === 'pre' || bParsed.prefix === 'post') {
return -1;
}
else if (aParsed.prefix === 'post' || bParsed.prefix === 'pre') {
return 1;
}
else if (aParsed.base !== bParsed.base) {
return aParsed.base < bParsed.base ? -1 : 1;
}
return 0;
}
};
}
var order = (0, sort_order_1["default"])(scriptName, prePostHooks);
function sortScripts(scripts) {
var keys = Object.keys(scripts || {});
var order = (0, sort_order_1["default"])(scriptName(scripts), prePostHooks(scripts));
return keys.length === 0 ? {} : { scripts: (0, sort_object_keys_1["default"])(scripts, keys.sort(order)) };
}
exports["default"] = sortScripts;
{
"name": "prettier-package-json",
"version": "2.7.0",
"version": "2.8.0",
"description": "Prettier formatter for package.json files",

@@ -5,0 +5,0 @@ "license": "MIT",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc