react-scanner-orbit
Version:
Extract React components and props usage from code.
50 lines (45 loc) • 1.4 kB
JavaScript
const startTime = process.hrtime.bigint();
import path from "path";
import sade from "sade";
import { validateConfig } from "./utils.js";
import run from "./run.js";
import { createRequire } from "module";
const require = createRequire(import.meta.url);
const packageJson = require("../package.json");
sade("react-scanner", true)
.version(packageJson.version)
.describe(packageJson.description)
.option("-c, --config", "Path to config file")
.example("-c /path/to/react-scanner.config.js")
.option("-p, --path", "/path/to/folder")
.action(async (options) => {
const configPath = path.resolve(process.cwd(), options.config);
const configDir = path.dirname(configPath);
const { default: config } = await import(configPath);
const pathToCrawl = options.path && path.resolve(process.cwd(), options.path);
if (pathToCrawl) {
run({
config,
configDir,
crawlFrom: pathToCrawl,
startTime,
});
} else {
const { crawlFrom, errors } = validateConfig(config, configDir);
if (errors.length === 0) {
run({
config,
configDir,
crawlFrom,
startTime,
});
} else {
console.error(`Config errors:`);
errors.forEach((error) => {
console.error(`- ${error}`);
});
process.exit(1);
}
}
})
.parse(process.argv);