@@ -5,6 +5,12 @@ var map = require('lodash.map');
5
5
var longest = require ( 'longest' ) ;
6
6
var rightPad = require ( 'right-pad' ) ;
7
7
8
+ var filter = function ( array ) {
9
+ return array . filter ( function ( x ) {
10
+ return x ;
11
+ } ) ;
12
+ } ;
13
+
8
14
// This can be any kind of SystemJS compatible module.
9
15
// We use Commonjs here, but ES6 or AMD would do just
10
16
// fine.
@@ -63,8 +69,12 @@ module.exports = function (options) {
63
69
message : 'Provide a longer description of the change:\n'
64
70
} , {
65
71
type : 'input' ,
66
- name : 'footer' ,
67
- message : 'List any breaking changes or issues closed by this change:\n'
72
+ name : 'breaking' ,
73
+ message : 'List any breaking changes:\n'
74
+ } , {
75
+ type : 'input' ,
76
+ name : 'issues' ,
77
+ message : 'List any issues closed by this change:\n'
68
78
}
69
79
] ) . then ( function ( answers ) {
70
80
@@ -93,7 +103,15 @@ module.exports = function (options) {
93
103
94
104
// Wrap these lines at 100 characters
95
105
var body = wrap ( answers . body , wrapOptions ) ;
96
- var footer = wrap ( answers . footer , wrapOptions ) ;
106
+
107
+ // Apply breaking change prefix, removing it if already present
108
+ var breaking = answers . breaking . trim ( ) ;
109
+ breaking = breaking ? 'BREAKING CHANGE: ' + breaking . replace ( / ^ B R E A K I N G C H A N G E : / , '' ) : '' ;
110
+ breaking = wrap ( breaking , wrapOptions ) ;
111
+
112
+ var issues = wrap ( answers . issues , wrapOptions ) ;
113
+
114
+ var footer = filter ( [ breaking , issues ] ) . join ( '\n\n' ) ;
97
115
98
116
commit ( head + '\n\n' + body + '\n\n' + footer ) ;
99
117
} ) ;
0 commit comments