1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | const filesize = require("filesize");
|
7 | const Handlebars = require("handlebars");
|
8 |
|
9 | Handlebars.registerHelper("filesize", function (options) {
|
10 |
|
11 | return filesize(options.fn(this));
|
12 | });
|
13 |
|
14 |
|
15 | const 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 |
|
23 | Extra duplicate files (unique): {{meta.extraFiles.num}}
|
24 | Extra duplicate sources (non-unique): {{meta.extraSources.num}}
|
25 | Wasted duplicate bytes (non-unique): {{#filesize}}{{meta.extraSources.bytes}}{{/filesize}}
|
26 | `
|
27 | );
|
28 |
|
29 |
|
30 | function formatDuplicates(duplicates) {
|
31 | const haveDups = !!Object.keys((duplicates || {}).files || {}).length;
|
32 | return haveDups ? template(duplicates) : "";
|
33 | }
|
34 |
|
35 | module.exports = formatDuplicates;
|