@hasaki-ui/hsk-shaco v1.0.1
hsk-shaco
shaco,LOL的恶魔小丑ʃə'koʊ,萨科.
作者:joyer,邮箱:972325584qq.com(@替换),最后修改时间:2017年9月14日星期四 作者是个菜逼,有什么错误,欢迎指正。
数据mock库
说明
主要用于hsk
的API-MOCK和测试中。
mock数据库中有很多mock餐饮行业的数据,因为作者在一家小小的餐饮公司工作,暂时还没有剥离。
当前主要能够模拟的功能有:文字,数字,姓名,图片,集合,图片,概率,日期(不全),地址,餐饮行业。详细的请查看下文中的API。
hsk-shaco不支持按需导入,并且因为一些资源库非常大,不建议在正式环境中使用,建议在开发环境模拟数据或者测试等场景中使用。
在本文中每一个数据模拟项用stick
代表,每一个stick
代表一个API。也支持自定义stick
。
hsk-shaco采用es6代码书写,并且没有babel
编译。如果在浏览器环境,请配合webpack
等构建工具;如果在node>7
环境中,指定--harmony
可直接使用。
使用
下载
npm install hsk-shaco --save
然后在代码中使用:
const HskShaco = require('hskShaco');
HskShaco.name(); // 随机生成一个名字
API
常用
一些常用数据生成
uuid
len(Number)/version(String),radix(Number)
- len:长度。当指定为len时,将采用随机数生成
- version:uuid版本号,可以为v1,v4
- radix:需指定len才起效,当使用随机数生成时,使用的字符的范围,值在1-42(数字+小写字母+大写字母)之间
生成一个UUID。
serialNumber
prefix(String)
- prefix:前缀。
生成一个流水账号。当前生成规则为前缀+日期(YYYYMMDDHHmmss)+4位数序列
,4位数序列会使用0
补位。
phone
无
随机生成一个电话号码
无
随机生成一个电子邮件
taxCode
无
随机生成一个纳税人(公司)识别号(15位,10随机数字码+5为随机字符码)
bank
无
随机生成一个银行名字
bankAccount
无
随机生成一个银行账号
name
无参数
随机两字或者三字中文姓名。
字符串
letter
length(Number)
- length:长度。
生成指定长度的字母字符串,字母有大写有小写。
lowercaseLetter
length(Number)
- length:长度
生成指定长度的小写字母字符串。
uppercaseLetter
length(Number)
- length:长度。
生成指定长度的大写字母字符串。
text
length(Number)/minLength(Number),maxLength
- length:长度。
- minLength:最小长度。需要指定maxLength才生效。
- maxLength:最长长度。指定minLength,maxLength后将会生成一个在minLength,maxLength范围的中文字符串。
生成指定长度的中文字符串。
范围包括起始不包括截止
numberStr
length(Number)
- length 长度
生成指定长度的数字字符串(可以0开头)
列表
list
length(Number)/seed(Array),cb(Function)
- length:列表长度。会生成指定长度的数组,回调函数的参数将是当前下标。
- seed: 种子数组。会根据种子数组映射出同样长度的数组,回调函数的参数将是当前种子函数的值和下标。
- cb:回调函数,用于生成列表的内容,会根据第一个参数所代表的内容指定回调函数的参数。
item
list(Object)
- list:指定列表。
从指定列表中随机选取一项。
图片
picture
libraryNameList(null|String|String)
- libraryNameList:图片库名字列表。当指定为一个数组时,在指定的多个图片库中随机选取一张图片;当指定为一个库时,在当前库中随机选取一张图片;不指定时,在所有的图片库中随机选取一张图片。
生成一张图片url
数字
number
start(Number),end(Number)
- start:起始值,默认为0
- end:截止值,默认为999999999
随机生成一个数字。
范围包括起始不包括截止
double
start(Number),end(Number)
- start:起始值,默认为0
- end:截止值,默认为999999999
随机生成一个小数。
范围包括起始不包括截止
概率
boolean
无
随机生成true或者false。
probability
percentage(Number)
- percentage:百分比。为0-100之间的值。代表有这个几率返回true
根基指定几率返回真。
日期
now
无
返回当前时间。
nowTime
无
返回当前时间戳
date
start(Date),end(Date)
- start:起始日期,默认为1994-01-14
- end:截止日期,默认为当前
在指定范围类随机生成一个日期。
范围包括起始不包括截止
time
start({hour:Number,minute:Number,second:Number}|hour(Number),minute(Number),second(Number)), end({hour:Number,minute:Number,second:Number}|hour(Number),minute(Number),second(Number)), fmt(String)
- start:起始时间,默认为凌晨0点
- end:截止时间,默认为晚上24点
- fmt:日期格式化格式
在指定范围类随机生成一个时间。
范围包括起始不包括截止
year
start(Number),end(Number)
- start:起始年份,默认为1900
- end:截止年份,默认为明年
在指定范围内生成一个年份。
范围包括起始不包括截止
month
start(Number),end(Number)
- start:起始月份,默认为1
- end:截止月份,默认13
在指定范围内生成一个月份。
范围包括起始不包括截止
day
month(Number)|start(Number),end(Number)
- month:月份
- start:起始天数,默认为1
- end:截止天数,默认32
如果传入的月份,随机生成一个指定月份的天数(二月按28天算)
如果指定的是范围,在指定范围内生成一个月份
范围包括起始不包括截止
hour
start(Number),end(Number)
- start:起始值,默认为1
- end:截止值,默认25
生成一个指定范围的小时数。
范围包括起始不包括截止
minute
start(Number),end(Number)
- start:起始值,默认为1
- end:截止值,默认60
生成一个指定范围的分钟数。
范围包括起始不包括截止
second
start(Number),end(Number)
- start:起始值,默认为1
- end:截止值,默认60
生成一个指定范围的秒数。
范围包括起始不包括截止
millisecond
start(Number),end(Number)
- start:起始值,默认为1
- end:截止值,默认1000
生成一个指定范围的秒数。
范围包括起始不包括截止
地址
province
无
随机生成一个省份名
city
无
随机生成一个市名
area
无
随机生成一个县或者地区名
address2
无
随机生成二级地址
address3
无
随机生成三级地址
address4
无
随机生成四级地址
餐饮
discount
无
生成一个折扣,为5-10带一位小数的数
price
start(Double),end(Double)
- start:起始值
- end:截止值
生成一个价格,带两位小数的数
范围包括起始不包括截止
其他
$setConfig
config(Object)
- config:配置对象
重新设置HskShaco
的配置对象,新的配置对象不会直接替换掉老得配置对象,而是采用Object.assign.
配置能够在生成模拟数据中使用。
配置对象的格式为
{
'stickName':{
'key':value
}
}
配置对象在$extend
会使用到。自带的stick
的处理函数中也会使用config
项。
所以系统中有默认的config
,不过可以通过该函数改变默认配置文件中的值,这样就能影响自带的stick
,让自带的stick
生成符合当前需求的数据。
如改变银行生成库:
const HskShaca = require('hsk-shaca');
HskShaca.$setConfig({
bank:{
list:['银行1','银行2','银行3','银行4','银行5','银行6']
}
});
// 输出银行1 或者 银行2 或者 银行3 或者 银行4 或者 银行5 或者 银行6
HskShaca.bank();
$extend
stickName(String),handler(Function(config(Object),context(Object))) stickName: stick名字,数据模拟项名字 handler: 处理函数,是一个回调函数,会传递config,context参数。config是当前stick在配置文件中的配置数据,注意不是所有的配置数据,如果当前stick在配置对象中为没有配置数据,那么该参数为空。context为上下文,起始就是hskShaco实例,可以利用context调用其他
stick
。
扩展HskShaco
,自定义stick
。
如:
const hskShaco = new HskShaco();
const stickName = "my__test__stick_2";
hskShaco.$setConfig({
[stickName]:{
value:'joyer'
}
});
hskShaco.$extend(stickName,function ( config ) {
return function () {
return config.value;
}
});
hskShaco[stickName]().should.be.equal('joyer');
hskShaco.$setConfig({
[stickName]:{
value:'taki'
}
});
hskShaco[stickName]().should.be.equal('taki');
测试
下载代码后,依次执行:
npm install;
npm run test