Skip to content

Commit 40fb159

Browse files
committed
feat(main): add rule of 'maxLength' and 'minLength'
1 parent 79e4a76 commit 40fb159

3 files changed

Lines changed: 20 additions & 1 deletion

File tree

.git_consistent

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ subject:
6666
firstLatter: lower
6767
dotAtEnd: false
6868
nonAscii: false
69+
minLength: 10
6970
issueKeyword:
7071
type: branch
7172
required: false

README.adoc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,14 @@ link:https://github.com/isuke/git-consistent/blob/master/sample_type_list.adoc[s
379379
| `numberOnly`
380380
| number only?
381381
| boolean
382+
383+
| `maxLength`
384+
| max length of string
385+
| integer
386+
387+
| `minLength`
388+
| min length of string
389+
| integer
382390
|===
383391

384392
== Command options

lib/main.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,23 @@ const checkValue = (term, value, definition) => {
9696
case 'nonAscii':
9797
case 'notAscii':
9898
case 'ascii':
99-
if(ruleName === 'ascii') {
99+
if (ruleName === 'ascii') {
100100
console.log(`${colors.warning}[Deprecated Warning] 'ascii' rule renamed 'nonAscii' (the meaning does not change).${colors.reset}`)
101101
}
102102
if (!ruleSetting && /[^\x00-\x7F]/.test(value)) {
103103
errorMessages.push(`${term} should only ascii symbols.`)
104104
}
105105
break
106+
case 'maxLength':
107+
if (ruleSetting < value.length) {
108+
errorMessages.push(`${term} length is '${value.length}' but max length is '${ruleSetting}'.`)
109+
}
110+
break
111+
case 'minLength':
112+
if (ruleSetting > value.length) {
113+
errorMessages.push(`${term} length is '${value.length}' but min length is '${ruleSetting}'.`)
114+
}
115+
break
106116
default:
107117
throw new Error(`${ruleName} is not defined.`)
108118
}

0 commit comments

Comments
 (0)