5 Commits

Author SHA1 Message Date
root 8645d9914b Merge pull request 'release/0.0.5' (#14) from release/0.0.5 into master
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2020-06-11 15:07:49 +00:00
root 057466c952 Merge pull request 'release/0.0.4' (#11) from release/0.0.4 into master
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2020-06-11 14:52:52 +00:00
root 564578c160 Merge pull request 'release/0.0.3' (#8) from release/0.0.3 into master
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2020-06-10 14:21:12 +00:00
root e399cb0e30 Merge pull request 'release/0.0.2' (#5) from release/0.0.2 into master
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2020-06-10 13:39:05 +00:00
root 6fe8069868 Merge pull request 'Release v0.0.1' (#2) from release/v0.0.1 into master
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2020-06-03 15:58:51 +00:00
4 changed files with 1 additions and 45 deletions
-4
View File
@@ -1,9 +1,5 @@
# ChangeLog
## 2020-07-04 (0.0.6)
- add array validate contains type
## 2020-06-11 (0.0.5)
- modify types require method
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "mtfos-validator",
"version": "0.0.6",
"version": "0.0.5",
"description": "",
"main": "index.js",
"scripts": {
-27
View File
@@ -1,6 +1,5 @@
const Base = require('./base.js')
const util = require('util')
const validate = require('../validate.js')
class TypeArray extends Base {
constructor () {
@@ -9,10 +8,6 @@ class TypeArray extends Base {
this._empty = false
this._min = null
this._max = null
/**
* @type {Base[]}
*/
this._itemTypes = []
}
/**
@@ -35,11 +30,6 @@ class TypeArray extends Base {
return this
}
items (...args) {
this._itemTypes.push(...args)
return this
}
/**
* set max length
* @param {number} num
@@ -60,23 +50,6 @@ class TypeArray extends Base {
if (!this._empty && value.length === 0) return `not allow empty`
if (this._min !== null && value.length < this._min) return `value length < ${this._min}`
if (this._max !== null && value.length > this._max) return `value length > ${this._max}`
for (const item of value) {
let verified = false
let fail = ''
for (const type of this._itemTypes) {
const result = type.validate(item)
if (result) {
fail = result
} else {
verified = true
fail = ''
break
}
}
if (!verified || fail) return fail || `item type not match`
}
return null
}
}
-13
View File
@@ -1,7 +1,5 @@
/* eslint-disable no-undef */
const TypeArray = require('./array.js')
const TypeString = require('./string.js')
const TypeObject = require('./object.js')
describe('test validate schema type array', () => {
function throwFunc (val) {
@@ -61,15 +59,4 @@ describe('test validate schema type array', () => {
expect(throwFunc(arr.validate([1, 2, 3]))).toThrow()
})
it('test array contains value', async () => {
const arr = new TypeArray().items(new TypeString())
expect(throwFunc(arr.validate([1, 2, 3]))).toThrow()
throwFunc(arr.validate(['asd']))
const arr2 = new TypeArray().items(new TypeString(), new TypeObject())
expect(throwFunc(arr2.validate([123, true]))).toThrow()
throwFunc(arr2.validate(['asd', '33', {}]))
})
})