fe-dev-server-plugin-mock
v0.2.2
Published
Mock plugin for fe-dev-server
Readme
fe-dev-server-plugin-mock
A plugin for JSON API mock
Config
dir
string - the location of mock files
defaultMockFileCfg
object - default config of mock file return
defaultMockFileCfg.delay: number - response delay time in milliseconds
defaultMockFileCfg.delayOffset: number - the maximum delay time offset in milliseconds
defaultMockFileCfg.headers: object - the extra response headers
mockFileKeyFormatter
function - change the mockFileKey for the request in order to use other mock file for response
({
// original: POST /api/users?_method=GET => /api/users/post.js
// formatted: POST /api/users?_method=GET => /api/users/get.js
mockFileKeyFormatter: ({ headers, pathname, method, search, originalMockKey }) => {
if (search._method) {
return {
method: search._method,
pathname,
};
}
return originalMockKey;
},
});forceEnable
boolean - when true, ignore the enable field in individual mock files and force all mocks to take effect. Useful for debugging or when you want to temporarily enable all mocks without modifying each file.
@default false
How to use
Create mock file in the configed directory (filepath format like ${pathanme}/${method}.js), mock plugin will reading these files and make response, for examples:
api/login/post.js
// should be active
exports.enable = true;
exports.mock = ({ request, params, query, body, method, headers }) => ({
// response data
data: {},
// the response will be delayed in 90~110 ms
delay: 100,
delayOffset: 10,
// extra headers
headers: {
'custom-header': 'value',
},
// response status code
statusCode: 200,
});Also, dynamic params in route is supported, for examples, api/users/{id}.js will make response to /api/users/1 or /api/users/2. And you will get params { id: 1 / 2 } in mockFile's mock function.
Any request can not find specify mock file or mock file is inactive, it will be skipped to next plugin.
