49 lines
1.0 KiB
JavaScript
49 lines
1.0 KiB
JavaScript
var styles = {
|
|
'jquery': require('./styles/jquery.js'),
|
|
'angular': require('./styles/angular.js')
|
|
}
|
|
|
|
var limits = require('./utils/limits')
|
|
var tickets = require('./utils/tickets')
|
|
|
|
var semver = require('semver')
|
|
|
|
module.exports = function (message, options) {
|
|
if (message === undefined) {
|
|
return ['Commit message is undefined, abort with error']
|
|
} else if (
|
|
!(typeof message === 'string' || message instanceof String)
|
|
) {
|
|
return ['Commit message is not a string, abort with error']
|
|
} else if (message.length === 0) {
|
|
return ['Commit message is empty, abort with error']
|
|
}
|
|
|
|
var lines = message.split('\n')
|
|
|
|
if (semver.valid(lines[0])) {
|
|
return []
|
|
}
|
|
|
|
if (/^WIP|^Wip|^wip/.test(lines[0])) {
|
|
return []
|
|
}
|
|
|
|
if (/^Merge branch|^Merge [0-9a-f]+ into [0-9a-f]+/.test(lines[0])) {
|
|
return []
|
|
}
|
|
|
|
if (/^fixup!|^squash!/.test(lines[0])) {
|
|
return []
|
|
}
|
|
|
|
var errors = []
|
|
|
|
limits(lines, options, errors)
|
|
tickets(lines, options, errors)
|
|
|
|
styles[options.style](lines, options, errors)
|
|
|
|
return errors
|
|
}
|