123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 'use strict';
- var path = require('path');
- var loadJsonFile = require('load-json-file');
- var normalizePackageData = require('normalize-package-data');
- var pathType = require('path-type');
-
- module.exports = function (fp, opts) {
- if (typeof fp !== 'string') {
- opts = fp;
- fp = '.';
- }
-
- opts = opts || {};
-
- return pathType.dir(fp)
- .then(function (isDir) {
- if (isDir) {
- fp = path.join(fp, 'package.json');
- }
-
- return loadJsonFile(fp);
- })
- .then(function (x) {
- if (opts.normalize !== false) {
- normalizePackageData(x);
- }
-
- return x;
- });
- };
-
- module.exports.sync = function (fp, opts) {
- if (typeof fp !== 'string') {
- opts = fp;
- fp = '.';
- }
-
- opts = opts || {};
- fp = pathType.dirSync(fp) ? path.join(fp, 'package.json') : fp;
-
- var x = loadJsonFile.sync(fp);
-
- if (opts.normalize !== false) {
- normalizePackageData(x);
- }
-
- return x;
- };
|