执行过npm install命令的vue-element-admin源码
康凯
2022-05-20 aa4c235a8ca67ea8b731f90c951a465e92c0a865
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
module.exports = MergeSummary;
module.exports.MergeConflict = MergeConflict;
 
var PullSummary = require('./PullSummary');
 
function MergeConflict (reason, file, meta) {
   this.reason = reason;
   this.file = file;
   if (meta) {
      this.meta = meta;
   }
}
 
MergeConflict.prototype.meta = null;
 
MergeConflict.prototype.toString = function () {
   return this.file + ':' + this.reason;
};
 
function MergeSummary () {
   PullSummary.call(this);
 
   this.conflicts = [];
   this.merges = [];
}
 
MergeSummary.prototype = Object.create(PullSummary.prototype);
 
MergeSummary.prototype.result = 'success';
 
MergeSummary.prototype.toString = function () {
   if (this.conflicts.length) {
      return 'CONFLICTS: ' + this.conflicts.join(', ');
   }
   return 'OK';
};
 
Object.defineProperty(MergeSummary.prototype, 'failed', {
   get: function () {
      return this.conflicts.length > 0;
   }
});
 
MergeSummary.parsers = [
   {
      test: /^Auto-merging\s+(.+)$/,
      handle: function (result, mergeSummary) {
         mergeSummary.merges.push(result[1]);
      }
   },
   {
      // Parser for standard merge conflicts
      test: /^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,
      handle: function (result, mergeSummary) {
         mergeSummary.conflicts.push(new MergeConflict(result[1], result[2]));
      }
   },
   {
      // Parser for modify/delete merge conflicts (modified by us/them, deleted by them/us)
      test: /^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,
      handle: function (result, mergeSummary) {
         mergeSummary.conflicts.push(
            new MergeConflict(result[1], result[2], {deleteRef: result[3]})
         );
      }
   },
   {
      // Catch-all parser for unknown/unparsed conflicts
      test: /^CONFLICT\s+\((.+)\):/,
      handle: function (result, mergeSummary) {
         mergeSummary.conflicts.push(new MergeConflict(result[1], null));
      }
   },
   {
      test: /^Automatic merge failed;\s+(.+)$/,
      handle: function (result, mergeSummary) {
         mergeSummary.reason = mergeSummary.result = result[1];
      }
   }
];
 
MergeSummary.parse = function (output) {
   let mergeSummary = new MergeSummary();
 
   output.trim().split('\n').forEach(function (line) {
      for (var i = 0, iMax = MergeSummary.parsers.length; i < iMax; i++) {
         let parser = MergeSummary.parsers[i];
 
         var result = parser.test.exec(line);
         if (result) {
            parser.handle(result, mergeSummary);
            break;
         }
      }
   });
 
   let pullSummary = PullSummary.parse(output);
   if (pullSummary.summary.changes) {
      Object.assign(mergeSummary, pullSummary);
   }
 
   return mergeSummary;
};