@jqassistant/ts-lce
Version:
Tool to extract language concepts from a TypeScript codebase and export them to a JSON file.
38 lines (37 loc) • 1.9 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const commander_1 = require("commander");
const extractor_1 = require("./core/extractor");
const package_json_1 = __importDefault(require("../package.json"));
const react_extractor_1 = require("./react/react-extractor");
const log_utils_1 = require("./core/utils/log.utils");
const type_utils_1 = require("./core/processors/type.utils");
// Setup CLI
commander_1.program
.name("jqa-ts-lce")
.description("jQAssistant TypeScript Language Concept Extractor\n" +
"Tool to extract language concepts from a TypeScript codebase and export them to a JSON file.")
.version(package_json_1.default.version)
.argument("[path]", "path to the root of the TypeScript project to be scanned", ".")
.option("-e, --extension [extensions...]", "space separated list of extensions to activate (currently available: react)")
.option("-p, --pretty", "pretty-print JSON result report")
.option("--type-resolution-depth", "depth at which nested types are no longer resolved", "10")
.option("-d, --debug", "print debug information");
commander_1.program.parse();
// retrieve CLI arguments and options
const options = commander_1.program.opts();
const extensions = options.extension ?? [];
const prettyPrint = !!options.pretty;
(0, type_utils_1.setMaxTypeResolutionDepth)(parseInt(options.typeResolutionDepth));
(0, log_utils_1.setDebugLogging)(!!options.debug);
const projectRootPath = commander_1.program.processedArgs[0];
// initialize extensions
if (extensions.includes("react")) {
(0, react_extractor_1.initializeReactExtractor)();
}
// initializeReactExtractor();
(0, extractor_1.processProjectsAndOutputResult)(projectRootPath, { prettyPrint });