UNPKG

prettier-plugin-pkgsort

Version:

Use prettier-package-json to sort your package.json.

94 lines (86 loc) 2.26 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var node_path = require('node:path'); var prettier = require('prettier'); var babel = require('prettier/plugins/babel'); var prettierPackageJson = require('prettier-package-json'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var prettier__default = /*#__PURE__*/_interopDefaultLegacy(prettier); const defaultOptions = { expandUsers: false, keyOrder: [ "name", "displayName", "private", "preview", "version", "packageManager", "publisher", "author", "contributors", "type", "description", "keywords", "homepage", "repository", "bugs", "funding", "categories", "license", "sideEffects", "exports", "bin", "main", "module", "browser", "unpkg", "jsdelivr", "types", "typesVersions", "icon", "files", "engines", "activationEvents", "contributes", "eslintConfig", "publishConfig", "scripts", "husky", "simple-git-hooks", "lint-staged", "dependencies", "devDependencies", "optionalDependencies", "peerDependencies", "peerDependenciesMeta", "pnpm", "overrides", "resolutions" ] }; const parser = babel.parsers["json-stringify"]; const isPackageJson = (path) => node_path.basename(path) === "package.json"; const parsers = { "json-stringify": { ...parser, async parse(text, options) { var _a, _b; if (!isPackageJson(options.filepath)) { return text; } text = await prettier__default["default"].format(text, { filepath: "package.json" }); if (parser.preprocess) { text = parser.preprocess(text, options); } const formatOptions = { useTabs: options.useTabs, tabWidth: options.tabWidth, expandUsers: (_a = options.pkgsortExpandUsers) != null ? _a : defaultOptions.expandUsers, keyOrder: (_b = options.pkgsortKeyOrder) != null ? _b : defaultOptions.keyOrder }; text = prettierPackageJson.format(JSON.parse(text), formatOptions); return parser.parse(text, options); } } }; exports.parsers = parsers;