blob: c5c3afa8ed3b15eee4a1311a9d4d5d9b20461992 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001'use strict';
2var path = require('path');
3var loadJsonFile = require('load-json-file');
4var normalizePackageData = require('normalize-package-data');
5var pathType = require('path-type');
6
7module.exports = function (fp, opts) {
8 if (typeof fp !== 'string') {
9 opts = fp;
10 fp = '.';
11 }
12
13 opts = opts || {};
14
15 return pathType.dir(fp)
16 .then(function (isDir) {
17 if (isDir) {
18 fp = path.join(fp, 'package.json');
19 }
20
21 return loadJsonFile(fp);
22 })
23 .then(function (x) {
24 if (opts.normalize !== false) {
25 normalizePackageData(x);
26 }
27
28 return x;
29 });
30};
31
32module.exports.sync = function (fp, opts) {
33 if (typeof fp !== 'string') {
34 opts = fp;
35 fp = '.';
36 }
37
38 opts = opts || {};
39 fp = pathType.dirSync(fp) ? path.join(fp, 'package.json') : fp;
40
41 var x = loadJsonFile.sync(fp);
42
43 if (opts.normalize !== false) {
44 normalizePackageData(x);
45 }
46
47 return x;
48};