@navikt/aksel
Version:
Aksel command line interface. Handles css-imports, codemods and more
52 lines (51 loc) • 2.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.printRemaining = printRemaining;
const path_1 = __importDefault(require("path"));
const status_1 = require("./status");
function printRemaining(files) {
process.stdout.write("\nAnalyzing...");
const statusObj = (0, status_1.getStatus)(files, "no-print").status;
Object.entries(statusObj).forEach(([tokenType, data]) => {
console.group(`\n${tokenType.toUpperCase()}:`);
const fileLinks = [];
data.legacy.forEach((tokenData) => {
fileLinks.push(`${tokenData.name.replace(":", "")}:${tokenData.fileName}:${tokenData.lineNumber}:${tokenData.columnNumber}`);
});
if (fileLinks.length === 0) {
console.info("Nothing to update.");
console.groupEnd();
}
// Ensure every string is unique
const uniqueFileLinks = Array.from(new Set(fileLinks));
// Sort the unique fileLinks based on fileName first, lineNumber second, and columnNumber third
uniqueFileLinks.sort((a, b) => {
const [fileA, lineA, columnA] = a.split(":");
const [fileB, lineB, columnB] = b.split(":");
if (fileA !== fileB) {
return fileA.localeCompare(fileB);
}
if (Number(lineA) !== Number(lineB)) {
return Number(lineA) - Number(lineB);
}
return Number(columnA) - Number(columnB);
});
// Print the unique and sorted fileLinks as clickable links with full path
uniqueFileLinks.forEach((link) => {
const [tokenName, fileName, lineNumber, columnNumber] = link.split(":");
const fullPath = path_1.default.resolve(process.cwd(), fileName);
const withComment = data.legacy.find((token) => {
return token.name === tokenName && token.comment;
});
if (withComment) {
console.info(`\n/* ${withComment.comment} */`);
}
console.info(`${tokenName}: file://${fullPath}:${lineNumber}:${columnNumber}`);
});
console.groupEnd();
});
console.info("\n");
}