UNPKG

nextdevkit

Version:

A Comprehensive CLI Toolkit for Next.js Development

20 lines (19 loc) 623 B
import path from 'path'; import isNextJsRoot from './isNextJsRoot.js'; import memoize from './lib/memoize.js'; const findProjectRoot = memoize(async (directory) => { let currentDir = path.resolve(directory); const visitedDirs = new Set(); while (currentDir !== path.dirname(currentDir)) { if (visitedDirs.has(currentDir)) { return ''; } visitedDirs.add(currentDir); if (await isNextJsRoot(currentDir)) { return currentDir; } currentDir = path.dirname(currentDir); } return ''; }, { maxSize: 500 }); export default findProjectRoot;