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
 |