index.js 1.5 KB

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