@kamuisdo/mock-api
v1.0.0
Published
create mock router from api code automatically
Downloads
2
Readme
mock-api
Install
npm i @kamuisdo/mock-api --save
pnpm add @kamuisdo/mock-api
Introduce
- 备注字段的MOCK规则
- 默认读取每个字段的第一条备注作为mock的规则
- 以
:
分隔字段规则和random内容 - 注释中的规则优先级高于Typescript中的类型,但如果Typescript中定义的是数组,就会默认转变成数组规则
- random的写法参照MOCKJS文档
export function login(param): Promise<{
/** @email */
param1: string,
/** +1: @datetime */
param2: string[],
/** 1-10: [@email] */
param3: User[],
/** 固定值 */
param4: string
}> {
// ...
}
处理之后变成
router.get('/login',function (req,res,next){
res.locals.data = {
"param1":"@email",
"param2|+1":"@datetime",
"param3|1-10":["@email"],
"param4":"固定值",
}
res.locals.error = false
res.locals.businessError = false
next()
})
- 没有加备注的情况按照如下规则转换
- string --> @word
- number --> @natural
- boolean --> @boolean
- any --> @word
- Object --> "{}"
- void --> null
- null --> null
- undefined --> undefined
- never --> null
- Tuple --> TODO
- 如果是可空的字段,mockJS没法mock随机的null值,所以在需要null值的情况时,需要手动修改备注为如下
export function login(param): Promise<{
/** null */
param1: string
}> {
// ...
}
不支持的内容
type
和Interface
都要定义内容,不能作为枚举使用
// 无法识别
interface Color{
red,
blue
}
type Color = {
red,
blue
}
// 需要写成
enum Color {Red, Green, Blue}
- 高级类型无法识别,如 Union类型