UNPKG

@oaklean/cli

Version:

A command-line interface that provides utilities for parsing, inspecting, and converting the .oak file format, as well as interfaces used in the @oaklean suite.

166 lines 15 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const fs = __importStar(require("fs")); const profiler_core_1 = require("@oaklean/profiler-core"); const commander_1 = require("commander"); class FormatCommands { constructor() { const baseCommand = commander_1.program .command('format') .description('commands to convert or inspect the profiler\'s format'); baseCommand .command('toHash') .description('Calculates the hash of given a profiler format') .argument('<input>', 'input file path') .action(this.toHash.bind(this)); baseCommand .command('toJSON') .description('Converts a profiler format that is given in binary format to a json version') .argument('<input>', 'input file path') .argument('<output>', 'output file path') .action(this.convertToJSON.bind(this)); baseCommand .command('toSourceFileTree') .description('Converts a profiler format that is given in binary format to a SourceFileMetaDataTree') .argument('<input>', 'input file path') .argument('<output>', 'output file path') .action(this.convertToSourceFileMetaDataTreeTree.bind(this)); baseCommand .command('check') .description('Checks wether all files in the profiler format are present') .argument('<input>', 'input file path') .action(this.check.bind(this)); } static init() { return new FormatCommands(); } toHash(input) { return __awaiter(this, void 0, void 0, function* () { let inputPath = new profiler_core_1.UnifiedPath(input); if (inputPath.isRelative()) { inputPath = new profiler_core_1.UnifiedPath(process.cwd()).join(inputPath); } const report = profiler_core_1.ProjectReport.loadFromFile(inputPath, 'bin'); if (report === undefined) { profiler_core_1.LoggerHelper.error(`Could not find a profiler report at ${inputPath.toPlatformString()}`); return; } }); } convertToJSON(input, output) { return __awaiter(this, void 0, void 0, function* () { let inputPath = new profiler_core_1.UnifiedPath(input); if (inputPath.isRelative()) { inputPath = new profiler_core_1.UnifiedPath(process.cwd()).join(inputPath); } let outputPath = new profiler_core_1.UnifiedPath(output); if (outputPath.isRelative()) { outputPath = new profiler_core_1.UnifiedPath(process.cwd()).join(outputPath); } const outDir = outputPath.dirName(); const report = profiler_core_1.ProjectReport.loadFromFile(inputPath, 'bin'); if (report === undefined) { profiler_core_1.LoggerHelper.error(`Could not find a profiler report at ${inputPath.toPlatformString()}`); return; } if (!fs.existsSync(outDir.toPlatformString())) { fs.mkdirSync(outDir.toPlatformString(), { recursive: true }); } report.storeToFile(outputPath, 'pretty-json'); }); } convertToSourceFileMetaDataTreeTree(input, output) { return __awaiter(this, void 0, void 0, function* () { let inputPath = new profiler_core_1.UnifiedPath(input); if (inputPath.isRelative()) { inputPath = new profiler_core_1.UnifiedPath(process.cwd()).join(inputPath); } let outputPath = new profiler_core_1.UnifiedPath(output); if (outputPath.isRelative()) { outputPath = new profiler_core_1.UnifiedPath(process.cwd()).join(outputPath); } const outDir = outputPath.dirName(); const report = profiler_core_1.ProjectReport.loadFromFile(inputPath, 'bin'); if (report === undefined) { profiler_core_1.LoggerHelper.error(`Could not find a profiler report at ${inputPath.toPlatformString()}`); return; } if (!fs.existsSync(outDir.toPlatformString())) { fs.mkdirSync(outDir.toPlatformString(), { recursive: true }); } const tree = profiler_core_1.SourceFileMetaDataTree.fromProjectReport(report); tree.storeToFile(outputPath, 'pretty-json'); }); } check(input) { var _a; return __awaiter(this, void 0, void 0, function* () { let inputPath = new profiler_core_1.UnifiedPath(input); if (inputPath.isRelative()) { inputPath = new profiler_core_1.UnifiedPath(process.cwd()).join(inputPath); } const report = profiler_core_1.ProjectReport.loadFromFile(inputPath, 'bin'); if (report === undefined) { profiler_core_1.LoggerHelper.error(`Could not find a profiler report at ${inputPath.toPlatformString()}`); return; } const reversePathMap = (_a = report.globalIndex.getModuleIndex('get')) === null || _a === void 0 ? void 0 : _a.reversePathMap; if (reversePathMap === undefined) { profiler_core_1.LoggerHelper.error('Could not find reversePathMap'); return; } for (const pathIndex of reversePathMap.values()) { if (!fs.existsSync(new profiler_core_1.UnifiedPath(pathIndex.identifier).toPlatformString())) { profiler_core_1.LoggerHelper.error(`Could not find file ${pathIndex.identifier}`); } } const nodeModulePath = new profiler_core_1.UnifiedPath(process.cwd()).join('node_modules'); for (const [nodeModuleIdentifier, moduleIndex] of report.globalIndex.moduleMap.entries()) { if (nodeModuleIdentifier === '{self}' || nodeModuleIdentifier === '{node}') { continue; } const nodeModule = profiler_core_1.NodeModule.fromIdentifier(nodeModuleIdentifier); for (const pathIndex of moduleIndex.reversePathMap.values()) { const filePath = nodeModulePath.join(nodeModule.name, pathIndex.identifier).toPlatformString(); if (!fs.existsSync(filePath)) { profiler_core_1.LoggerHelper.error(`Could not find file ${filePath}`); } } } }); } } exports.default = FormatCommands; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybWF0Q29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvRm9ybWF0Q29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF3QjtBQUV4QiwwREFNK0I7QUFDL0IseUNBQW1DO0FBRW5DLE1BQXFCLGNBQWM7SUFDbEM7UUFDQyxNQUFNLFdBQVcsR0FBRyxtQkFBTzthQUN6QixPQUFPLENBQUMsUUFBUSxDQUFDO2FBQ2pCLFdBQVcsQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO1FBRXRFLFdBQVc7YUFDVCxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQ2pCLFdBQVcsQ0FBQyxnREFBZ0QsQ0FBQzthQUM3RCxRQUFRLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDO2FBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBRWhDLFdBQVc7YUFDVCxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQ2pCLFdBQVcsQ0FBQyw2RUFBNkUsQ0FBQzthQUMxRixRQUFRLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDO2FBQ3RDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLENBQUM7YUFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFFdkMsV0FBVzthQUNULE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQzthQUMzQixXQUFXLENBQUMsdUZBQXVGLENBQUM7YUFDcEcsUUFBUSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQzthQUN0QyxRQUFRLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDO2FBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7UUFFN0Qs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