Sha256: ebca38b4d9a5dd2939562bf6760543e7065e3d3a3df2aa533f9aa6bf87a6f830

Contents?: true

Size: 1008 Bytes

Versions: 77

Compression:

Stored size: 1008 Bytes

Contents

'use strict';
const path = require('path');
const locatePath = require('locate-path');

module.exports = (filename, opts) => {
	opts = opts || {};

	const startDir = path.resolve(opts.cwd || '');
	const root = path.parse(startDir).root;

	const filenames = [].concat(filename);

	return new Promise(resolve => {
		(function find(dir) {
			locatePath(filenames, {cwd: dir}).then(file => {
				if (file) {
					resolve(path.join(dir, file));
				} else if (dir === root) {
					resolve(null);
				} else {
					find(path.dirname(dir));
				}
			});
		})(startDir);
	});
};

module.exports.sync = (filename, opts) => {
	opts = opts || {};

	let dir = path.resolve(opts.cwd || '');
	const root = path.parse(dir).root;

	const filenames = [].concat(filename);

	// eslint-disable-next-line no-constant-condition
	while (true) {
		const file = locatePath.sync(filenames, {cwd: dir});

		if (file) {
			return path.join(dir, file);
		} else if (dir === root) {
			return null;
		}

		dir = path.dirname(dir);
	}
};

Version data entries

77 entries across 77 versions & 9 rubygems

Version Path
trusty-cms-5.0.7 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-5.0.6 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-5.0.5 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-5.0.4 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-5.0.3 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-5.0.2 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-5.0.1 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.3.5 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-5.0.0 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.3.4 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.3.3 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.3.2 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.3.1 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.3 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.2.3 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.2.2 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.2.1 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.2 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.1.9 node_modules/pkg-up/node_modules/find-up/index.js
trusty-cms-4.1.8 node_modules/pkg-up/node_modules/find-up/index.js