@diotoborg/sed-minus-itaque v5.8.132
@diotoborg/sed-minus-itaque
Parse the string into a Map.
Installation
$ npm install @diotoborg/sed-minus-itaque
#
$ yarn add @diotoborg/sed-minus-itaque
Features
- parse string into Map
- format data
- filter and verify data.
- verify signature.
API
toValue (type: 'string' | 'number' | 'date' | 'map' = 'string'): (value: any) => any
Convert specified type value.
type
- target typevalue
- value of need convert
formatData (formats?: ParseData.format | ParseData.format[], customize?: Record<string, Function>): (value: any) => any
Format Data.
formats
- formatting optionscustomize
- map of custom functionvalue
- value of need format
parseData (options: ParseData.options, customize?: Record<string, Function>): (data: string) => Record<string, any>
Parse the string to the specified result.
options
- parsing optionscustomize
- map of custom functiondata
- data of need parse
parseBody (options: ParseData.parse[], customize?: Record<string, Function>): (msgbody: Record<string, any>) => Record<string, any>
Parse the msbody to the specified result.
options
- parsing optionscustomize
- map of custom functionmsbody
- msbody of need parse
filterData (options: FilterData.options[], customize?: Record<string, Function>): (data: Record<string, any>) => Record<string, any>
Filter and verify data.
options
- filter optionscustomize
- map of custom functiondata
- data of need filter
validSign (options: string, sign: string = 'sign'): (data: Record<string, any>) => boolean
Verify signature.
options
- style of signaturesign
- feild of signaturedata
- data of submit
Usages
Example: Parse string
import { parseData } from '@diotoborg/sed-minus-itaque'
const customize = {
add: (a, b) => a + b
}
const options = {
separator: /\;/,
collection: [
{
key: 'date',
type: 'string',
format: [
{
type: 'string',
regexp: /^(\d{4})(\d{2})(\d{2})$/,
substr: '$1-$2-$3'
},
{
type: 'date'
}
]
},
{
key: 'amount',
type: 'number'
},
{
key: 'user',
type: 'map'
},
{
key: 'username',
result: {
defaultValue: '$__user'
},
format: {
type: 'map',
maps: 'username'
}
},
{
key: 'group',
result: {
defaultValue: '$__user'
},
format: {
type: 'map',
maps: 'group.name'
}
},
{
key: 'level',
result: {
defaultValue: '$__user'
},
format: {
type: 'map',
maps: 'group.level'
}
},
{
key: 'money1',
result: {
defaultValue: '$__amount',
formula: {
exec: (a, b) => a + b,
opts: [ '$__amount', '$__level' ]
}
}
},
{
key: 'money2',
result: {
defaultValue: '$__amount',
formula: {
exec: 'add',
opts: [ '$__amount', '$__level' ]
}
}
}
],
omits: [ 'user' ]
}
const data = '20201027;39554;{username:\'thondery\',group:{name:\'管理员\',level:9999}}'
parseData(options, customize)(data)
// {
// date: 2020-10-27T00:00:00.000Z,
// amount: 39554,
// username: 'thondery',
// group: '管理员',
// level: 9999,
// money1: 49553,
// money2: 49553
// }
Example: Filter and verify data
import { filterData, validSign } from '@diotoborg/sed-minus-itaque'
const customize = {
isPassword: value => /^(?=.*[A-Za-z])[A-Za-z0-9$@$!%*#?&]/.test(value)
}
const options = [
{
key: 'username',
type: 'string',
rules: [
{ required: true, message: '用户名不能为空' },
{ min: 4, max: 12, message: '用户名长度不能小于4或大于12(字符)' },
{ pattern: '^[a-zA-Z]{1}[a-zA-Z0-9\_\-]', message: '用户名格式错误' }
]
},
{
key: 'password',
type: 'string',
rules: [
{ required: true, message: '密码不能为空' },
{ min: 6, max: 15, message: '密码长度不能小于6或大于15(字符)' },
{ validator: 'isPassword', message: '密码格式错误' }
]
},
{
key: 'items',
type: 'string[]',
defaultValue: []
},
{
key: 'sign',
type: 'string',
md5: '${password}${username}'
}
]
const data = { username: 'thondery', password: 'a123456', items: '1001,1002,1003' }
try {
let result = filterData(options, customize)(data)
// {
// username: 'thondery',
// password: 'a123456',
// items: ['1001', '1002', '1003'],
// sign: '61a0375131b33b72b56e4e244d0b2f29'
// }
} catch (error) {
console.error(error.message)
}
validSign('${password}${username}', 'sign')({ username: 'thondery', password: 'a123456', sign: '61a0375131b33b72b56e4e244d0b2f29' })
// true or false
License
this repo is released under the MIT License.
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
11 months ago
11 months ago
10 months ago
1 year ago
10 months ago
1 year ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
1 year ago
11 months ago
11 months ago
1 year ago
1 year ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
10 months ago
10 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
12 months ago
12 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
10 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
10 months ago
1 year ago
1 year ago
10 months ago
1 year ago
10 months ago
1 year ago
10 months ago
1 year ago
1 year ago
1 year ago
10 months ago
1 year ago
10 months ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
11 months ago
12 months ago
11 months ago
12 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago