# yuki-mock

You can install professor level

# install 
$ npm install yuki-mock -D 
#
OR
#
$ yarn add yuki-mock -D

# running

// package.json
```
"scripts": {
    "mock:dev": "yuki-mock dev",
    "mock:start": "yuki-mock start"
} 
```
// cmd
```
npx yuki-mock start | npx yuki-mock dev
```
// 可在根目录添加 mock.config.js 修改端口号及协议等 默认8888
// mock.config.js
```
module.exports = {
    local: {
        open: true,
        port: 8888
    },
    // http:{
    //     open:false,
    //     port:80
    // },
    // https:{
    //     open:false,
    //     port:443
    // }
}
```
# 随机函数方法

handleRandom：
 * 生成随机数
 * @param {number} n
 * @returns number

randomArrayText：
 * @param {array} textArr 字符串数据模板
 * @param {number} nums 次数
 * @returns array

splitText:
 * @param {string} text 文本
 * @param {*} separator 分隔符

uuid:
 * 随机uuid
 * @returns string

randomText:
 * @param {array} textArr 字符串数据模板
 * @returns string

randomNumber:
 * @param {number} maxNumber 随机最大的数值
 * @returns number

randomEnum:
 * @param {array} enums 枚举模板数组
 * @returns number

randomBoolean:
 * 随机布尔值

randomObject:
 * @param {array} textArr 字符串模板数组
 * @param {object} payload 生成的对象类型
 * @param {function} createRandomData 创建随机数据方法
 * @returns string | number | array

createRandomData:
* @param {array} textArr 字符串模板数组
 * @param {object} objType 生成的对象类型
 * @param {number} nums 生成多少个
 * @returns array


```
    module.exports = {
        handleRandom, // 生成随机数
        randomArrayText, // 生成随机字符串数组
        splitText, // 根据不同分隔符分割文本成数组
        uuid, //随机uuid
        randomText, // 随机字符串
        randomNumber, // 随机数字
        randomEnum, // 随机枚举值
        randomBoolean, // 随机布尔值
        randomObject, // 随机对象
        createRandomData // 生成随机数据方法
    }
```
# Example:
```
在自己项目根目录创建mock(该名称必须为mock)文件夹，再创建文件夹，该文件夹名称为路由接口，比如v2(任意) , 再创建接口文件，比如test.js(名称随意， 除common, 该文件可做统一拦截)
// mock/v2/test.js   postman访问 http://localhost:8888/v2/test

const express = require("express")
const router = express.Router()
const {createRandomData, randomObject} = require('yuki-mock')
router.get("/", (req, res, next) => {
    const textArr = ['只要你爱', '我愿', '我就全给', '给你百合花般的唇', '给你常青藤般的臂']
    const data = createRandomData(textArr, {
        id: {
            type: 'uuid'
        },
        name: {
            type: 'string',
            template: textArr
        },
        number: {
            type: 'number',
            count: 10
        },
        status: {
            type: 'enum',
            template: [10, 20, 30, 40]
        },
        bl: {
            type: 'boolean'
        },
        tag: {
            type: 'array',
            template: textArr,
            count: 3
        },
        obj: {
            type: 'object',
            template: textArr,
            payload: {
                id: {
                    type: 'uuid'
                },
                number: {
                    type: 'number',
                    count: 10
                }
            }
        },
        data: {
            type: 'randomData',
            template: textArr,
            payload: {
                id: {
                    type: 'uuid'
                },
                name: {
                    type: 'string',
                    template: textArr
                },
                number: {
                    type: 'number',
                    count: 10
                }
            },
            count: 10
        }
    }, 100)
    res.send({err: 0, msg: "tools", array: data, object: randomObject(textArr, {
        id: {
            type: 'uuid'
        },
        name: {
            type: 'string',
            template: textArr
        },
        number: {
            type: 'number',
            count: 10
        }
    })})
})

module.exports = router
```
