A lightweight Node.js utility library providing file system traversal helpers and runtime environment detectors.
npm install @appthreat/atom-common
# or
yarn add @appthreat/atom-commonimport { getAllFiles, detectJava, detectRuby } from "@appthreat/atom-common";
// 1. Recursively get all .js files in a directory
const jsFiles = getAllFiles("./src", ".js");
console.log(jsFiles);
// 2. Check if runtimes are available
if (detectJava()) {
console.log("Java is installed!");
}
if (detectRuby("3.4.x")) {
console.log("Ruby 3.4.x is installed!");
}Recursively scans a directory for files with a specific extension. It automatically ignores node_modules, dotfiles (hidden files), and specific directories defined in the configuration.
- dir
(string): The root directory to start scanning. - extn
(string): The file extension to look for (e.g.,.js,.ts). - ignore_node_modules
(boolean): Defaults totrue.
Returns: An array of file paths.
These functions spawn a child process to check version flags. They return true if the runtime is found and exits successfully, otherwise false.
detectJava(): Checks forjava.detectPhp(): Checks forphp.detectScala(): Checks forscala.detectScalac(): Checks for the Scala compilerscalac.detectRuby(versionNeeded): Checks forruby.- versionNeeded (optional): A string (e.g.,
"3.4.7","3.4.x","4.0.x"). If provided, verifies the installed version matches.
- versionNeeded (optional): A string (e.g.,
You can configure the behavior of the utilities using Environment Variables.
| Variable | Description | Default |
|---|---|---|
ASTGEN_IGNORE_DIRS |
CSV string of directory names to ignore during scan. | venv, docs, e2e, cypress, node_modules (and others) |
ASTGEN_IGNORE_FILE_PATTERN |
Regex string for files to ignore. | (three|\.d)\.(js|ts|jsx|tsx)$ |
If your binaries are not in the global system PATH, you can override the commands used for detection:
| Variable | Description | Default |
|---|---|---|
JAVA_CMD |
Command to run Java | java |
PHP_CMD |
Command to run PHP | php |
RUBY_CMD |
Command to run Ruby | ruby |
SCALA_CMD |
Command to run Scala | scala |
SCALAC_CMD |
Command to run Scalac | scalac |
MIT