0.0.6 • Published 1 year ago

dom-visual-selector v0.0.6

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

type-check-plus

A library for javascript to check value is equal or not with the definition

Install

npm install type-check-plus

How to use

import check, { checkTree } from 'type-check-plus';
const objValue = [{
    name: 'sz-p',
    age: 1,
    infor: {
      hight: 1.0,
      weight: 2.0
    },
    friends: ['liu', 'zhang', 'li']
},{
    name: 'j-l',
    age: 1,
    infor: {
      hight: 1.0,
      weight: 2.0
    }
}];
const objDefine = [{
    name: 'string',
    age: 'int',
    infor: {
        hight: 'number',
        weight: 'number'
    },
    // if 'friends' can be undefind use '?' in first char
    friends: '?string[]'
}]
const option = {
  // if objValue is very large use 'threshold' to limit check count
  threshold: 1,
  onError: (value,define,key,index)=>{console.log(value,define,key,index)},
  onCheck: (value,define,key,index)=>{console.log(value,define,key,index)}
}
check(objValue,objDefine,option)  // true                    

ParameterList

int

ParameterExamplereturndescription
intcheck(1, 'int')true
intcheck(1.0, 'int')false

number

ParameterExamplereturndescription
numbercheck(1.0, 'number')true
numbercheck(NaN, 'number')false

string

ParameterExamplereturndescription
stringcheck('string', 'string')true

boolean

ParameterExamplereturndescription
booleancheck(true, 'boolean')true
booleancheck(1, 'boolean')false0 or 1 is not 'boolean' use true or false

any

ParameterExamplereturndescription
anycheck(undefined, 'boolean')trueany input can be 'any'

object

ParameterExamplereturndescription
objectcheck({}, 'object')true

color

ParameterExamplereturndescription
colorcheck('rgba(0,0,0,100)', 'color')falsealpha:0-100
colorcheck('#000000', 'color')true
colorcheck('black', 'color')truecolorName

date

ParameterExamplereturndescription
datecheck('2018-08-08', 'date')true
datecheck('2018-02-31', 'date')false

function

ParameterExamplereturndescription
functioncheck((function () { }), 'function')true

emailaddress

ParameterExamplereturndescription
emailaddresscheck('sz_p@outlook.com', 'emailaddress)'true

array

use '[]' to define array like '[parameter][]' Example:'int[]','number[]' all parameter is in ParameterList

example

ParameterExamplereturndescription
arraycheck([], 'array')true
int[]check(1,2,3,4, 'int[]')true
int[]check(1,2,3,4, ''int'')true
date[]check('2018-08-08','2018-08-09','2018-08-10','2018-08-11', 'date[]')true

object

import check, { checkTree } from 'type-check-plus';
const objValue = {
    name: 'sz-p',
    age: 24,
    infor: {
      hight: 183,
      weight: 90
    },
    friends: ['liu', 'zhang', 'li']
};
const objDefine = {
    name: 'string',
    age: 'int',
    infor: {
        hight: 'number',
        weight: 'number'
    },
    friends: 'string[]'
}

check(objValue, objDefine) // true

arrayList

use [[parameter],[parameter],[parameter]] to define arrayList all parameter is in ParameterList.

example

Examplereturn
check(1, '2', 3.0, (() => { }), {}, ''int', 'string', 'number', 'function', 'object'')true
check(1, '2', 3.0, (() => { }), ''int', 'string', 'number', 'function', 'object'')true
check(1, '2', 3.0, (() => { }), ''int', 'string', 'number', 'function'')false

objectArray

import check, { checkTree } from 'type-check-plus';
const objValue = [{
    name: 'sz-p',
    age: 1,
    infor: {
      hight: 1.0,
      weight: 2.0
    },
    friends: ['liu', 'zhang', 'li']
},{
    name: 'j-l',
    age: 1,
    infor: {
      hight: 1.0,
      weight: 2.0
    },
    friends: ['p', 'll', 'li']
}];
const objDefine = [{
    name: 'string',
    age: 'int',
    infor: {
        hight: 'number',
        weight: 'number'
    },
    friends: 'string[]'
}]

check(objValue,objDefine) // true

Use RegExp

ParameterExamplereturn
RegExpcheck("outlook@outlook.com", /^A-Za-z\d+(-_.+)*@(A-Za-z\d+-.)+A-Za-z\d{2,4}$/)true

CheckMoreType

import check, { checkTree } from 'type-check-plus';
const style = {
  position:'absolute'
  width:'1080px',
  height:'1920px',
  fontSize:'14px'
}
const styleDefine = {
    position:'string',
    width: 'string|int',
    height: 'string|int',
    fontSize: 'string|int'
}
checkTree(style,styleDefine) // true

CheckTree

import check, { checkTree } from 'type-check-plus';
const treeValue = {
  name: 'aa',
  value: 1,
  id: 1,
  children: [
    {
      name: 'aa',
      value: 2,
      id: 1,
      children: [
        {
          name: 'aa',
          value: 3,
          id: 1,
          children: [
          ]
        },
        {
          name: 'aa',
          value: 3,
          id: 2
        }
      ]
    }
  ]
}
const treeDefine = {
    name: 'string',
    value: 'int',
    id: 'int',
    children: '?node[]'
}
checkTree(treeValue,treeDefine) // true

Options

optiontypedescription
thresholdintif value is very large use 'threshold' to limit check count
onErrorfunction(value:string,define:string,key:?string,index?:number):voidbefore return false call onError
onCheckfunction(value:string,define:string,key:?string,index?:number):voidbefore check value or value's attribute call onCheck

Test

yarn test
0.0.5

1 year ago

0.0.4

1 year ago

0.0.6

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago

0.0.0

1 year ago