30 lines
915 B
JavaScript
30 lines
915 B
JavaScript
import { dirname } from 'path';
|
|
export const findMade = async (opts, parent, path) => {
|
|
// we never want the 'made' return value to be a root directory
|
|
if (path === parent) {
|
|
return;
|
|
}
|
|
return opts.statAsync(parent).then(st => (st.isDirectory() ? path : undefined), // will fail later
|
|
// will fail later
|
|
er => {
|
|
const fer = er;
|
|
return fer && fer.code === 'ENOENT'
|
|
? findMade(opts, dirname(parent), parent)
|
|
: undefined;
|
|
});
|
|
};
|
|
export const findMadeSync = (opts, parent, path) => {
|
|
if (path === parent) {
|
|
return undefined;
|
|
}
|
|
try {
|
|
return opts.statSync(parent).isDirectory() ? path : undefined;
|
|
}
|
|
catch (er) {
|
|
const fer = er;
|
|
return fer && fer.code === 'ENOENT'
|
|
? findMadeSync(opts, dirname(parent), parent)
|
|
: undefined;
|
|
}
|
|
};
|
|
//# sourceMappingURL=find-made.js.map
|