|
22 | 22 |
|
23 | 23 | var visitWithAncestors = require( 'unist-util-visit-parents' );
|
24 | 24 | var visit = require( 'unist-util-visit' );
|
| 25 | +var contains = require( '@stdlib/assert/contains' ); |
| 26 | +var replace = require( '@stdlib/string/base/replace' ); |
25 | 27 |
|
26 | 28 |
|
27 | 29 | // VARIABLES //
|
28 | 30 |
|
29 | 31 | var RE_DIGITS = /^[0-9]+$/;
|
30 | 32 | var RE_CLOSES = /(?:closes|fixes|resolves)/i;
|
31 | 33 | var RE_CO_AUTHORED_BY = /co-authored-by/i;
|
| 34 | +var RE_LEADING_HASH = /^\s*#/; |
32 | 35 |
|
33 | 36 |
|
34 | 37 | // MAIN //
|
@@ -233,25 +236,28 @@ function toConventionalChangelog( ast, options ) {
|
233 | 236 | }
|
234 | 237 | break;
|
235 | 238 | case 'text':
|
236 |
| - if ( node.value.indexOf( options.issueURL ) !== 1 ) { |
| 239 | + if ( contains( node.value, options.issueURL ) ) { |
237 | 240 | reference.url = node.value;
|
238 | 241 | reference.ref = node.value.split( '/' ).pop();
|
239 | 242 | }
|
240 |
| - if ( node.value.indexOf( options.prURL ) !== 1 ) { |
| 243 | + else if ( contains( node.value, options.prURL ) ) { |
241 | 244 | hasPRURL = true;
|
242 | 245 | reference.url = node.value;
|
243 | 246 | reference.ref = node.value.split('/').pop();
|
244 | 247 | }
|
245 |
| - if ( node.value.charAt( 0 ) === '#' ) { |
246 |
| - hasRefSeparator = true; |
247 |
| - reference.ref = node.value.substring( 1 ); |
248 |
| - } else { |
249 |
| - reference.ref = node.value; |
250 |
| - } |
251 |
| - if ( closesIssue ) { |
252 |
| - reference.url = options.issueURL + reference.ref; |
253 |
| - } else if ( hasPRURL ) { |
254 |
| - reference.url = options.prURL + reference.ref; |
| 248 | + if ( !reference.url ) { |
| 249 | + // Case: reference is not an issue or PR URL |
| 250 | + if ( RE_LEADING_HASH.test( node.value ) ) { |
| 251 | + hasRefSeparator = true; |
| 252 | + reference.ref = replace( node.value, RE_LEADING_HASH, '' ); |
| 253 | + } else { |
| 254 | + reference.ref = node.value; |
| 255 | + } |
| 256 | + if ( closesIssue ) { |
| 257 | + reference.url = options.issueURL + reference.ref; |
| 258 | + } else if ( hasPRURL ) { |
| 259 | + reference.url = options.prURL + reference.ref; |
| 260 | + } |
255 | 261 | }
|
256 | 262 | break;
|
257 | 263 | default:
|
|
0 commit comments