2.0.4 • Published 2 months ago

mock-record v2.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

mock-record

GitHub license npm version

  • 虚拟数据生成

使用

npm install mock-record
import { mock } from 'mock-record'

mock("@name")
=> 'Ruihuag'

说明

mock({
  'name|rule|key1,key2,key3...|[DictionaryKey]':'@name'
})
  • name: 表示当前属性真正name
  • rule : 指定生成数量规则, 只表示数量
  • key1,key2,key3...: 表示当前属性为对象, 并且指定多个key, 且值为 @name
  • @name: 数据规则

规则使用

mock("@name")
=> 'Ruihuag'

name|number

 mock({ 'name': '@name' })
 mock({ 'name|1': 1 })
 mock({ 'name|1': '@name' })
 mock({ 'name|3': '@name' })
 mock({ 'name|3': 1 })
 =>
  { name: 'Ruihuag' }
  { name: 1 }
  { name: 'Jose' }
  { name: 'FrankGaryDavid' }
  { name: 4 }

范围 name|2-222

mock({"name|3-5":"@name"})
=> { name: [ 'Jeffrey', 'Jose', 'Gary', 'William' ] }

指定数量 name|12

mock({"name|3":"@name"})
=>  { name: [ 'Christopher', 'Daniel', 'Richard' ] }

多用一

基础使用 {'name||key1,key2,key3':'@name'}

{name: { key1: 'Mark', key2: 'Jason', key3: 'Thomas' }}

指定数量 {'name|2|key1,key2,key3': "@name"}

{
  name: [
    { key1: 'Mark', key2: 'Donald', key3: 'Michael' },
    { key1: 'George', key2: 'Jose', key3: 'Edward' },
  ]
}

数量范围组 {'name|2-5|key1,key2,key3': "@name"}

{
  name: [
    { key1: 'Jason', key2: 'Kenneth', key3: 'Scott' },
    { key1: 'Mark', key2: 'Donald', key3: 'Michael' },
    { key1: 'George', key2: 'Jose', key3: 'Edward' },
  ]
}

多用一 并转子串

基础 {'name||key1,key2,key3|JsonString':'@name'}

{
  name: '{"key1":"Joseph","key2":"Michael","key3":"Jose"}'
}

指定数量 {'name|2|key1,key2,key3|JsonString': "@name"}

{
  name: '[{"key1":"Anthony","key2":"Eric","key3":"Edward"},{"key1":"Thomas","key2":"Eric","key3":"Edward"}]'
}

数量范围 {'name|2-5|key1,key2,key3|JsonString': "@name"}

{ name: '{"key1":"James","key2":"Jeffrey","key3":"William"}' }

自定义规则

  • 优先级最高, 会覆盖包原本规则
import { mock, initDictionary, dictionary } from '../src'

// 可以查看已经设置的规则字典
dictionary

initDictionary({
  'aaa': 'ababab',
  'bbb': function (a = '1', b = '2') {
    return a + '---' + b
  }
})

mock('@bbb(123,456)') // 123---456
mock('@aaa') // ababab

操作符

基础数据类型

操作符描述结果
@char字符A
@boolean布尔值true
@string字符串wg0DGEE1s[
@string(3,5)指定范围长度字符串wg0D
@num数字520
@num(5,10)指定范围数字5
@num(5-10.1-2)指定范围数字, 和小数点位数5.1
@float浮点型13.14

名称

操作符描述结果
@name英文名Ruihuag
@cname中文名关瑞毕
@first英文名称的名Sandra
@last英文名称的姓Jose
@cfirst中文姓
@clast中文名瑞毕

文本

操作符描述结果
@title标题土好保观
@title(3,30)标题传年圆美石所技道只式器知老引明说外海专性油复队运构科文重
@cword中文字
@sentence(2)句子Enim ad aute eiusmod enim occaecat. Aliqua anim dolore eiusmod officia commodo amet nostrud.
@sent(2)Enim ad aute eiusmod enim occaecat. Aliqua anim dolore eiusmod officia commodo amet nostrud.
@paragraph(2)自然段    Laboris ex ad duis ... eiusmod ipsum exercitation.    Eiusmod minim aliqua dolor nostrud et. ... cupidatat dolore consequat dolor.
@para(2)自然段    Laboris ex ad duis reprehenderit deserunt enim. In laboris ... dolor.

居住地址

操作描述结果
region地区西北
province广东省
city城市韶关市
district区域洮北区
address地址安徽省宣城市宣州区1d8街道6e路69号99栋36单元78号
address(RR PP CC DD)地址(指定格式)东北 山西省 吕梁市 汾阳市

补充:

  • RR: 地区
  • PP: 省
  • CC: 城市
  • DD: 地区

其他地址

操作描述结果
@ipip242.86.47.174
@ip6()ipv6e60b:3d50:be5c:ea37:3005:8a35:846e:1aeb
@domainweb地址opubztw.xxq
@email邮箱cxydhhsfxqzki@nipik.ftnyl

颜色

  • 待开发
  • color, hex, rgb, rgba, hsl

图片

@image([text[,size[,background[,foreground[,format]]]]])

  • 图片链接
  • text = '': 文字
  • size = '200x200' :图片大小
  • background = '000': 背景图片
  • foreground = 'fff': 文字颜色
  • format: '' | 'png' | 'gif' | 'jpg' = '' : 图片格式

时间

操作符描述结果
@now现在2022-06-08 16:58:16
@now(YYYY-MM-DD HH:mm:ss)现在2022-06-08 16:58:16
@date日期2021-09-27
@date(YYYY-MM-DD)日期2022-03-28
@date(YYYY-MM-DD HH:mm:ss)日期2020-03-24 22:58:16
@time时间22:58:16
@time(HH:mm:ss)时间04:58:16
@time(YYYY-MM-DD HH:mm:ss)时间2020-06-27 22:58:16
@timeStamp时间戳1604703768135
@nowTimeStamp当前时间时间戳1604703768135

特殊

操作符描述结果
@idid3191230364936506
@uuiduuid326be748-57bd-c2d0-84f4-99bb488a4292
@uuid(xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx)uuid326be748-57bd-c2d0-84f4-99bb488a4292
2.0.3

2 months ago

2.0.4

2 months ago

2.0.2

2 months ago

2.0.1

2 months ago

2.0.0

2 months ago

1.0.1

6 months ago

1.0.0

10 months ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.0

1 year ago