Compare commits
3 Commits
4ae4427e8e
..
0.0.3
| Author | SHA1 | Date | |
|---|---|---|---|
| 564578c160 | |||
| e399cb0e30 | |||
| 6fe8069868 |
@@ -1,14 +1,5 @@
|
|||||||
# ChangeLog
|
# ChangeLog
|
||||||
|
|
||||||
## 2020-06-11 (0.0.5)
|
|
||||||
|
|
||||||
- modify types require method
|
|
||||||
|
|
||||||
## 2020-06-11 (0.0.4)
|
|
||||||
|
|
||||||
- modify types export
|
|
||||||
- add package repository
|
|
||||||
|
|
||||||
## 2020-06-10 (0.0.3)
|
## 2020-06-10 (0.0.3)
|
||||||
|
|
||||||
- add types init value
|
- add types init value
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
+1
-5
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "mtfos-validator",
|
"name": "mtfos-validator",
|
||||||
"version": "0.0.5",
|
"version": "0.0.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -12,9 +12,5 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"jest": "^26.0.1",
|
"jest": "^26.0.1",
|
||||||
"standard": "^12.0.1"
|
"standard": "^12.0.1"
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://git.trj.tw/nodejs/validator.git"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,23 +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}`
|
||||||
|
|
||||||
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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', {}]))
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
+15
-8
@@ -1,8 +1,15 @@
|
|||||||
const types = {}
|
const Base = require('./base.js')
|
||||||
module.exports = types
|
const StringType = require('./string.js')
|
||||||
types.Base = require('./base.js')
|
const NumberType = require('./number.js')
|
||||||
types.StringType = require('./string.js')
|
const BooleanType = require('./boolean.js')
|
||||||
types.NumberType = require('./number.js')
|
const ObjectType = require('./object.js')
|
||||||
types.BooleanType = require('./boolean.js')
|
const ArrayType = require('./array.js')
|
||||||
types.ObjectType = require('./object.js')
|
|
||||||
types.ArrayType = require('./array.js')
|
module.exports = {
|
||||||
|
Base,
|
||||||
|
StringType,
|
||||||
|
NumberType,
|
||||||
|
BooleanType,
|
||||||
|
ObjectType,
|
||||||
|
ArrayType
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user