UNPKG

@kubb/plugin-msw

Version:

Mock Service Worker (MSW) handlers generator plugin for Kubb, creating API mocks from OpenAPI specifications for frontend development and testing.

139 lines (132 loc) 5.09 kB
//#region rolldown:runtime var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: ((k) => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); //#endregion const __kubb_react = __toESM(require("@kubb/react")); const __kubb_core_utils = __toESM(require("@kubb/core/utils")); const __kubb_react_jsx_runtime = __toESM(require("@kubb/react/jsx-runtime")); //#region src/components/Mock.tsx function Mock({ baseURL = "", name, typeName, operation }) { const method = operation.method; const successStatusCodes = operation.getResponseStatusCodes().filter((code) => code.startsWith("2")); const statusCode = successStatusCodes.length > 0 ? Number(successStatusCodes[0]) : 200; const responseObject = operation.getResponseByStatusCode(statusCode); const contentType = Object.keys(responseObject.content || {})?.[0]; const url = new __kubb_core_utils.URLPath(operation.path).toURLPath().replace(/([^/]):/g, "$1\\\\:"); const headers = [contentType ? `'Content-Type': '${contentType}'` : void 0].filter(Boolean); const params = __kubb_react.FunctionParams.factory({ data: { type: `${typeName} | (( info: Parameters<Parameters<typeof http.${method}>[1]>[0], ) => Response)`, optional: true } }); return /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.File.Source, { name, isIndexable: true, isExportable: true, children: /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.Function, { name, export: true, params: params.toConstructor(), children: `return http.${method}('${baseURL}${url.replace(/([^/]):/g, "$1\\\\:")}', function handler(info) { if(typeof data === 'function') return data(info) return new Response(JSON.stringify(data), { status: ${statusCode}, ${headers.length ? ` headers: { ${headers.join(", \n")} },` : ""} }) })` }) }); } //#endregion //#region src/components/Handlers.tsx function Handlers({ name, handlers }) { return /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.File.Source, { name, isIndexable: true, isExportable: true, children: `export const ${name} = ${JSON.stringify(handlers).replaceAll(`"`, "")} as const` }); } //#endregion //#region src/components/MockWithFaker.tsx function MockWithFaker({ baseURL = "", name, fakerName, typeName, operation }) { const method = operation.method; const successStatusCodes = operation.getResponseStatusCodes().filter((code) => code.startsWith("2")); const statusCode = successStatusCodes.length > 0 ? Number(successStatusCodes[0]) : 200; const responseObject = operation.getResponseByStatusCode(statusCode); const contentType = Object.keys(responseObject.content || {})?.[0]; const url = new __kubb_core_utils.URLPath(operation.path).toURLPath().replace(/([^/]):/g, "$1\\\\:"); const headers = [contentType ? `'Content-Type': '${contentType}'` : void 0].filter(Boolean); const params = __kubb_react.FunctionParams.factory({ data: { type: `${typeName} | (( info: Parameters<Parameters<typeof http.${method}>[1]>[0], ) => Response)`, optional: true } }); return /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.File.Source, { name, isIndexable: true, isExportable: true, children: /* @__PURE__ */ (0, __kubb_react_jsx_runtime.jsx)(__kubb_react.Function, { name, export: true, params: params.toConstructor(), children: `return http.${method}('${baseURL}${url.replace(/([^/]):/g, "$1\\\\:")}', function handler(info) { if(typeof data === 'function') return data(info) return new Response(JSON.stringify(data || ${fakerName}(data)), { status: ${statusCode}, ${headers.length ? ` headers: { ${headers.join(", \n")} },` : ""} }) })` }) }); } //#endregion Object.defineProperty(exports, 'Handlers', { enumerable: true, get: function () { return Handlers; } }); Object.defineProperty(exports, 'Mock', { enumerable: true, get: function () { return Mock; } }); Object.defineProperty(exports, 'MockWithFaker', { enumerable: true, get: function () { return MockWithFaker; } }); Object.defineProperty(exports, '__toESM', { enumerable: true, get: function () { return __toESM; } }); //# sourceMappingURL=components-Bz0C7Qrg.cjs.map