@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
JavaScript
;
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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