UNPKG

@zohodesk/client_build_tool

Version:

A CLI tool to build web applications and client libraries

67 lines (51 loc) 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleMockApi = handleMockApi; exports.mockApiHandler = mockApiHandler; var _fs = require("fs"); var _httpProxyMiddleware = require("http-proxy-middleware"); var _constants = require("../constants"); var _logger = require("../../logger"); function mockApiHandler(app, options) { const { enable, separateSeverPort, mockEntryFile, mockPrefix } = options.mockServer; if (!enable) { return; } if (separateSeverPort) { app.use(mockPrefix, (0, _httpProxyMiddleware.createProxyMiddleware)({ // eslint-disable-next-line no-useless-concat target: 'ht' + `tp://localhost:${separateSeverPort}`, changeOrigin: true })); (0, _logger.messageLogger)(`Please make sure you run mock Server separately in specified port (${separateSeverPort})`); (0, _logger.messageLogger)(`If not running already you can run "cbt mock:server --mock_port=${separateSeverPort}"`); } else { // eslint-disable-next-line no-use-before-define handleMockApi(mockEntryFile, app); } } function handleMockApi(mockEntryFile, app) { const entryFilePath = (0, _constants.joinWithAppPath)(mockEntryFile); // eslint-disable-next-line no-use-before-define const mockFunc = safeRequire(entryFilePath); if (typeof mockFunc === 'function') { // eslint-disable-next-line no-use-before-define mockFunc(app); return; } mockFunc?.mockApi?.(app); } // function handleMockApi(params) { // } function safeRequire(entryFilePath) { if (!(0, _fs.existsSync)(entryFilePath)) { (0, _logger.errorLogger)(`${entryFilePath} file not exists for mockapi, Please check the file presence`); return null; } // eslint-disable-next-line import/no-dynamic-require, global-require return require(entryFilePath); }