{"version":3,"file":"mock.cjs","sourceRoot":"","sources":["../../src/middleware/mock.ts"],"names":[],"mappings":";;;AAAA,+DAGmC;AAInC,8CAAoE;AAEpE;;;;;GAKG;AACH,SAAgB,oBAAoB,CAClC,KAAY;IAEZ,OAAO,IAAA,uCAAqB,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,QAAQ,CAAC,IAAA,yBAAiB,EAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,CAAC;gBAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;gBACzB,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,IAAI,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAtBD,oDAsBC","sourcesContent":["import {\n  createAsyncMiddleware,\n  type JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport type { Store } from '../store';\nimport { getJsonRpcMocks, removeJsonRpcMock } from '../store/mocks';\n\n/**\n * Create a middleware for handling JSON-RPC methods that have been mocked.\n *\n * @param store - The Redux store to use.\n * @returns A middleware function.\n */\nexport function createMockMiddleware(\n  store: Store,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n  return createAsyncMiddleware(async (request, response, next) => {\n    const mocks = getJsonRpcMocks(store.getState());\n    const keys = Object.keys(mocks);\n    for (const key of keys) {\n      const { implementation, once } = mocks[key];\n      const result = await implementation(request);\n\n      if (result !== undefined) {\n        if (once) {\n          store.dispatch(removeJsonRpcMock(key));\n        }\n\n        response.result = result;\n        return;\n      }\n    }\n\n    await next();\n  });\n}\n"]}