Files
makemd/dashboard/public/mockServiceWorker.js
wurenzhi 1b14947e7b refactor: 优化代码结构和类型定义
feat(types): 添加express.d.ts类型引用
style: 格式化express.d.ts中的接口定义
refactor: 移除未使用的AntFC类型导入
chore: 删除自动生成的.umi-production文件
feat: 添加店铺管理相关表和初始化脚本
docs: 更新安全规则和交互指南文档
refactor: 统一使用FC类型替代React.FC
perf: 优化图表组件导入方式
style: 添加.prettierrc配置文件
refactor: 调整组件导入顺序和结构
feat: 添加平台库存管理路由
fix: 修复订单同步时的库存检查逻辑
docs: 更新RBAC设计和租户管理文档
refactor: 优化部门控制器代码
2026-03-30 01:20:57 +08:00

185 lines
4.3 KiB
JavaScript

/* eslint-disable */
/* tslint:disable */
/**
* Mock Service Worker
* @see https://mswjs.io
* - Please do NOT modify this file
* - Please do NOT serve this file on production
*/
const INTEGRITY_CHECKSUM = '7299013926a002954d549491a3946622';
const bypassHeaderName = 'x-msw-bypass';
let clients = new Set();
let workerId = Math.random().toString(36).substring(2, 15);
self.addEventListener('install', function () {
return self.skipWaiting();
});
self.addEventListener('activate', function (event) {
return event.waitUntil(self.clients.claim());
});
self.addEventListener('message', async function (event) {
const clientId = event.source.id;
const client = await self.clients.get(clientId);
if (!client) {
return;
}
switch (event.data.type) {
case 'KEEPALIVE_REQUEST': {
sendToClient(client, {
type: 'KEEPALIVE_RESPONSE',
});
break;
}
case 'INTEGRITY_CHECK_REQUEST': {
sendToClient(client, {
type: 'INTEGRITY_CHECK_RESPONSE',
payload: {
checksum: INTEGRITY_CHECKSUM,
},
});
break;
}
case 'MOCK_ACTIVATE': {
clients.add(clientId);
sendToClient(client, {
type: 'MOCKING_ENABLED',
payload: {
workerId,
},
});
break;
}
case 'MOCK_DEACTIVATE': {
clients.delete(clientId);
break;
}
default:
break;
}
});
self.addEventListener('fetch', function (event) {
const request = event.request;
const requestUrl = new URL(request.url);
// Bypass navigation requests.
if (request.mode === 'navigate') {
return;
}
// Bypass requests with the bypass header.
if (request.headers.get(bypassHeaderName) === 'true') {
const modifiedHeaders = new Headers(request.headers);
modifiedHeaders.delete(bypassHeaderName);
return event.respondWith(
fetch(request.url, {
...request,
headers: modifiedHeaders,
})
);
}
// Bypass non-GET requests when not in the workers list.
if (request.method !== 'GET' && !clients.has(event.clientId)) {
return;
}
// Bypass requests to non-relative URLs.
if (requestUrl.origin !== location.origin) {
return;
}
event.respondWith(
handleRequest(event)
.catch((error) => {
console.error('[MSW] Failed to handle request:', error);
return fetch(request);
})
);
});
async function handleRequest(event) {
const client = await self.clients.get(event.clientId);
if (!client) {
return fetch(event.request);
}
const response = await sendToClient(client, {
type: 'REQUEST',
payload: {
id: Math.random().toString(36).substring(2, 15),
url: event.request.url,
method: event.request.method,
headers: Object.fromEntries(event.request.headers.entries()),
cache: event.request.cache,
mode: event.request.mode,
credentials: event.request.credentials,
destination: event.request.destination,
integrity: event.request.integrity,
keepalive: event.request.keepalive,
referrer: event.request.referrer,
referrerPolicy: event.request.referrerPolicy,
body: await getRequestBody(event.request),
bodyUsed: event.request.bodyUsed,
redirect: event.request.redirect,
referrerPolicy: event.request.referrerPolicy,
signal: event.request.signal,
url: event.request.url,
method: event.request.method,
},
});
if (!response) {
return fetch(event.request);
}
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: response.headers,
});
}
function getRequestBody(request) {
const contentType = request.headers.get('content-type');
if (contentType && contentType.includes('application/json')) {
return request.clone().json();
}
if (contentType && contentType.includes('application/x-www-form-urlencoded')) {
return request.clone().formData();
}
return request.clone().text();
}
function sendToClient(client, message) {
return new Promise((resolve, reject) => {
const channel = new MessageChannel();
channel.port1.onmessage = (event) => {
if (event.data.error) {
reject(event.data.error);
} else {
resolve(event.data);
}
};
client.postMessage(message, [channel.port2]);
});
}