@zimic/interceptor
Version:
Next-gen TypeScript-first HTTP intercepting and mocking
80 lines (75 loc) • 3.6 kB
JavaScript
;
var chunkDGUM43GV_js = require('../chunk-DGUM43GV.js');
var fs = require('fs');
var path = require('path');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var fs__default = /*#__PURE__*/_interopDefault(fs);
var path__default = /*#__PURE__*/_interopDefault(path);
var MSW_ROOT_DIRECTORY = path__default.default.join(chunkDGUM43GV_js.__require.resolve("msw"), "..", "..", "..");
var MSW_PACKAGE_PATH = path__default.default.join(MSW_ROOT_DIRECTORY, "package.json");
var MSW_CORE_DIRECTORY = path__default.default.join(MSW_ROOT_DIRECTORY, "lib", "core");
async function patchMSWExports() {
const mswPackageContentAsString = await fs__default.default.promises.readFile(MSW_PACKAGE_PATH, "utf-8");
const mswPackageContent = JSON.parse(mswPackageContentAsString);
const browserExports = mswPackageContent.exports["./browser"];
const nodeExports = mswPackageContent.exports["./node"];
browserExports.node = nodeExports.node;
nodeExports.browser = browserExports.browser;
const patchedMSWPackageContentAsString = JSON.stringify(mswPackageContent, null, 2);
await fs__default.default.promises.writeFile(MSW_PACKAGE_PATH, patchedMSWPackageContentAsString);
}
async function patchMSWWebSocketBroadcastChannel() {
await Promise.all(
["ws.js", "ws.mjs"].map(async (webSocketFileName) => {
const mswWebSocketPath = path__default.default.join(MSW_CORE_DIRECTORY, webSocketFileName);
const mswWebSocketContent = await fs__default.default.promises.readFile(mswWebSocketPath, "utf-8");
const patchedMSWWebSocketContent = mswWebSocketContent.replace(
[
'const webSocketChannel = new BroadcastChannel("msw:websocket-client-manager");',
"if (isBroadcastChannelWithUnref(webSocketChannel)) {",
" webSocketChannel.unref();",
"}"
].join("\n"),
"let webSocketChannel;"
).replace(
[
" );",
" const clientManager = new import_WebSocketClientManager.WebSocketClientManager(webSocketChannel);"
].join("\n"),
[
" );",
" if (!webSocketChannel) {",
' webSocketChannel = new BroadcastChannel("msw:websocket-client-manager");',
" if (isBroadcastChannelWithUnref(webSocketChannel)) {",
" webSocketChannel.unref();",
" }",
" }",
" const clientManager = new import_WebSocketClientManager.WebSocketClientManager(webSocketChannel);"
].join("\n")
).replace(
[" );", " const clientManager = new WebSocketClientManager(webSocketChannel);"].join("\n"),
[
" );",
" if (!webSocketChannel) {",
' webSocketChannel = new BroadcastChannel("msw:websocket-client-manager");',
" if (isBroadcastChannelWithUnref(webSocketChannel)) {",
" webSocketChannel.unref();",
" }",
" }",
" const clientManager = new WebSocketClientManager(webSocketChannel);"
].join("\n")
);
await fs__default.default.promises.writeFile(mswWebSocketPath, patchedMSWWebSocketContent);
})
);
}
async function postinstall() {
await Promise.all([patchMSWExports(), patchMSWWebSocketBroadcastChannel()]);
}
var postinstallPromise = postinstall();
exports.MSW_CORE_DIRECTORY = MSW_CORE_DIRECTORY;
exports.MSW_PACKAGE_PATH = MSW_PACKAGE_PATH;
exports.MSW_ROOT_DIRECTORY = MSW_ROOT_DIRECTORY;
exports.postinstallPromise = postinstallPromise;
//# sourceMappingURL=postinstall.js.map
//# sourceMappingURL=postinstall.js.map