fe-dev-server-plugin-mock
TypeScript icon, indicating that this package has built-in type declarations

0.0.21 • Public • Published

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;
  },
});

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.

Package Sidebar

Install

npm i fe-dev-server-plugin-mock

Weekly Downloads

1

Version

0.0.21

License

ISC

Unpacked Size

99.9 kB

Total Files

24

Last publish

Collaborators

  • zlcatwu