UNPKG

@zimic/interceptor

Version:

Next-gen TypeScript-first HTTP intercepting and mocking

1 lines 5.77 kB
{"version":3,"sources":["../../scripts/postinstall.ts"],"names":[],"mappings":";;;;AAQO,IAAM,kBAAA,GAAqB,KAAK,IAAA,CAAK,SAAA,CAAQ,QAAQ,KAAK,CAAA,EAAG,IAAA,EAAM,IAAA,EAAM,IAAI;AAE7E,IAAM,gBAAA,GAAmB,IAAA,CAAK,IAAA,CAAK,kBAAA,EAAoB,cAAc;AAErE,IAAM,kBAAA,GAAqB,IAAA,CAAK,IAAA,CAAK,kBAAA,EAAoB,OAAO,MAAM;AAE7E,eAAe,eAAA,GAAkB;AAC/B,EAAA,MAAM,4BAA4B,MAAM,EAAA,CAAG,QAAA,CAAS,QAAA,CAAS,kBAAkB,OAAO,CAAA;AACtF,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,KAAA,CAAM,yBAAyB,CAAA;AAE9D,EAAA,MAAM,cAAA,GAAiB,iBAAA,CAAkB,OAAA,CAAQ,WAAW,CAAA;AAK5D,EAAA,MAAM,WAAA,GAAc,iBAAA,CAAkB,OAAA,CAAQ,QAAQ,CAAA;AAKtD,EAAA,cAAA,CAAe,OAAO,WAAA,CAAY,IAAA;AAClC,EAAA,WAAA,CAAY,UAAU,cAAA,CAAe,OAAA;AAErC,EAAA,MAAM,gCAAA,GAAmC,IAAA,CAAK,SAAA,CAAU,iBAAA,EAAmB,MAAM,CAAC,CAAA;AAClF,EAAA,MAAM,EAAA,CAAG,QAAA,CAAS,SAAA,CAAU,gBAAA,EAAkB,gCAAgC,CAAA;AAChF;AAnBe,MAAA,CAAA,eAAA,EAAA,iBAAA,CAAA;AAsBf,eAAe,iCAAA,GAAoC;AACjD,EAAA,MAAM,OAAA,CAAQ,GAAA;AAAA,IACZ,CAAC,OAAA,EAAS,QAAQ,CAAA,CAAE,GAAA,CAAI,OAAO,iBAAA,KAAsB;AACnD,MAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,IAAA,CAAK,kBAAA,EAAoB,iBAAiB,CAAA;AACxE,MAAA,MAAM,sBAAsB,MAAM,EAAA,CAAG,QAAA,CAAS,QAAA,CAAS,kBAAkB,OAAO,CAAA;AAEhF,MAAA,MAAM,6BAA6B,mBAAA,CAChC,OAAA;AAAA,QACC;AAAA,UACE,gFAAA;AAAA,UACA,sDAAA;AAAA,UACA,6BAAA;AAAA,UACA;AAAA,SACF,CAAE,KAAK,IAAI,CAAA;AAAA,QACX;AAAA,OACF,CACC,OAAA;AAAA,QACC;AAAA,UACE,MAAA;AAAA,UACA;AAAA,SACF,CAAE,KAAK,IAAI,CAAA;AAAA,QACX;AAAA,UACE,MAAA;AAAA,UACA,4BAAA;AAAA,UACA,8EAAA;AAAA,UACA,0DAAA;AAAA,UACA,iCAAA;AAAA,UACA,OAAA;AAAA,UACA,KAAA;AAAA,UACA;AAAA,SACF,CAAE,KAAK,IAAI;AAAA,OACb,CACC,OAAA;AAAA,QACC,CAAC,MAAA,EAAQ,uEAAuE,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,QAC3F;AAAA,UACE,MAAA;AAAA,UACA,4BAAA;AAAA,UACA,8EAAA;AAAA,UACA,0DAAA;AAAA,UACA,iCAAA;AAAA,UACA,OAAA;AAAA,UACA,KAAA;AAAA,UACA;AAAA,SACF,CAAE,KAAK,IAAI;AAAA,OACb;AAEF,MAAA,MAAM,EAAA,CAAG,QAAA,CAAS,SAAA,CAAU,gBAAA,EAAkB,0BAA0B,CAAA;AAAA,KACzE;AAAA,GACH;AACF;AAjDe,MAAA,CAAA,iCAAA,EAAA,mCAAA,CAAA;AAmDf,eAAe,WAAA,GAAc;AAC3B,EAAA,MAAM,QAAQ,GAAA,CAAI,CAAC,iBAAgB,EAAG,iCAAA,EAAmC,CAAC,CAAA;AAC5E;AAFe,MAAA,CAAA,WAAA,EAAA,aAAA,CAAA;AAIR,IAAM,qBAAqB,WAAA","file":"postinstall.mjs","sourcesContent":["import { Override } from '@zimic/utils/types';\nimport fs from 'fs';\nimport type mswPackage from 'msw/package.json';\nimport path from 'path';\n\nexport type MSWPackage = typeof mswPackage;\nexport type MSWExports = MSWPackage['exports'];\n\nexport const MSW_ROOT_DIRECTORY = path.join(require.resolve('msw'), '..', '..', '..');\n\nexport const MSW_PACKAGE_PATH = path.join(MSW_ROOT_DIRECTORY, 'package.json');\n\nexport const MSW_CORE_DIRECTORY = path.join(MSW_ROOT_DIRECTORY, 'lib', 'core');\n\nasync function patchMSWExports() {\n const mswPackageContentAsString = await fs.promises.readFile(MSW_PACKAGE_PATH, 'utf-8');\n const mswPackageContent = JSON.parse(mswPackageContentAsString) as MSWPackage;\n\n const browserExports = mswPackageContent.exports['./browser'] as Override<\n MSWExports['./browser'],\n { node: MSWExports['./node']['node'] | string | null }\n >;\n\n const nodeExports = mswPackageContent.exports['./node'] as Override<\n MSWExports['./node'],\n { browser: MSWExports['./browser']['browser'] | string | null }\n >;\n\n browserExports.node = nodeExports.node;\n nodeExports.browser = browserExports.browser;\n\n const patchedMSWPackageContentAsString = JSON.stringify(mswPackageContent, null, 2);\n await fs.promises.writeFile(MSW_PACKAGE_PATH, patchedMSWPackageContentAsString);\n}\n\n// This is a temporary workaround. Once https://github.com/stackblitz/core/issues/3323 is fixed, we should remove it.\nasync function patchMSWWebSocketBroadcastChannel() {\n await Promise.all(\n ['ws.js', 'ws.mjs'].map(async (webSocketFileName) => {\n const mswWebSocketPath = path.join(MSW_CORE_DIRECTORY, webSocketFileName);\n const mswWebSocketContent = await fs.promises.readFile(mswWebSocketPath, 'utf-8');\n\n const patchedMSWWebSocketContent = mswWebSocketContent\n .replace(\n [\n 'const webSocketChannel = new BroadcastChannel(\"msw:websocket-client-manager\");',\n 'if (isBroadcastChannelWithUnref(webSocketChannel)) {',\n ' webSocketChannel.unref();',\n '}',\n ].join('\\n'),\n 'let webSocketChannel;',\n )\n .replace(\n [\n ' );',\n ' const clientManager = new import_WebSocketClientManager.WebSocketClientManager(webSocketChannel);',\n ].join('\\n'),\n [\n ' );',\n ' if (!webSocketChannel) {',\n ' webSocketChannel = new BroadcastChannel(\"msw:websocket-client-manager\");',\n ' if (isBroadcastChannelWithUnref(webSocketChannel)) {',\n ' webSocketChannel.unref();',\n ' }',\n ' }',\n ' const clientManager = new import_WebSocketClientManager.WebSocketClientManager(webSocketChannel);',\n ].join('\\n'),\n )\n .replace(\n [' );', ' const clientManager = new WebSocketClientManager(webSocketChannel);'].join('\\n'),\n [\n ' );',\n ' if (!webSocketChannel) {',\n ' webSocketChannel = new BroadcastChannel(\"msw:websocket-client-manager\");',\n ' if (isBroadcastChannelWithUnref(webSocketChannel)) {',\n ' webSocketChannel.unref();',\n ' }',\n ' }',\n ' const clientManager = new WebSocketClientManager(webSocketChannel);',\n ].join('\\n'),\n );\n\n await fs.promises.writeFile(mswWebSocketPath, patchedMSWWebSocketContent);\n }),\n );\n}\n\nasync function postinstall() {\n await Promise.all([patchMSWExports(), patchMSWWebSocketBroadcastChannel()]);\n}\n\nexport const postinstallPromise = postinstall();\n"]}