webpack-dashboard/utils/format-versions.js
Ryan Roemer 77039dc78f
Chore: Update devDependencies. (#317)
Updates all `devDependencies` except for webpack which we're going to tackle in #316
2021-01-20 14:03:12 -08:00

37 lines
852 B
JavaScript

"use strict";
const Handlebars = require("handlebars");
// From inspectpack.
const pkgNamePath = pkgParts =>
pkgParts.reduce((m, part) => `${m}${m ? " -> " : ""}{cyan-fg}${part.name}{/}@${part.range}`, "");
Handlebars.registerHelper("skew", function (options) {
// eslint-disable-next-line no-invalid-this
return pkgNamePath(options.fn(this));
});
const template = Handlebars.compile(
`{yellow-fg}{underline}Version skews{/}
{{#each packages}}
{yellow-fg}{bold}{{@key}}{/}
{{#each this}}
{green-fg}{{@key}}{/}
{{#each this}}
{{#each skews}}
{{#skew}}{{{this}}}{{/skew}}
{{/each}}
{{/each}}
{{/each}}
{{/each}}
`
);
function formatVersions(versions) {
const haveSkews = !!Object.keys((versions || {}).packages || {}).length;
return haveSkews ? template(versions) : "";
}
module.exports = formatVersions;