index.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const jsonServer = require('json-server');
  2. const _ = require('lodash');
  3. const clusters = require('./payload/clusters.json');
  4. const brokers = require('./payload/brokers.json');
  5. const brokerMetrics = require('./payload/brokerMetrics.json');
  6. const topics = require('./payload/topics.json');
  7. const topicDetails = require('./payload/topicDetails.json');
  8. const topicConfigs = require('./payload/topicConfigs.json');
  9. const db = {
  10. clusters,
  11. brokers,
  12. brokerMetrics: brokerMetrics.map(({ clusterId, ...rest }) => ({ ...rest, id: clusterId })),
  13. topics: topics.map((topic) => ({ ...topic, id: topic.name })),
  14. topicDetails,
  15. topicConfigs,
  16. }
  17. const server = jsonServer.create();
  18. const router = jsonServer.router(db);
  19. const middlewares = jsonServer.defaults();
  20. const PORT = 3004;
  21. const DELAY = 0;
  22. server.use(middlewares);
  23. server.use((_req, _res, next) => {
  24. setTimeout(next, DELAY);
  25. });
  26. server.use(
  27. jsonServer.rewriter({
  28. '/*': '/$1',
  29. '/clusters/:clusterId/metrics/broker': '/brokerMetrics/:clusterId',
  30. '/clusters/:clusterId/topics/:id': '/topicDetails',
  31. '/clusters/:clusterId/topics/:id/config': '/topicDetails',
  32. '/clusters/:clusterId/topics/:id/config': '/topicConfigs',
  33. })
  34. );
  35. server.use(router);
  36. server.listen(PORT, () => {
  37. console.log('JSON Server is running');
  38. });