cognitive-complexity-ts
Version:
This program analyses TypeScript and JavaScript code according to the [Cognitive Complexity metric](https://www.sonarsource.com/docs/CognitiveComplexity.pdf). It produces a JSON summary and a GUI for exploring the complexity of your codebase.
39 lines • 1.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const minimist_1 = __importDefault(require("minimist"));
const open_1 = __importDefault(require("open"));
const util_1 = require("./util/util");
const output_1 = require("./cognitive-complexity/output");
const ui_server_1 = require("./ui-server/ui-server");
const helpText = "Arguments: [-h | --help] [--port <NUMBER>] [FILE]...";
main();
async function main() {
const args = (0, minimist_1.default)(process.argv.slice(2));
if (args["h"] || args["help"]) {
console.log(helpText);
return;
}
const givenPort = parseInt(args["port"]);
const port = (0, util_1.nonNaN)(givenPort, 5678);
const url = `http://localhost:${port}`;
const inputFiles = args["_"];
if (inputFiles.length === 0) {
console.error("No files given.");
console.error(helpText);
return;
}
const combinedOutputsJson = await generateComplexityJson(inputFiles);
const server = (0, ui_server_1.createUiServer)(combinedOutputsJson);
server.listen(port, () => {
console.log(`Server started at ${url}`);
(0, open_1.default)(url);
});
}
async function generateComplexityJson(inputFiles) {
const combinedOutputs = await (0, util_1.keysToAsyncValues)(inputFiles, file => (0, output_1.getFileOrFolderOutput)(file));
return JSON.stringify(combinedOutputs);
}
//# sourceMappingURL=ui.js.map