UNPKG

678 BJavaScriptView Raw
1'use strict';
2var resolve = require('resolve');
3var path = require('path');
4
5/* @private
6 *
7 * @method resolvePkg
8 * @param {String} name
9 * @param {String} dir
10 * @return {String}
11 */
12module.exports = function resolvePkg(name, dir) {
13 if (name === './') {
14 return path.resolve(name, 'package.json');
15 }
16
17 if (name[name.length - 1] !== '/') {
18 name += '/';
19 }
20
21 if (name.charAt(0) === '/') {
22 return name + 'package.json';
23 }
24
25 try {
26 return resolve.sync(name + 'package.json', {
27 basedir: dir || __dirname,
28 preserveSymlinks: false
29 });
30 } catch(err) {
31 if (err.code === 'MODULE_NOT_FOUND') {
32 return null;
33 }
34
35 throw err;
36 }
37};