{"_id":"@byeyb/mock","name":"@byeyb/mock","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@byeyb/mock","version":"1.0.0","type":"module","description":"生成随机数据","keywords":["mock","random"],"main":"dist/index.js","scripts":{"build":"rollup -c"},"repository":{"type":"git","url":"git+https://github.com/vpsvl/mock.git"},"author":{"name":"vpsvl"},"license":"MIT","bugs":{"url":"https://github.com/vpsvl/mock/issues"},"homepage":"https://github.com/vpsvl/mock#readme","devDependencies":{"@rollup/plugin-terser":"^0.4.4","rollup":"^4.56.0"},"engines":{"node":">=12.7.0"},"_id":"@byeyb/mock@1.0.0","gitHead":"c14ff5eeb0a91207991e25dd70bdac820db93ea6","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-iQyt9HaUnzHOx9uBHYkS2C8Bcu3eRtp8qO9277wnxlBtTUnMjYVWPxqMe4LJPHcPp9He0wCTKDbBMMO60oyZmA==","shasum":"f52956c7dc5b6ba79f57397b68a56bd2766f3d93","tarball":"https://registry.npmjs.org/@byeyb/mock/-/mock-1.0.0.tgz","fileCount":5,"unpackedSize":109218,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDthX6GbXB2sP7yvRt+gkt7nQsmjnUhKqC8A3VR9TQoWAIgCiNStDKzjf5AX6E9+SN/q5krFHrQG4flUtyevRm6/Ms="}]},"_npmUser":{"name":"shijie","email":"shijie@stu.xmu.edu.cn"},"directories":{},"maintainers":[{"name":"shijie","email":"shijie@stu.xmu.edu.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mock_1.0.0_1769238672421_0.1928566414960604"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-24T07:11:12.315Z","1.0.0":"2026-01-24T07:11:12.572Z","modified":"2026-01-24T07:11:12.790Z"},"maintainers":[{"name":"shijie","email":"shijie@stu.xmu.edu.cn"}],"description":"生成随机数据","homepage":"https://github.com/vpsvl/mock#readme","keywords":["mock","random"],"repository":{"type":"git","url":"git+https://github.com/vpsvl/mock.git"},"author":{"name":"vpsvl"},"bugs":{"url":"https://github.com/vpsvl/mock/issues"},"license":"MIT","readme":"# mock\r\n\r\n## 安装\r\n\r\n```\r\nnpm install @byeyb/mock -D\r\n```\r\n\r\n## 使用\r\n\r\n```javascript\r\nimport Mock from '@byeyb/mock';\r\n\r\n// 扩展占位符方法直接在Mock.random上定义方法即可, 属性名必须以custom开头\r\nMock.random.customExample = () => Mock.random.pick(['成功', '失败']);\r\n\r\nconst data = Mock.mock({\r\n  code: '200',\r\n  data: {\r\n    'list|1-5': [\r\n      {\r\n        'id|+1': 1,\r\n        name: '@cname',\r\n      },\r\n    ],\r\n  },\r\n  message: '@customExample'\r\n});\r\n```\r\n\r\n## 一、数据模板定义\r\n\r\n数据模板中的每个属性由3部分构成： 属性名name, 生成规则rule(可选), 属性值value。\r\n```\r\n'name|rule': value\r\n```\r\n* 属性名 和 生成规则 之间用竖线 | 分隔。\r\n* 生成规则 是可选的。\r\n* 生成规则 有7种格式：\r\n\r\n```\r\n'name|min-max': value\r\n'name|count': value\r\n'name|min-max.dmin-dmax': value\r\n'name|min-max.dcount': value\r\n'name|count.dmin-dmax': value\r\n'name|count.dcount': value\r\n'name|+step': value\r\n```\r\n\r\n1. 属性值是字符串 String\r\n\r\n```\r\n// 通过重复 string 生成一个字符串，重复次数大于等于 min，小于等于 max。\r\n'name|min-max': string\r\n\r\n// 通过重复 string 生成一个字符串，重复次数等于 count。\r\n'name|count': string\r\n```\r\n\r\n2. 属性值是数字 Number\r\n\r\n```\r\n// 属性值自动加 1，初始值为 number。\r\n'name|+1': number\r\n\r\n// 生成一个大于等于 min、小于等于 max 的整数，属性值 number 只是用来确定类型。\r\n'name|min-max': number\r\n\r\n// 生成一个浮点数，整数部分为count，小数部分保留dcount位。\r\n'name|count.dcount': number\r\n\r\n// 生成一个浮点数，整数部分大于等于 min、小于等于 max，小数部分保留 dmin 到 dmax 位。\r\n'name|min-max.dmin-dmax': number\r\n```\r\n\r\n3. 属性值是布尔型 Boolean\r\n\r\n```\r\n// 随机生成一个布尔值，值为 true和 false 的概率是 1/2。\r\n'name|1': boolean\r\n\r\n// 随机生成一个布尔值，值为 boolean 的概率是 min / (min + max)，值为 !boolean 的概率是 max / (min + max)。\r\n'name|min-max': boolean\r\n```\r\n\r\n4. 属性值是对象 Object\r\n\r\n```\r\n// 从属性值 object 中随机选取 count 个属性。\r\n'name|count': object\r\n\r\n// 从属性值 object 中随机选取 min 到 max 个属性。\r\n'name|min-max': object\r\n```\r\n\r\n5. 属性值是数组 Array\r\n   \r\n```\r\n// 通过重复 array 里的属性值生成一个新数组，重复次数为 count。\r\n'name|count': array\r\n\r\n// 通过重复 array 里的属性值生成一个新数组，重复次数大于等于 min，小于等于 max。\r\n'name|min-max': array\r\n\r\n// 从属性值 array 中顺序选取 1 个值。\r\n'name|+1': array\r\n```\r\n\r\n## 二、数据占位符定义\r\n\r\n* 用`@`来标识其后的字符串是 占位符。\r\n* 占位符 引用的是 `Mock.random` 中的方法。\r\n\r\n[//]: # (* 通过 Mock.Random.extend&#40;&#41; 来扩展自定义占位符。)\r\n\r\n`Mock.random`提供的完整占位符方法如下：\r\n\r\n### Basic\r\n\r\n#### 1. boolean / bool\r\n\r\n* @boolean()\r\n\r\n返回随机布尔值\r\n\r\n#### 2. natural\r\n\r\n* @natural()\r\n\r\n* @natural(min)\r\n\r\n* @natural(min, max)\r\n\r\n返回随机自然数\r\n\r\n参数min为最小值(不传默认0)，可选\r\n\r\n参数max为最大值，可选\r\n\r\n#### 3. integer / int\r\n\r\n* @integer()\r\n\r\n* @integer(min)\r\n\r\n* @integer(min, max)\r\n\r\n返回随机整数\r\n\r\n参数min为最小值，可选\r\n\r\n参数max为最大值，可选\r\n\r\n#### 4. float\r\n\r\n* @float()\r\n\r\n* @float(min, max, dmin, dmax)\r\n\r\n返回随机整数\r\n\r\n参数min为整数部分的最小值\r\n\r\n参数max为整数部分的最大值\r\n\r\n参数dmin为小数部分的最小位数\r\n\r\n参数dmax为小数部分的最大位数\r\n\r\n任意一个参数都可以省略，参数的意义按照以上顺序来\r\n\r\n#### 5. character / char\r\n\r\n* @character()\r\n\r\n* @character(pool)\r\n\r\n返回一个随机字符\r\n\r\n参数pool表示字符池，将从中选取一个，不传或者传入了`lower` 、 `upper`、`number`、`symbol`，表示从内置的字符池从选取：\r\n\r\n```\r\n{\r\n    lower: \"abcdefghijklmnopqrstuvwxyz\",\r\n    upper: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\r\n    number: \"0123456789\",\r\n    symbol: \"!@#$%^&*()[]\"\r\n }\r\n```\r\n\r\n#### 6.string\r\n\r\n* @string()\r\n\r\n* @string(length)\r\n\r\n* @string(pool, length)\r\n\r\n* @string(min, max)\r\n\r\n* @string(pool, min, max)\r\n\r\n返回一个随机字符串\r\n\r\n参数length表示字符串长度\r\n\r\n参数min表示字符串的最小长度\r\n\r\n参数max表示字符串的最大长度\r\n\r\n参数pool表示字符池，将从中选取一个，不传或者传入了`lower` 、 `upper`、`number`、`symbol`，表示从内置的字符池从选取：\r\n\r\n```\r\n{\r\n    lower: \"abcdefghijklmnopqrstuvwxyz\",\r\n    upper: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\r\n    number: \"0123456789\",\r\n    symbol: \"!@#$%^&*()[]\",\r\n}\r\n```\r\n\r\n#### 7. range\r\n\r\n* @range(start)\r\n\r\n* @range(start, stop)\r\n\r\n* @range(start, stop, step)\r\n\r\n返回一个随机整型数组\r\n\r\n参数start表示数组中整数的起始值，必选\r\n\r\n参数stop表示数组中整数的结束值，可选\r\n\r\n参数step表示数组中整数之间的差，可选\r\n\r\n### Date\r\n\r\n参数format都是表示日期格式，常用格式为`yyyy-MM-dd hh:mm:ss`，可根据日期类型从中选取一部分\r\n\r\n#### 1. date\r\n\r\n* @date()\r\n\r\n* @date(format)\r\n\r\n返回一个随机日期\r\n\r\n参数format默认格式为`yyyy-MM-dd`\r\n\r\n#### 2. time\r\n\r\n* @time()\r\n\r\n* @time(format)\r\n\r\n返回一个随机时间\r\n\r\n参数format默认格式为`hh:mm:ss`\r\n\r\n#### 3. datetime\r\n\r\n* @datetime()\r\n\r\n* @datetime(format)\r\n\r\n返回一个随机日期和时间\r\n\r\n参数format默认格式为`yyyy-MM-dd hh:mm:ss`\r\n\r\n#### 4. now\r\n\r\n* @now()\r\n\r\n* @now(format)\r\n\r\n返回当前时间\r\n\r\n参数format默认格式为`yyyy-MM-dd hh:mm:ss`\r\n\r\n### Image\r\n\r\n#### 1. image / img\r\n\r\n* @image()\r\n\r\n* @image(size)\r\n\r\n* @image(size, background)\r\n\r\n* @image(size, background, text)\r\n\r\n参数size表示图片的宽和高，格式为`宽x高`，不带单位，可选\r\n\r\n参数background表示图片的背景色，可选\r\n\r\n参数text表示图片上的文字。默认值为参数 size，可选\r\n\r\n### Color\r\n\r\n* @color(type)\r\n\r\n参数`type`可选`hex`, `rgb`, `rgba`, 默认`hex`\r\n\r\n* @hex()\r\n\r\n* @rgb()\r\n\r\n* @rgba()\r\n\r\n返回对应格式的随机色\r\n\r\n### Text\r\n\r\n所有英文格式的在前边加字母`c`表示对应的中文格式\r\n\r\n1. paragraph（返回英文）和 cparagraph（返回中文）\r\n\r\n* @paragraph()\r\n\r\n* @paragraph(length)\r\n\r\n* @paragraph(min, max)\r\n\r\n随机生成一个文本段落\r\n\r\n参数length表示段落中句子的个数\r\n\r\n参数min表示段落中句子的最小个数\r\n\r\n参数max表示段落中句子的最大个数\r\n\r\n2. sentence（返回英文）和 csentence（返回中文）\r\n\r\n* @sentence()\r\n\r\n* @sentence(length)\r\n\r\n* @sentence(min, max)\r\n\r\n随机生成一个句子\r\n\r\n参数length表示句子中单词的个数（中文是汉字的个数）\r\n\r\n参数min表示句子中单词的最小个数\r\n\r\n参数max表示句子中单词的最大个数\r\n\r\n3. word（返回英文）\r\n\r\n* @word()\r\n\r\n* @word(length)\r\n\r\n* @word(min, max)\r\n\r\n随机生成一个英文单词\r\n\r\n参数length表示单词中字母的个数\r\n\r\n参数min表示单词中字母的最小个数\r\n\r\n参数max表示单词中字母的最大个数\r\n\r\n4. cword（返回中文）\r\n\r\n* @cword()\r\n\r\n* @cword(pool)\r\n\r\n* @cword(length)\r\n\r\n* @cword(pool, length)\r\n\r\n* @cword(min, max)\r\n\r\n* @cword(pool, min, max)\r\n\r\n随机生成一个汉字字符串\r\n\r\n参数pool表示汉字字符池，可使用字符串自己定义\r\n\r\n参数length表示字符串中汉字的个数\r\n\r\n参数min表示字符串中汉字的最小个数\r\n\r\n参数max表示字符串中汉字的最大个数\r\n\r\n5. title（返回英文）和 ctitle（返回中文）\r\n\r\n* @title()\r\n\r\n* @title(length)\r\n\r\n* @title(min, max)\r\n\r\n随机生成一句标题，英文的每个单词的首字母大写。\r\n\r\n参数length表示标题中单词（汉字）的个数\r\n\r\n参数min表示标题中单词（汉字）的最小个数\r\n\r\n参数max表示标题中单词（汉字）的最大个数\r\n\r\n### Name\r\n\r\n* @first()\r\n\r\n随机生成一个常见英文名\r\n\r\n* @last()\r\n\r\n随机生成一个常见英文姓\r\n\r\n* @name()\r\n\r\n随机生成一个常见英文姓名\r\n\r\n* @cfirst()\r\n\r\n随机生成一个常见中文名\r\n\r\n* @clast()\r\n\r\n随机生成一个常见中文姓\r\n\r\n* @cname()\r\n\r\n随机生成一个常见中文姓名\r\n\r\n### Web\r\n\r\n1. url\r\n\r\n* @url()\r\n\r\n* @url(protocol)\r\n\r\n随机生成一个url\r\n\r\n参数protocol表示url协议，例如`http`\r\n\r\n2. email\r\n\r\n* @email()\r\n\r\n* @email(domain)\r\n\r\n随机生成一个email\r\n\r\n参数domain表示email的域名，即@后的部分\r\n\r\n### Address\r\n\r\n* @region()\r\n\r\n随机生成一个大区\r\n\r\n* @province()\r\n\r\n随机生成一个\r\n\r\n* @city()\r\n\r\n随机生成一个市，传入true会带上省\r\n\r\n* @county()\r\n\r\n随机生成一个县，传入true会带上省、市\r\n\r\n* @zip()\r\n\r\n随机生成一个邮编\r\n\r\n### Helper\r\n\r\n* @order(arg1, arg2, ...args)\r\n\r\n按照参数的顺序取值，取到最后一个后再从第一个开始取值\r\n\r\n* @pick(arg1, arg2, ...args)\r\n\r\n从参数数组中随机选取一个元素，并返回。\r\n\r\n* @guid()\r\n\r\n随机生成一个guid，类似uuid\r\n\r\n* @id()\r\n\r\n随机生成一个18位的身份证号\r\n","readmeFilename":"README.md","_rev":"1-49d628d0a27fad1171bc150f914709dc"}