UNPKG

@kadena/kadena-cli

Version:

Kadena CLI tool to interact with the Kadena blockchain (manage keys, transactions, etc.)

39 lines 1.92 kB
import { HttpResponse, bypass, http } from 'msw'; import { setupServer } from 'msw/node'; import { log } from '../utils/logger.js'; import { testNetworkConfigMock } from './network.js'; const createHandler = ({ network = testNetworkConfigMock, endpoint = 'local', chainId = '1', status = 200, method = 'post', response, printOriginalResponse = false, }) => { const url = `${network.networkHost}/chainweb/0.0/${network.networkId}/chain/${chainId}/pact/api/v1/${endpoint}`; return http[method](url, async (info) => { if (printOriginalResponse === true) { const result = await fetch(bypass(info.request)); log.info(`MSW bypass response:\n${await result.text()}\n`); } if (typeof response === 'string' || response === undefined || response === null) { return new HttpResponse(response, { status }); } // eslint-disable-next-line @typescript-eslint/no-explicit-any return HttpResponse.json(response, { status }); }); }; const createDynamicHandler = ({ network = testNetworkConfigMock, chainId = '1', endpoint = 'local', method = 'post', getResponse, }) => { const url = `${network.networkHost}/chainweb/0.0/${network.networkId}/chain/${chainId}/pact/api/v1/${endpoint}`; return http[method](url, async ({ request }) => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const response = (await getResponse(request)); return HttpResponse.json(...response); }); }; const server = setupServer(); const useMswHandler = (options) => { const handler = createHandler(options); server.use(handler); }; const useMswDynamicHandler = (options) => { const handler = createDynamicHandler(options); server.use(handler); }; export { createDynamicHandler, createHandler, server, useMswDynamicHandler, useMswHandler, }; //# sourceMappingURL=server.js.map