Blame view
mock/index.js
1.82 KB
80a28914e init |
1 |
import Mock from 'mockjs' |
d7d9c38c2 auto commit the c... |
2 |
import { param2Obj } from '../src/utils' |
80a28914e init |
3 4 |
import user from './user' |
d7d9c38c2 auto commit the c... |
5 6 7 |
import role from './role' import article from './article' import search from './remote-search' |
80a28914e init |
8 9 10 |
const mocks = [ ...user, |
d7d9c38c2 auto commit the c... |
11 12 13 |
...role, ...article, ...search |
80a28914e init |
14 15 16 17 18 19 20 21 22 |
] // for front mock // please use it cautiously, it will redefine XMLHttpRequest, // which will cause many of your third-party libraries to be invalidated(like progress event). export function mockXHR() { // mock patch // https://github.com/nuysoft/Mock/issues/300 Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send |
d7d9c38c2 auto commit the c... |
23 |
Mock.XHR.prototype.send = function() { |
80a28914e init |
24 25 26 27 28 29 30 31 32 33 34 |
if (this.custom.xhr) { this.custom.xhr.withCredentials = this.withCredentials || false if (this.responseType) { this.custom.xhr.responseType = this.responseType } } this.proxy_send(...arguments) } function XHR2ExpressReqWrap(respond) { |
d7d9c38c2 auto commit the c... |
35 |
return function(options) { |
80a28914e init |
36 37 |
let result = null if (respond instanceof Function) { |
d7d9c38c2 auto commit the c... |
38 |
const { body, type, url } = options |
80a28914e init |
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
// https://expressjs.com/en/4x/api.html#req result = respond({ method: type, body: JSON.parse(body), query: param2Obj(url) }) } else { result = respond } return Mock.mock(result) } } for (const i of mocks) { Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response)) } } // for mock server const responseFake = (url, type, respond) => { return { url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`), type: type || 'get', response(req, res) { console.log('request invoke:' + req.path) res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond)) } } } export default mocks.map(route => { return responseFake(route.url, route.type, route.response) }) |