Compare commits

..

No commits in common. "develop" and "release/0.0.4" have entirely different histories.

5 changed files with 8 additions and 67 deletions

View File

@ -1,17 +1,5 @@
# ChangeLog # ChangeLog
## 2020-07-05 (0.0.7)
- fix array check contains type
## 2020-07-04 (0.0.6)
- add array validate contains type
## 2020-06-11 (0.0.5)
- modify types require method
## 2020-06-11 (0.0.4) ## 2020-06-11 (0.0.4)
- modify types export - modify types export

View File

@ -1,19 +1,14 @@
const TypeBase = require('./types/base.js') const types = require('./types/index.js')
const TypeString = require('./types/string.js')
const TypeNumber = require('./types/number.js')
const TypeBoolean = require('./types/boolean.js')
const TypeArray = require('./types/array.js')
const TypeObject = require('./types/object.js')
const validate = require('./validate.js') const validate = require('./validate.js')
const validator = {} const validator = {}
module.exports = validator module.exports = validator
validator.Base = TypeBase validator.Base = types.Base
validator.string = (...args) => new TypeString(...args) validator.string = (...args) => new types.StringType(...args)
validator.number = (...args) => new TypeNumber(...args) validator.number = (...args) => new types.NumberType(...args)
validator.boolean = (...args) => new TypeBoolean(...args) validator.boolean = (...args) => new types.BooleanType(...args)
validator.array = (...args) => new TypeArray(...args) validator.array = (...args) => new types.ArrayType(...args)
validator.object = (...args) => new TypeObject(...args) validator.object = (...args) => new types.ObjectType(...args)
/** /**
* validate * validate

View File

@ -1,6 +1,6 @@
{ {
"name": "mtfos-validator", "name": "mtfos-validator",
"version": "0.0.7", "version": "0.0.4",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@ -1,6 +1,5 @@
const Base = require('./base.js') const Base = require('./base.js')
const util = require('util') const util = require('util')
const validate = require('../validate.js')
class TypeArray extends Base { class TypeArray extends Base {
constructor () { constructor () {
@ -9,10 +8,6 @@ class TypeArray extends Base {
this._empty = false this._empty = false
this._min = null this._min = null
this._max = null this._max = null
/**
* @type {Base[]}
*/
this._itemTypes = []
} }
/** /**
@ -35,11 +30,6 @@ class TypeArray extends Base {
return this return this
} }
items (...args) {
this._itemTypes.push(...args)
return this
}
/** /**
* set max length * set max length
* @param {number} num * @param {number} num
@ -60,25 +50,6 @@ class TypeArray extends Base {
if (!this._empty && value.length === 0) return `not allow empty` 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._min !== null && value.length < this._min) return `value length < ${this._min}`
if (this._max !== null && value.length > this._max) return `value length > ${this._max}` if (this._max !== null && value.length > this._max) return `value length > ${this._max}`
if (this._itemTypes.length > 0) {
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 return null
} }
} }

View File

@ -1,7 +1,5 @@
/* eslint-disable no-undef */ /* eslint-disable no-undef */
const TypeArray = require('./array.js') const TypeArray = require('./array.js')
const TypeString = require('./string.js')
const TypeObject = require('./object.js')
describe('test validate schema type array', () => { describe('test validate schema type array', () => {
function throwFunc (val) { function throwFunc (val) {
@ -61,15 +59,4 @@ describe('test validate schema type array', () => {
expect(throwFunc(arr.validate([1, 2, 3]))).toThrow() 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', {}]))
})
}) })