fakie

1.1.0 • Public • Published

fakie

MOCK API MADE EASY Simple server or fetch mock up API powered by faker.js and express.

npm i -S fakie
  • Need a mock API with random content? templates
  • Wanna use it as a standalone server? FakieServer
  • Wanna use it as a router in express? createRouter
  • Wanna use it as a fetch mock up directly in the client? FakieClient

Templates

const { fakie } = require('fakie');
 
const getAllUsers = fakie({
  users: fakie.array(
    {
      name: 'userName',
      bday: 'past',
      loves: 'abbreviation'
    },
    3, // min entries, defaults to 5
    5, // max entries, defaults to 10
  ),
  id: 'uuid'
});
 
const getUser = fakie({
  // functions are called with the request object
  username: (request) => request.params.username,
  avatar: 'avatar',
  friends: fakie.array('userName')
});

FakieServer

const { FakieServer } = require('fakie');
 
const server = new FakieServer({
  // locale: localizes some of the values e.g. the names
  locale: 'de',
  // seed: number other than 0 - enforces to receive always the same results  !!! doesn't work with dates !!!
  seed: 11092323,
  routes: [
    {
      methods: ['GET'],
      path: '/users',
      // handler: template object or function
      handler: getAllUsers,
    },
    {
      methods: ['GET'],
      path: '/user/:username',
      // handler: template object or function
      handler: getUser,
    }
  ]
});
 
server.listen(/*port*/);

as router

const { FakieServer, FakieClient } = require('fakie');
 
// via createRouter
const routerA = FakieServer.createRouter(new FakieClient(/*config*/));
// via FakieServer instance
const routerB = new FakieServer(/*config*/).router;

FakieClient

const { FakieClient } = require('fakie');
 
const client = new FakieClient({
  host: 'http://localhost',
  routes: [
    {
      path: '/users',
      handler: getAllUsers,
    }
  ]
});
 
client.fetch('http://localhost/users', { method: 'GET' })
  .then(
    response =>
      console.log(response.json())
  );

Package Sidebar

Install

npm i fakie

Weekly Downloads

7

Version

1.1.0

License

AGPLv3

Unpacked Size

43.2 kB

Total Files

8

Last publish

Collaborators

  • shynrou