Package Exports
- @appthreat/atom-common
- @appthreat/atom-common/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@appthreat/atom-common) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
atom-common
A lightweight Node.js utility library providing file system traversal helpers and runtime environment detectors.
Installation
npm install @appthreat/atom-common
# or
yarn add @appthreat/atom-commonUsage
import { 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!");
}API Reference
File System Utilities
getAllFiles(dir, extn, ...args)
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.
Runtime Detection Utilities
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.,
Configuration
You can configure the behavior of the utilities using Environment Variables.
File Ignoring
| 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)$ |
Custom Binary Paths
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 |
License
MIT