UNPKG

@curvenote/cli

Version:
63 lines (62 loc) 2.65 kB
import path from 'node:path'; import fs from 'node:fs'; import { version as mystCliVersion } from 'myst-cli'; import { isDirectory } from 'myst-cli-utils'; import CurvenoteVersion from '../version.js'; function packageJsonInFolder(folder) { const packageJson = path.join(folder, 'package.json'); if (fs.existsSync(packageJson)) return packageJson; } export function logVersions(session, result, debug = true) { var _a; const versions = []; Object.entries((_a = result === null || result === void 0 ? void 0 : result.versions) !== null && _a !== void 0 ? _a : {}).forEach(([name, p]) => { var _a; versions.push([ name, p.version ? `${p.version}` : 'Package Not Found', `Required: ${((_a = p.wanted) === null || _a === void 0 ? void 0 : _a.raw) || ''}`, p.isSatisfied ? '✅' : '⚠️', ]); }); versions.push(['myst-cli', mystCliVersion]); versions.push(['curvenote', CurvenoteVersion]); const siteTemplatePackageJsons = []; const siteTemplateFolder = path.join(session.buildPath(), 'templates', 'site'); if (fs.existsSync(siteTemplateFolder)) { fs.readdirSync(siteTemplateFolder) .map((folder) => path.join(siteTemplateFolder, folder)) .filter((folder) => isDirectory(folder)) .forEach((folder) => { siteTemplatePackageJsons.push(packageJsonInFolder(folder)); fs.readdirSync(folder) .map((subfolder) => path.join(folder, subfolder)) .filter((subfolder) => isDirectory(subfolder)) .forEach((subfolder) => { siteTemplatePackageJsons.push(packageJsonInFolder(subfolder)); }); }); } siteTemplatePackageJsons .filter((file) => !!file) .forEach((file) => { try { // TODO: Improve this to tell you more about themes const packageJson = JSON.parse(fs.readFileSync(file).toString()); if (packageJson.name && packageJson.version) { versions.push([packageJson.name, packageJson.version]); } } catch (error) { // pass } }); const versionString = versions .map(([n, v, r, c]) => { var _a; return `\n - ${n.padEnd(25, ' ')}${v.padStart(10, ' ').padEnd(15, ' ')}${(_a = r === null || r === void 0 ? void 0 : r.padEnd(25)) !== null && _a !== void 0 ? _a : ''}${c !== null && c !== void 0 ? c : ''}`; }) .join(''); session.log[debug ? 'debug' : 'info'](`\n\nCurvenote CLI Versions:${versionString}\n\n`); }