1.0.1 • Published 7 years ago

@hasaki-ui/hsk-shaco v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
7 years ago

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

随机生成一个电话号码

email

随机生成一个电子邮件

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