UNPKG

2.25 kBJavaScriptView Raw
1var formatMap = {
2 commit: '"%H"',
3 authorName: '"%an"',
4 authorEmail: '"%ae"',
5 committerName: '"%cn"',
6 committerEmail: '"%ce"',
7 authorDate: '"%at000"',
8 committerDate: '"%ct000"',
9 title: '"%f"'
10};
11
12var formatBuilder = function () {
13 var params = [];
14 return {
15 withCommit: function (alias) {
16 alias = alias || 'commit';
17 params.push('"' + alias + '":' + formatMap.commit);
18 return this;
19 },
20 withAuthorName: function (alias) {
21 alias = alias || 'authorName';
22 params.push('"' + alias + '":' + formatMap.authorName);
23 return this;
24 },
25 withAuthorEmail: function (alias) {
26 alias = alias || 'authorEmail';
27 params.push('"' + alias + '":' + formatMap.authorEmail);
28 return this;
29 },
30 withAuthorDate: function (alias) {
31 alias = alias || 'authorDate';
32 params.push('"' + alias + '":' + formatMap.authorDate);
33 return this;
34 },
35 withCommitTerEmail: function (alias) {
36 alias = alias || 'committerEmail';
37 params.push('"' + alias + '":' + formatMap.committerEmail);
38 return this;
39 },
40 withCommitterName: function (alias) {
41 alias = alias || 'committerName';
42 params.push('"' + alias + '":' + formatMap.committerName);
43 return this;
44 },
45 withCommitterDate: function (alias) {
46 alias = alias || 'committerDate';
47 params.push('"' + alias + '":' + formatMap.committerDate);
48 return this;
49 },
50 withTitle: function (alias) {
51 alias = alias || 'title';
52 params.push('"' + alias + '":' + formatMap.title);
53 return this;
54 },
55 build: function () {
56 if (params.length < 1) {
57 return '';
58 }
59 if (this.isWindows()) {
60 return '{' + params.toString().replace(/"/g, '"""') + '}';
61 }
62 return '\'{' + params.toString() + '}\'';
63 },
64 isWindows: function () {
65 return /^win/.test(process.platform);
66 }
67 }
68};
69module.exports = formatBuilder;
\No newline at end of file