UNPKG

@navikt/aksel

Version:

Aksel command line interface. Handles css-imports, codemods and more

52 lines (51 loc) 2.33 kB
"use strict"; 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"); }