@@ -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.
@@ -62,8 +68,12 @@ module.exports = function (options) {
62
68
message : 'Provide a longer description of the change:\n'
63
69
} , {
64
70
type : 'input' ,
65
- name : 'footer' ,
66
- message : 'List any breaking changes or issues closed by this change:\n'
71
+ name : 'breaking' ,
72
+ message : 'List any breaking changes:\n'
73
+ } , {
74
+ type : 'input' ,
75
+ name : 'issues' ,
76
+ message : 'List any issues closed by this change:\n'
67
77
}
68
78
] ) . then ( function ( answers ) {
69
79
@@ -85,7 +95,15 @@ module.exports = function (options) {
85
95
86
96
// Wrap these lines at 100 characters
87
97
var body = wrap ( answers . body , wrapOptions ) ;
88
- var footer = wrap ( answers . footer , wrapOptions ) ;
98
+
99
+ // Apply breaking change prefix, removing it if already present
100
+ var breaking = answers . breaking . trim ( ) ;
101
+ breaking = breaking ? 'BREAKING CHANGE: ' + breaking . replace ( / ^ B R E A K I N G C H A N G E : / , '' ) : '' ;
102
+ breaking = wrap ( breaking , wrapOptions ) ;
103
+
104
+ var issues = wrap ( answers . issues , wrapOptions ) ;
105
+
106
+ var footer = filter ( [ breaking , issues ] ) . join ( '\n\n' ) ;
89
107
90
108
commit ( head + '\n\n' + body + '\n\n' + footer ) ;
91
109
} ) ;
0 commit comments