Auto generate dependencies by parsing JavaScript project files and fetching latest versions from npm registry
npx @tessl/cli install tessl/npm-autod@3.1.0Autod is a Node.js utility that automatically generates and manages dependencies in package.json by analyzing your JavaScript project files. It discovers required modules by parsing require/import statements and fetches their latest versions from npm registry.
npm install autodconst Autod = require('autod');const Autod = require('autod');
// Create an instance
const autod = new Autod({
root: '/path/to/your/project',
registry: 'https://registry.npmjs.org'
});
// Find and analyze dependencies
const jsFiles = autod.findJsFile();
const deps = autod.findDependencies();
const versions = await autod.findVersions();
console.log('Dependencies:', versions.dependencies);
console.log('DevDependencies:', versions.devDependencies);Autod consists of two primary interfaces:
Autod class for embedding dependency analysis in Node.js applications.autod.conf.js/.jsonCore dependency analysis functionality through the Autod class. Provides methods for discovering JavaScript files, analyzing dependencies, and fetching version information.
class Autod extends EventEmitter {
constructor(options: AutodOptions);
prepare(): void;
findJsFile(): FileDiscoveryResult;
findDependencies(): DependencyDiscoveryResult;
findVersions(): Promise<VersionResult>;
}
interface AutodOptions {
root: string;
registry?: string;
exclude?: string[];
test?: string[];
dep?: string[];
devdep?: string[];
semver?: Record<string, string>;
plugin?: string;
notransform?: boolean;
}Command-line tool for analyzing and managing dependencies with extensive configuration options and project integration features.
autod [options]
# Common options:
# -p, --path <path> Root path to parse (default: '.')
# -w, --write Write dependencies into package.json
# -t, --test <paths> Test/benchmark/example directory paths
# -e, --exclude <paths> Exclude directory paths
# -r, --registry <url> Remote registry URLinterface FileDiscoveryResult {
jsFiles: string[];
jsTestFiles: string[];
}
interface DependencyDiscoveryResult {
dependencies: string[];
devDependencies: string[];
}
interface VersionResult {
dependencies: Record<string, string>;
devDependencies: Record<string, string>;
}