luxass / elysius

Find a file or directory by traversing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

elysius

npm version npm downloads jsr version

πŸ“¦ 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

for await (const entry of walk("src")) {
  console.log(entry); // prints one file at a time
}

const paths = Array.fromAsync(walk("src")); // returns an array of all files in `src`

for (const entry of walkSync("src")) {
  console.log(entry); // prints one file at a time
}

const paths = Array.from(walkSync("src")); // returns an array of all files in `src`

πŸ“„ License

Published under MIT License.

About

Find a file or directory by traversing

License:MIT License


Languages

Language:TypeScript 99.6%Language:JavaScript 0.4%