UNPKG

1.04 kBJavaScriptView Raw
1"use strict";
2
3/**
4 * Problem: Duplicate files (same path name) in a bundle.
5 */
6const filesize = require("filesize");
7const Handlebars = require("handlebars");
8
9Handlebars.registerHelper("filesize", function (options) {
10 // eslint-disable-next-line no-invalid-this
11 return filesize(options.fn(this));
12});
13
14/* eslint-disable max-len*/
15const template = Handlebars.compile(
16 `{yellow-fg}{underline}Duplicate files{/}
17
18{{#each files}}
19- {green-fg}{{@key}}{/}
20 (files: {{meta.extraFiles.num}}, sources: {{meta.extraSources.num}}, bytes: {{#filesize}}{{meta.extraSources.bytes}}{{/filesize}})
21{{/each}}
22
23Extra duplicate files (unique): {{meta.extraFiles.num}}
24Extra duplicate sources (non-unique): {{meta.extraSources.num}}
25Wasted duplicate bytes (non-unique): {{#filesize}}{{meta.extraSources.bytes}}{{/filesize}}
26`
27);
28/* eslint-enable max-len*/
29
30function formatDuplicates(duplicates) {
31 const haveDups = !!Object.keys((duplicates || {}).files || {}).length;
32 return haveDups ? template(duplicates) : "";
33}
34
35module.exports = formatDuplicates;