Skip to content
/ elysius Public

Find a file or directory by traversing

License

Notifications You must be signed in to change notification settings

luxass/elysius

Repository files navigation

elysius

npm version npm downloads

📦 Installation

npm install elysius

📚 Usage

import { find, findSync, walk, walkSync } from 'elysius'

const path = await find('package.json') // returns `null` if not found
const path = findSync('package.json') // returns `null` if not found

const path = await find(['package.json', 'tsconfig.json']) // returns the first found file
const path = findSync(['package.json', 'tsconfig.json']) // returns the first found file

const path = await find(['package.json', 'tsconfig.json'], {
  cwd: 'src',
  async test(path) {
    const base = basename(file)
    if (base === 'package.json') {
      const content = JSON.parse(await readFile(file, 'utf-8'))
      return content.version
    }
    return false
  }
}) // returns `package.json` if it has a version field

const path = findSync(['package.json', 'tsconfig.json'], {
  cwd: 'src',
  test(path) {
    const base = basename(file)
    if (base === 'package.json') {
      const content = JSON.parse(readFileSync(file, 'utf-8'))
      return content.version
    }
    return false
  }
}) // returns `package.json` if it has a version field

const paths = await walk('src') // returns an array of all files in `src`

const paths = walkSync('src') // returns an array of all files in `src`

📄 License

Published under MIT License.